<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Chris Titus Tech</title><description>Having Fun with Technology</description><link>https://christitus.com/</link><language>en-US</language><item><title>My AI Coding Workflow That Actually Works</title><link>https://christitus.com/my-ai-workflow/</link><guid isPermaLink="true">https://christitus.com/my-ai-workflow/</guid><description>&lt;p&gt;My AI development workflow is not perfect, and it will keep changing. What matters is the structure: define the project, build the guardrails, work in small phases, and stop at manual gates.&lt;/p&gt;
&lt;p&gt;This is for larger, more complex software. You still need to understand Git, testing, and the basics of software development. One giant prompt that loops until an agent declares victory may produce a demo, but it is not how I build software I plan to maintain.&lt;/p&gt;

&lt;p&gt;The short version looks like this:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Global instructions and reusable skills
  -&amp;gt; repository specification and roadmap
  -&amp;gt; test and validation scaffolding
  -&amp;gt; one small implementation phase
  -&amp;gt; local tests and review
  -&amp;gt; pull request and CI
  -&amp;gt; independent review
  -&amp;gt; fix, retest, and resolve feedback
  -&amp;gt; manual verification
  -&amp;gt; merge
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;AI makes each step faster. It does not get to skip any of them.&lt;/p&gt;
&lt;h2&gt;Start With Plain-Text Guardrails&lt;/h2&gt;
&lt;p&gt;I keep my shared AI development setup in the &lt;a href=&quot;https://github.com/ChrisTitusTech/titus-ai&quot;&gt;titus-ai repository&lt;/a&gt;. It contains examples for instructions, specifications, roadmaps, tasks, and reusable skills.&lt;/p&gt;
&lt;p&gt;Do not get distracted by the terminology. These are plain-text files:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;AGENTS.md&lt;/code&gt; tells the coding agent how I want it to work.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SPEC.md&lt;/code&gt; defines what the project must do.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ROADMAP.md&lt;/code&gt; breaks the work into phases with exit criteria.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TASKS.md&lt;/code&gt; can track the small jobs inside the current phase.&lt;/li&gt;
&lt;li&gt;Skills capture reusable knowledge for a tool or technology.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My global instructions include preferences that apply everywhere: keep changes focused, skip filler, preserve unrelated work, run the required checks, and stop before destructive actions. A repository can add its own &lt;code&gt;AGENTS.md&lt;/code&gt; for the real architecture, commands, and boundaries of that project.&lt;/p&gt;
&lt;p&gt;If I dislike a rule, I delete it. If an agent repeatedly makes the same mistake, I add a more precise rule. The files serve me, not the other way around.&lt;/p&gt;
&lt;p&gt;Skills work the same way. My Quickshell skill includes its unusual QML linting requirements, so the agent does not run a generic Qt linter, misunderstand missing types, and damage working code. A Bash skill can capture shell-specific validation. That reusable knowledge then follows me into the next project.&lt;/p&gt;
&lt;h2&gt;Define What Success Means&lt;/h2&gt;
&lt;p&gt;The specification is repository-specific. Before implementation, I write down:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the problem and intended users&lt;/li&gt;
&lt;li&gt;required behavior and user experience&lt;/li&gt;
&lt;li&gt;architecture and major components&lt;/li&gt;
&lt;li&gt;security and privacy requirements&lt;/li&gt;
&lt;li&gt;supported tool and dependency versions&lt;/li&gt;
&lt;li&gt;non-goals&lt;/li&gt;
&lt;li&gt;acceptance criteria&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Version details matter because an LLM may choose an old dependency simply because it appeared frequently in its training data. I pin the supported versions in the specification and verify current versions instead of accepting whatever the model remembers.&lt;/p&gt;
&lt;p&gt;The acceptance criteria are the most important part. &quot;Make it work&quot; is not useful. The agent needs observable conditions that tell it when the phase succeeds, including the tests or manual checks that prove it.&lt;/p&gt;
&lt;p&gt;The roadmap then turns those requirements into small phases. Every phase says what it delivers, what it depends on, and what must be true before I continue. This prevents a feature request from becoming an uncontrolled rewrite.&lt;/p&gt;
&lt;h2&gt;Build the Test Harness Before the Feature&lt;/h2&gt;
&lt;p&gt;Before serious implementation, I establish how the project will be tested. That may include unit tests, linting, a production build, smoke tests, screenshots, or a real target-environment check.&lt;/p&gt;
&lt;p&gt;This is the scaffolding around the code. If the agent cannot tell whether a change worked, asking it to write more code only creates more uncertainty.&lt;/p&gt;
&lt;p&gt;The exact gates belong in the repository instructions. A typical local pass includes:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git diff --check
# Run the project formatter and linter.
# Run focused tests, then the broader test suite.
# Build the production artifact.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Project-specific details matter. Quickshell needs the correct QML types available during linting. A cross-distribution Linux project may need smoke tests on Arch, Debian, and Red Hat-based environments. A web change may need both a clean production build and a mobile layout check.&lt;/p&gt;
&lt;h2&gt;Implement One Reviewable Change&lt;/h2&gt;
&lt;p&gt;Once the guardrails exist, I give the agent one focused task.&lt;/p&gt;
&lt;p&gt;In the video, I asked Codex to add the audio percentage beside the volume icon in my DWM desktop. It found the Quickshell skill, inspected the existing code, made the QML change, updated the regression check, deployed it to my live install, restarted Quickshell, and verified the result on screen.&lt;/p&gt;
&lt;p&gt;That looked like magic, but the code generation was the easy part. The important next question was: &lt;strong&gt;How did it implement it?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The change went into a pull request instead of directly disappearing into &lt;code&gt;main&lt;/code&gt;. That gave me a manual gate where I could inspect the diff, see the screenshot, confirm the live behavior, and wait for other reviewers.&lt;/p&gt;
&lt;p&gt;Small pull requests are critical. They are faster to understand, cheaper to review, and easier to fix or revert. If a review takes twenty minutes because the diff is enormous, the work probably needed to be split earlier.&lt;/p&gt;
&lt;h2&gt;Spend More Effort on Review Than Generation&lt;/h2&gt;
&lt;p&gt;This is where most of my AI usage goes.&lt;/p&gt;
&lt;p&gt;For larger changes, I run a local CodeRabbit review before opening the pull request. On GitHub, I use CodeRabbit and a separate Codex, Claude, or human reviewer. The independent reviewer needs fresh context; the coding session should not simply grade its own work.&lt;/p&gt;
&lt;p&gt;The DWM review found two real issues:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Hide the percentage when audio is unavailable.&lt;/li&gt;
&lt;li&gt;Document the user-visible panel change in the changelog.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Those are exactly the boring edge cases I might discover only after a user opens an issue. The agent fixed the unavailable-audio state, updated the test, added the changelog entry, committed the changes, and pushed them back to the pull request.&lt;/p&gt;
&lt;p&gt;I still make the decision. Review bots can be wrong, overly verbose, or outside the task&apos;s scope. For every comment, I either fix the root cause or explain why the current behavior is intentional. I do not blindly accept every suggestion, and I do not dismiss one because it came from AI.&lt;/p&gt;
&lt;p&gt;The loop is:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;review feedback
  -&amp;gt; understand the issue
  -&amp;gt; fix or explain
  -&amp;gt; update the test
  -&amp;gt; rerun local validation
  -&amp;gt; push
  -&amp;gt; wait for fresh CI and review
  -&amp;gt; resolve the thread
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Repeat until there are no actionable findings left.&lt;/p&gt;
&lt;h2&gt;Put Security and Dependency Checks in CI&lt;/h2&gt;
&lt;p&gt;LLMs are useful, but they are not reliable dependency managers or security auditors. I enable GitHub&apos;s security tools early:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dependabot for supported dependency and GitHub Actions updates&lt;/li&gt;
&lt;li&gt;CodeQL for code scanning&lt;/li&gt;
&lt;li&gt;dependency review for risky dependency changes&lt;/li&gt;
&lt;li&gt;required CI checks for tests and production builds&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;CI must run on every pull request update. A green check from an older commit does not prove that the latest review fix is safe.&lt;/p&gt;
&lt;p&gt;The checks should match the project. My DWM pull request ran smoke tests across multiple Linux distributions. Another project may need a locked dependency install, unit tests, type checking, a production build, and a security scan. The point is not to collect badges; it is to test the artifact in a clean environment.&lt;/p&gt;
&lt;h2&gt;Keep the Human Merge Gate&lt;/h2&gt;
&lt;p&gt;Before merging, I verify:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the diff contains only the intended change&lt;/li&gt;
&lt;li&gt;tests and builds pass on the latest commit&lt;/li&gt;
&lt;li&gt;independent review is complete&lt;/li&gt;
&lt;li&gt;actionable review threads are resolved&lt;/li&gt;
&lt;li&gt;documentation matches the behavior&lt;/li&gt;
&lt;li&gt;the feature works in the real target environment&lt;/li&gt;
&lt;li&gt;visible changes have been checked on screen&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Automated screenshots and browser or desktop tools are useful, but I still look at the result. Tests prove only what they were written to test.&lt;/p&gt;
&lt;p&gt;In the example, I could see the volume percentage working in my live panel. I inspected the follow-up fix for unavailable audio, checked the test and changelog, waited for CI, and only then merged and deleted the branch.&lt;/p&gt;
&lt;p&gt;That pause is the difference between using AI as an assistant and letting it run the project.&lt;/p&gt;
&lt;h2&gt;The Cost Is Real&lt;/h2&gt;
&lt;p&gt;This workflow uses far more compute on review and validation than on writing the final lines of code. A small UI change may produce only a dozen changed lines while several agents, local checks, and CI jobs examine it.&lt;/p&gt;
&lt;p&gt;Heavy development can consume paid AI plans quickly. Local models will handle more of this work over time, but the workflow should not depend on one model, subscription, or plugin. The same process works with cloud models, local models, or a team of humans.&lt;/p&gt;
&lt;p&gt;The tool is replaceable. The gates are not.&lt;/p&gt;
&lt;h2&gt;Slow Is Smooth, and Smooth Is Fast&lt;/h2&gt;
&lt;p&gt;AI lets us generate code so quickly that it is easy to generate a mountain of bad software. Slow down at the places that matter:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;write the acceptance criteria&lt;/li&gt;
&lt;li&gt;build the tests&lt;/li&gt;
&lt;li&gt;keep phases and pull requests small&lt;/li&gt;
&lt;li&gt;wait for CI and independent review&lt;/li&gt;
&lt;li&gt;resolve feedback&lt;/li&gt;
&lt;li&gt;manually test the real result&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This workflow is not exciting because an agent added a percentage to an icon. It is exciting because the change was specified, tested, reviewed, documented, verified live, and merged in minutes instead of hours.&lt;/p&gt;
&lt;p&gt;Do not wait for a mythical future model to fix a bad development process. Use the tools available today, keep the parts that work, remove the parts that do not, and make the process better every time.&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/wcRR5P0S2Us&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;My AI development workflow is not perfect, and it will keep changing. What matters is the structure: define the project, build the guardrails, work in small phases, and stop at manual gates.&lt;/p&gt;
&lt;p&gt;This is for larger, more complex software. You still need to understand Git, testing, and the basics of software development. One giant prompt that loops until an agent declares victory may produce a demo, but it is not how I build software I plan to maintain.&lt;/p&gt;

&lt;p&gt;The short version looks like this:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Global instructions and reusable skills
  -&amp;gt; repository specification and roadmap
  -&amp;gt; test and validation scaffolding
  -&amp;gt; one small implementation phase
  -&amp;gt; local tests and review
  -&amp;gt; pull request and CI
  -&amp;gt; independent review
  -&amp;gt; fix, retest, and resolve feedback
  -&amp;gt; manual verification
  -&amp;gt; merge
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;AI makes each step faster. It does not get to skip any of them.&lt;/p&gt;
&lt;h2&gt;Start With Plain-Text Guardrails&lt;/h2&gt;
&lt;p&gt;I keep my shared AI development setup in the &lt;a href=&quot;https://github.com/ChrisTitusTech/titus-ai&quot;&gt;titus-ai repository&lt;/a&gt;. It contains examples for instructions, specifications, roadmaps, tasks, and reusable skills.&lt;/p&gt;
&lt;p&gt;Do not get distracted by the terminology. These are plain-text files:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;AGENTS.md&lt;/code&gt; tells the coding agent how I want it to work.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SPEC.md&lt;/code&gt; defines what the project must do.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ROADMAP.md&lt;/code&gt; breaks the work into phases with exit criteria.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TASKS.md&lt;/code&gt; can track the small jobs inside the current phase.&lt;/li&gt;
&lt;li&gt;Skills capture reusable knowledge for a tool or technology.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My global instructions include preferences that apply everywhere: keep changes focused, skip filler, preserve unrelated work, run the required checks, and stop before destructive actions. A repository can add its own &lt;code&gt;AGENTS.md&lt;/code&gt; for the real architecture, commands, and boundaries of that project.&lt;/p&gt;
&lt;p&gt;If I dislike a rule, I delete it. If an agent repeatedly makes the same mistake, I add a more precise rule. The files serve me, not the other way around.&lt;/p&gt;
&lt;p&gt;Skills work the same way. My Quickshell skill includes its unusual QML linting requirements, so the agent does not run a generic Qt linter, misunderstand missing types, and damage working code. A Bash skill can capture shell-specific validation. That reusable knowledge then follows me into the next project.&lt;/p&gt;
&lt;h2&gt;Define What Success Means&lt;/h2&gt;
&lt;p&gt;The specification is repository-specific. Before implementation, I write down:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the problem and intended users&lt;/li&gt;
&lt;li&gt;required behavior and user experience&lt;/li&gt;
&lt;li&gt;architecture and major components&lt;/li&gt;
&lt;li&gt;security and privacy requirements&lt;/li&gt;
&lt;li&gt;supported tool and dependency versions&lt;/li&gt;
&lt;li&gt;non-goals&lt;/li&gt;
&lt;li&gt;acceptance criteria&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Version details matter because an LLM may choose an old dependency simply because it appeared frequently in its training data. I pin the supported versions in the specification and verify current versions instead of accepting whatever the model remembers.&lt;/p&gt;
&lt;p&gt;The acceptance criteria are the most important part. &quot;Make it work&quot; is not useful. The agent needs observable conditions that tell it when the phase succeeds, including the tests or manual checks that prove it.&lt;/p&gt;
&lt;p&gt;The roadmap then turns those requirements into small phases. Every phase says what it delivers, what it depends on, and what must be true before I continue. This prevents a feature request from becoming an uncontrolled rewrite.&lt;/p&gt;
&lt;h2&gt;Build the Test Harness Before the Feature&lt;/h2&gt;
&lt;p&gt;Before serious implementation, I establish how the project will be tested. That may include unit tests, linting, a production build, smoke tests, screenshots, or a real target-environment check.&lt;/p&gt;
&lt;p&gt;This is the scaffolding around the code. If the agent cannot tell whether a change worked, asking it to write more code only creates more uncertainty.&lt;/p&gt;
&lt;p&gt;The exact gates belong in the repository instructions. A typical local pass includes:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git diff --check
# Run the project formatter and linter.
# Run focused tests, then the broader test suite.
# Build the production artifact.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Project-specific details matter. Quickshell needs the correct QML types available during linting. A cross-distribution Linux project may need smoke tests on Arch, Debian, and Red Hat-based environments. A web change may need both a clean production build and a mobile layout check.&lt;/p&gt;
&lt;h2&gt;Implement One Reviewable Change&lt;/h2&gt;
&lt;p&gt;Once the guardrails exist, I give the agent one focused task.&lt;/p&gt;
&lt;p&gt;In the video, I asked Codex to add the audio percentage beside the volume icon in my DWM desktop. It found the Quickshell skill, inspected the existing code, made the QML change, updated the regression check, deployed it to my live install, restarted Quickshell, and verified the result on screen.&lt;/p&gt;
&lt;p&gt;That looked like magic, but the code generation was the easy part. The important next question was: &lt;strong&gt;How did it implement it?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The change went into a pull request instead of directly disappearing into &lt;code&gt;main&lt;/code&gt;. That gave me a manual gate where I could inspect the diff, see the screenshot, confirm the live behavior, and wait for other reviewers.&lt;/p&gt;
&lt;p&gt;Small pull requests are critical. They are faster to understand, cheaper to review, and easier to fix or revert. If a review takes twenty minutes because the diff is enormous, the work probably needed to be split earlier.&lt;/p&gt;
&lt;h2&gt;Spend More Effort on Review Than Generation&lt;/h2&gt;
&lt;p&gt;This is where most of my AI usage goes.&lt;/p&gt;
&lt;p&gt;For larger changes, I run a local CodeRabbit review before opening the pull request. On GitHub, I use CodeRabbit and a separate Codex, Claude, or human reviewer. The independent reviewer needs fresh context; the coding session should not simply grade its own work.&lt;/p&gt;
&lt;p&gt;The DWM review found two real issues:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Hide the percentage when audio is unavailable.&lt;/li&gt;
&lt;li&gt;Document the user-visible panel change in the changelog.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Those are exactly the boring edge cases I might discover only after a user opens an issue. The agent fixed the unavailable-audio state, updated the test, added the changelog entry, committed the changes, and pushed them back to the pull request.&lt;/p&gt;
&lt;p&gt;I still make the decision. Review bots can be wrong, overly verbose, or outside the task&apos;s scope. For every comment, I either fix the root cause or explain why the current behavior is intentional. I do not blindly accept every suggestion, and I do not dismiss one because it came from AI.&lt;/p&gt;
&lt;p&gt;The loop is:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;review feedback
  -&amp;gt; understand the issue
  -&amp;gt; fix or explain
  -&amp;gt; update the test
  -&amp;gt; rerun local validation
  -&amp;gt; push
  -&amp;gt; wait for fresh CI and review
  -&amp;gt; resolve the thread
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Repeat until there are no actionable findings left.&lt;/p&gt;
&lt;h2&gt;Put Security and Dependency Checks in CI&lt;/h2&gt;
&lt;p&gt;LLMs are useful, but they are not reliable dependency managers or security auditors. I enable GitHub&apos;s security tools early:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dependabot for supported dependency and GitHub Actions updates&lt;/li&gt;
&lt;li&gt;CodeQL for code scanning&lt;/li&gt;
&lt;li&gt;dependency review for risky dependency changes&lt;/li&gt;
&lt;li&gt;required CI checks for tests and production builds&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;CI must run on every pull request update. A green check from an older commit does not prove that the latest review fix is safe.&lt;/p&gt;
&lt;p&gt;The checks should match the project. My DWM pull request ran smoke tests across multiple Linux distributions. Another project may need a locked dependency install, unit tests, type checking, a production build, and a security scan. The point is not to collect badges; it is to test the artifact in a clean environment.&lt;/p&gt;
&lt;h2&gt;Keep the Human Merge Gate&lt;/h2&gt;
&lt;p&gt;Before merging, I verify:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the diff contains only the intended change&lt;/li&gt;
&lt;li&gt;tests and builds pass on the latest commit&lt;/li&gt;
&lt;li&gt;independent review is complete&lt;/li&gt;
&lt;li&gt;actionable review threads are resolved&lt;/li&gt;
&lt;li&gt;documentation matches the behavior&lt;/li&gt;
&lt;li&gt;the feature works in the real target environment&lt;/li&gt;
&lt;li&gt;visible changes have been checked on screen&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Automated screenshots and browser or desktop tools are useful, but I still look at the result. Tests prove only what they were written to test.&lt;/p&gt;
&lt;p&gt;In the example, I could see the volume percentage working in my live panel. I inspected the follow-up fix for unavailable audio, checked the test and changelog, waited for CI, and only then merged and deleted the branch.&lt;/p&gt;
&lt;p&gt;That pause is the difference between using AI as an assistant and letting it run the project.&lt;/p&gt;
&lt;h2&gt;The Cost Is Real&lt;/h2&gt;
&lt;p&gt;This workflow uses far more compute on review and validation than on writing the final lines of code. A small UI change may produce only a dozen changed lines while several agents, local checks, and CI jobs examine it.&lt;/p&gt;
&lt;p&gt;Heavy development can consume paid AI plans quickly. Local models will handle more of this work over time, but the workflow should not depend on one model, subscription, or plugin. The same process works with cloud models, local models, or a team of humans.&lt;/p&gt;
&lt;p&gt;The tool is replaceable. The gates are not.&lt;/p&gt;
&lt;h2&gt;Slow Is Smooth, and Smooth Is Fast&lt;/h2&gt;
&lt;p&gt;AI lets us generate code so quickly that it is easy to generate a mountain of bad software. Slow down at the places that matter:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;write the acceptance criteria&lt;/li&gt;
&lt;li&gt;build the tests&lt;/li&gt;
&lt;li&gt;keep phases and pull requests small&lt;/li&gt;
&lt;li&gt;wait for CI and independent review&lt;/li&gt;
&lt;li&gt;resolve feedback&lt;/li&gt;
&lt;li&gt;manually test the real result&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This workflow is not exciting because an agent added a percentage to an icon. It is exciting because the change was specified, tested, reviewed, documented, verified live, and merged in minutes instead of hours.&lt;/p&gt;
&lt;p&gt;Do not wait for a mythical future model to fix a bad development process. Use the tools available today, keep the parts that work, remove the parts that do not, and make the process better every time.&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/wcRR5P0S2Us&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>The Problems With AI</title><link>https://christitus.com/the-problems-with-AI/</link><guid isPermaLink="true">https://christitus.com/the-problems-with-AI/</guid><description>&lt;p&gt;AI lets me build workflows and environments I have wanted for years. I can finish in hours what used to take days, explore an idea without sinking a month into it, and review more code than I ever could alone.&lt;/p&gt;
&lt;p&gt;That does not mean AI has solved software development. It has moved the bottleneck. Code is becoming cheap, but good ideas, clear requirements, architecture, communication, and judgment are not.&lt;/p&gt;

&lt;p&gt;This entire article came out of a Discord conversation after my last AI video. The discussion was better than the usual extremes of &quot;AI will replace everyone&quot; or &quot;AI is useless slop.&quot; People who are actually building things with these tools are seeing both sides at the same time: this is a superpower, and it can make a mess faster than anything we have used before.&lt;/p&gt;
&lt;p&gt;I am going to keep building with it. If some people are tired of AI content, I get it. The internet is flooded with empty demos and claims that every new model changes everything. But this technology is too useful for me to ignore, and the problems are too important to pretend they do not exist.&lt;/p&gt;
&lt;h2&gt;The Limiting Factor Is Now Us&lt;/h2&gt;
&lt;p&gt;For a long time, the cost of an idea was implementation. You could imagine a tool, but turning it into something real required weeks or months of coding. Today, AI can build a prototype in an afternoon.&lt;/p&gt;
&lt;p&gt;That sounds amazing until you discover the uncomfortable part: some ideas just are not very good.&lt;/p&gt;
&lt;p&gt;I love being able to expand an idea quickly. Sometimes it is magic and the project turns into exactly what I imagined. Other times I get deep enough into the weeds to understand why the idea does not work, then throw it in the trash. That is still a win. I learned the lesson in a day instead of spending three months on it.&lt;/p&gt;
&lt;p&gt;Ideas have always been easy. Execution is what matters. AI accelerates execution, but it also exposes weak ideas much faster. It cannot make users care, create a real need, or give you taste.&lt;/p&gt;
&lt;h2&gt;Coding Was Never the Hardest Problem&lt;/h2&gt;
&lt;p&gt;The hardest problems in software are usually not typing code or finding a missing semicolon. They are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;understanding what someone actually wants&lt;/li&gt;
&lt;li&gt;turning a vague request into concrete requirements&lt;/li&gt;
&lt;li&gt;choosing a foundation that will survive future changes&lt;/li&gt;
&lt;li&gt;communicating tradeoffs to other people&lt;/li&gt;
&lt;li&gt;deciding what should not be built&lt;/li&gt;
&lt;li&gt;maintaining the project after the demo works&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Those problems existed before AI, they exist now, and they will exist after the next flagship model arrives.&lt;/p&gt;
&lt;p&gt;This is also why building tools for yourself is so much easier. I am not trying to become a tech bro, ship another subscription, and obsess over monthly recurring revenue. When I build for myself, I know the workflow, the pain points, and what &quot;done&quot; looks like. AI can move incredibly fast because I can give it a clear target and immediately tell when it misses.&lt;/p&gt;
&lt;p&gt;If the requirements are garbage, faster code just gives you a polished pile of garbage sooner.&lt;/p&gt;
&lt;h2&gt;The Junior Developer Problem&lt;/h2&gt;
&lt;p&gt;Experienced programmers can get more out of AI because they already have a mental model of how software works. We learned by reading manuals, digging through Stack Overflow, breaking things, reading other people&apos;s code, and spending hours debugging mistakes.&lt;/p&gt;
&lt;p&gt;That process was slow and often miserable, but it built intuition.&lt;/p&gt;
&lt;p&gt;Now a beginner can ask a model to explain a codebase, make a change, and fix the error without ever reading the code. The result might work, but the person may have no idea why it works. That creates an amplified version of the old &quot;expert beginner&quot; problem: someone can produce impressive-looking software without developing the experience needed to recognize bad architecture, security problems, or fragile code.&lt;/p&gt;
&lt;p&gt;It is like higher mathematics. A calculator can produce the answer, but the person who understands the math knows when to use it, what the result means, and when the answer is obviously wrong.&lt;/p&gt;
&lt;p&gt;This does not mean beginners are doomed. AI can also compress the old learning cycle. A good code review agent can point to a problem, suggest a solution, and let you study both in minutes instead of spending hours searching. The key is asking &lt;strong&gt;why&lt;/strong&gt; and then reading the code yourself.&lt;/p&gt;
&lt;p&gt;If you only copy the fix, you learn a ritual. If you understand the failure, you gain a tool you can use again.&lt;/p&gt;
&lt;h2&gt;Code Review Is AI&apos;s Best Feature&lt;/h2&gt;
&lt;p&gt;Everyone talks about having AI write an entire application. I think one of its best uses is reviewing code that already exists.&lt;/p&gt;
&lt;p&gt;An AI reviewer does not get tired. It can inspect every change, compare patterns across the repository, look for missing tests, and catch the boring mistakes that humans skip after staring at a pull request for too long. I use it to challenge my changes, not blindly approve them.&lt;/p&gt;
&lt;p&gt;There are two major catches.&lt;/p&gt;
&lt;p&gt;First, the reviewer can confidently flag something that is not a problem. I see false positives all the time. Sometimes the correct response is simply: nope, resolve the comment, squash, and merge.&lt;/p&gt;
&lt;p&gt;Second, even a correct review can fail to teach. &quot;Change this line&quot; is not enough. The useful review explains the failure mode, the tradeoff, and why the suggested approach fits this project. Otherwise, we are just creating cargo-cult programmers who obey whatever pattern the model produced.&lt;/p&gt;
&lt;p&gt;Multiple review agents can reduce some of this. One agent writes or changes the code, another reviews it, and a third can challenge the review. That does not guarantee correctness, but disagreement is useful because it forces the issue into the open where a human can make the final call.&lt;/p&gt;
&lt;h2&gt;Foundations Matter More Than Ever&lt;/h2&gt;
&lt;p&gt;You cannot YOLO an AI-generated codebase and expect it to stay healthy. The faster the tools move, the more important the foundation becomes.&lt;/p&gt;
&lt;p&gt;At a minimum, anyone doing serious AI-assisted development needs to understand:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Git branches, commits, diffs, merges, and rollbacks&lt;/li&gt;
&lt;li&gt;the architecture and data flow of the project&lt;/li&gt;
&lt;li&gt;how to run tests and verify behavior&lt;/li&gt;
&lt;li&gt;where secrets, authentication, and permissions live&lt;/li&gt;
&lt;li&gt;how the application is built and deployed&lt;/li&gt;
&lt;li&gt;what the AI changed before accepting it&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Git is mandatory. When an agent makes twenty changes in a few minutes, you need clean checkpoints and an easy way back. A good repository structure, written requirements, tests, and small commits give the model guardrails. They also give you evidence when the model claims everything is fixed.&lt;/p&gt;
&lt;p&gt;The code can be generated. Accountability cannot.&lt;/p&gt;
&lt;h2&gt;The Price Will Not Stay This Low&lt;/h2&gt;
&lt;p&gt;The value in today&apos;s professional AI plans is ridiculous. Heavy users can burn through an enormous amount of compute for a flat monthly fee. That is great for us, but the financial picture does not make sense forever.&lt;/p&gt;
&lt;p&gt;My concern is a Walmart-style cycle: make the new workflow so cheap and convenient that everyone adopts it, wait for the old skills and services to disappear, then raise the price. Whether it happens exactly that way or not, it is dangerous to build a workflow that completely depends on one company keeping today&apos;s limits and prices.&lt;/p&gt;
&lt;p&gt;Cloud AI is also concentrated in companies with the money and hardware to run frontier models. If the best tools become heavily metered or gatekept, developers will have to pay, accept weaker access, or move part of the workflow back to hardware they control.&lt;/p&gt;
&lt;p&gt;Enjoy the bargain, but do not confuse a subsidized price with a permanent one.&lt;/p&gt;
&lt;h2&gt;Local Models Will Be Good Enough for Most People&lt;/h2&gt;
&lt;p&gt;Local LLMs are not equal to the best cloud models for every task. Large open-weight models may look competitive in benchmarks, but most people do not have hundreds of gigabytes of VRAM and a rack full of GPUs.&lt;/p&gt;
&lt;p&gt;That does not mean local AI has to beat the flagship model to matter.&lt;/p&gt;
&lt;p&gt;Small models can already search documents, summarize a modest codebase, classify information, answer common questions, and handle focused tasks. As that baseline improves, most people will not need expensive multi-agent loops or the smartest model on the planet. They will need something private, available, and good enough for 90 percent of their work.&lt;/p&gt;
&lt;p&gt;That is where old workstations, homelab servers, and small clusters get interesting. The future may not be one giant local model doing everything. It may be several focused models and disposable virtual machines handling narrow jobs on hardware you own.&lt;/p&gt;
&lt;p&gt;The important question is not, &quot;Can my local model beat the flagship?&quot; It is, &quot;Does this task need the flagship at all?&quot;&lt;/p&gt;
&lt;h2&gt;AI Is Changing Jobs, but the Story Is Messy&lt;/h2&gt;
&lt;p&gt;Companies are laying people off, and it is popular to blame every layoff on AI. That is too simple. Many businesses were cutting costs long before these tools became useful.&lt;/p&gt;
&lt;p&gt;The more immediate effect may be hiring that never happens. A small team using AI can absorb work that might previously have required two or three additional people. It can also handle adjacent jobs like documentation, basic design, research, and marketing that a technical person would have outsourced or ignored.&lt;/p&gt;
&lt;p&gt;That is a real economic impact even when nobody gets a termination letter that says &quot;replaced by AI.&quot;&lt;/p&gt;
&lt;p&gt;At the same time, only a small percentage of people are using these tools effectively. I still see people spend hours stuck on problems that a well-formed prompt, the right context, and a few minutes of verification could solve. The gap between people who understand the fundamentals and use AI well, and people who do neither, is going to get much wider.&lt;/p&gt;
&lt;h2&gt;My Rules for Building With AI&lt;/h2&gt;
&lt;p&gt;I am not waiting for the industry to settle before using these tools. I am building now, while access is cheap and the capabilities are improving. But I follow a few rules:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Start with the problem.&lt;/strong&gt; Define the user, workflow, constraints, and definition of done before generating code.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Choose the architecture yourself.&lt;/strong&gt; AI can present options, but you need to understand and own the final structure.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Keep changes small.&lt;/strong&gt; Work on a branch, inspect the diff, test it, and commit a clean checkpoint.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use AI to review AI.&lt;/strong&gt; A separate reviewer catches mistakes and assumptions the first agent carried through the task.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Demand the why.&lt;/strong&gt; A fix without an explanation does not improve your judgment.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Read the code.&lt;/strong&gt; If you cannot explain the important paths, you do not control the project.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Keep an exit plan.&lt;/strong&gt; Preserve your repositories, documentation, and the ability to work without one specific provider.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;AI is a multiplier. It multiplies good architecture, clear requirements, and experienced judgment. It also multiplies confusion, bad assumptions, and technical debt.&lt;/p&gt;
&lt;p&gt;That is the real problem with AI: not that it is useless or that it will instantly replace everyone, but that it lets us move faster than our understanding. The people who keep learning the foundations will have a superpower. The people who surrender their judgment to the tool will build bigger failures in record time.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;p&gt;In the video, I break down the Discord conversation that inspired this article, show how I use AI for code review, and explain where I think cloud and local models are headed.&lt;/p&gt;
</description><pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;AI lets me build workflows and environments I have wanted for years. I can finish in hours what used to take days, explore an idea without sinking a month into it, and review more code than I ever could alone.&lt;/p&gt;
&lt;p&gt;That does not mean AI has solved software development. It has moved the bottleneck. Code is becoming cheap, but good ideas, clear requirements, architecture, communication, and judgment are not.&lt;/p&gt;

&lt;p&gt;This entire article came out of a Discord conversation after my last AI video. The discussion was better than the usual extremes of &quot;AI will replace everyone&quot; or &quot;AI is useless slop.&quot; People who are actually building things with these tools are seeing both sides at the same time: this is a superpower, and it can make a mess faster than anything we have used before.&lt;/p&gt;
&lt;p&gt;I am going to keep building with it. If some people are tired of AI content, I get it. The internet is flooded with empty demos and claims that every new model changes everything. But this technology is too useful for me to ignore, and the problems are too important to pretend they do not exist.&lt;/p&gt;
&lt;h2&gt;The Limiting Factor Is Now Us&lt;/h2&gt;
&lt;p&gt;For a long time, the cost of an idea was implementation. You could imagine a tool, but turning it into something real required weeks or months of coding. Today, AI can build a prototype in an afternoon.&lt;/p&gt;
&lt;p&gt;That sounds amazing until you discover the uncomfortable part: some ideas just are not very good.&lt;/p&gt;
&lt;p&gt;I love being able to expand an idea quickly. Sometimes it is magic and the project turns into exactly what I imagined. Other times I get deep enough into the weeds to understand why the idea does not work, then throw it in the trash. That is still a win. I learned the lesson in a day instead of spending three months on it.&lt;/p&gt;
&lt;p&gt;Ideas have always been easy. Execution is what matters. AI accelerates execution, but it also exposes weak ideas much faster. It cannot make users care, create a real need, or give you taste.&lt;/p&gt;
&lt;h2&gt;Coding Was Never the Hardest Problem&lt;/h2&gt;
&lt;p&gt;The hardest problems in software are usually not typing code or finding a missing semicolon. They are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;understanding what someone actually wants&lt;/li&gt;
&lt;li&gt;turning a vague request into concrete requirements&lt;/li&gt;
&lt;li&gt;choosing a foundation that will survive future changes&lt;/li&gt;
&lt;li&gt;communicating tradeoffs to other people&lt;/li&gt;
&lt;li&gt;deciding what should not be built&lt;/li&gt;
&lt;li&gt;maintaining the project after the demo works&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Those problems existed before AI, they exist now, and they will exist after the next flagship model arrives.&lt;/p&gt;
&lt;p&gt;This is also why building tools for yourself is so much easier. I am not trying to become a tech bro, ship another subscription, and obsess over monthly recurring revenue. When I build for myself, I know the workflow, the pain points, and what &quot;done&quot; looks like. AI can move incredibly fast because I can give it a clear target and immediately tell when it misses.&lt;/p&gt;
&lt;p&gt;If the requirements are garbage, faster code just gives you a polished pile of garbage sooner.&lt;/p&gt;
&lt;h2&gt;The Junior Developer Problem&lt;/h2&gt;
&lt;p&gt;Experienced programmers can get more out of AI because they already have a mental model of how software works. We learned by reading manuals, digging through Stack Overflow, breaking things, reading other people&apos;s code, and spending hours debugging mistakes.&lt;/p&gt;
&lt;p&gt;That process was slow and often miserable, but it built intuition.&lt;/p&gt;
&lt;p&gt;Now a beginner can ask a model to explain a codebase, make a change, and fix the error without ever reading the code. The result might work, but the person may have no idea why it works. That creates an amplified version of the old &quot;expert beginner&quot; problem: someone can produce impressive-looking software without developing the experience needed to recognize bad architecture, security problems, or fragile code.&lt;/p&gt;
&lt;p&gt;It is like higher mathematics. A calculator can produce the answer, but the person who understands the math knows when to use it, what the result means, and when the answer is obviously wrong.&lt;/p&gt;
&lt;p&gt;This does not mean beginners are doomed. AI can also compress the old learning cycle. A good code review agent can point to a problem, suggest a solution, and let you study both in minutes instead of spending hours searching. The key is asking &lt;strong&gt;why&lt;/strong&gt; and then reading the code yourself.&lt;/p&gt;
&lt;p&gt;If you only copy the fix, you learn a ritual. If you understand the failure, you gain a tool you can use again.&lt;/p&gt;
&lt;h2&gt;Code Review Is AI&apos;s Best Feature&lt;/h2&gt;
&lt;p&gt;Everyone talks about having AI write an entire application. I think one of its best uses is reviewing code that already exists.&lt;/p&gt;
&lt;p&gt;An AI reviewer does not get tired. It can inspect every change, compare patterns across the repository, look for missing tests, and catch the boring mistakes that humans skip after staring at a pull request for too long. I use it to challenge my changes, not blindly approve them.&lt;/p&gt;
&lt;p&gt;There are two major catches.&lt;/p&gt;
&lt;p&gt;First, the reviewer can confidently flag something that is not a problem. I see false positives all the time. Sometimes the correct response is simply: nope, resolve the comment, squash, and merge.&lt;/p&gt;
&lt;p&gt;Second, even a correct review can fail to teach. &quot;Change this line&quot; is not enough. The useful review explains the failure mode, the tradeoff, and why the suggested approach fits this project. Otherwise, we are just creating cargo-cult programmers who obey whatever pattern the model produced.&lt;/p&gt;
&lt;p&gt;Multiple review agents can reduce some of this. One agent writes or changes the code, another reviews it, and a third can challenge the review. That does not guarantee correctness, but disagreement is useful because it forces the issue into the open where a human can make the final call.&lt;/p&gt;
&lt;h2&gt;Foundations Matter More Than Ever&lt;/h2&gt;
&lt;p&gt;You cannot YOLO an AI-generated codebase and expect it to stay healthy. The faster the tools move, the more important the foundation becomes.&lt;/p&gt;
&lt;p&gt;At a minimum, anyone doing serious AI-assisted development needs to understand:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Git branches, commits, diffs, merges, and rollbacks&lt;/li&gt;
&lt;li&gt;the architecture and data flow of the project&lt;/li&gt;
&lt;li&gt;how to run tests and verify behavior&lt;/li&gt;
&lt;li&gt;where secrets, authentication, and permissions live&lt;/li&gt;
&lt;li&gt;how the application is built and deployed&lt;/li&gt;
&lt;li&gt;what the AI changed before accepting it&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Git is mandatory. When an agent makes twenty changes in a few minutes, you need clean checkpoints and an easy way back. A good repository structure, written requirements, tests, and small commits give the model guardrails. They also give you evidence when the model claims everything is fixed.&lt;/p&gt;
&lt;p&gt;The code can be generated. Accountability cannot.&lt;/p&gt;
&lt;h2&gt;The Price Will Not Stay This Low&lt;/h2&gt;
&lt;p&gt;The value in today&apos;s professional AI plans is ridiculous. Heavy users can burn through an enormous amount of compute for a flat monthly fee. That is great for us, but the financial picture does not make sense forever.&lt;/p&gt;
&lt;p&gt;My concern is a Walmart-style cycle: make the new workflow so cheap and convenient that everyone adopts it, wait for the old skills and services to disappear, then raise the price. Whether it happens exactly that way or not, it is dangerous to build a workflow that completely depends on one company keeping today&apos;s limits and prices.&lt;/p&gt;
&lt;p&gt;Cloud AI is also concentrated in companies with the money and hardware to run frontier models. If the best tools become heavily metered or gatekept, developers will have to pay, accept weaker access, or move part of the workflow back to hardware they control.&lt;/p&gt;
&lt;p&gt;Enjoy the bargain, but do not confuse a subsidized price with a permanent one.&lt;/p&gt;
&lt;h2&gt;Local Models Will Be Good Enough for Most People&lt;/h2&gt;
&lt;p&gt;Local LLMs are not equal to the best cloud models for every task. Large open-weight models may look competitive in benchmarks, but most people do not have hundreds of gigabytes of VRAM and a rack full of GPUs.&lt;/p&gt;
&lt;p&gt;That does not mean local AI has to beat the flagship model to matter.&lt;/p&gt;
&lt;p&gt;Small models can already search documents, summarize a modest codebase, classify information, answer common questions, and handle focused tasks. As that baseline improves, most people will not need expensive multi-agent loops or the smartest model on the planet. They will need something private, available, and good enough for 90 percent of their work.&lt;/p&gt;
&lt;p&gt;That is where old workstations, homelab servers, and small clusters get interesting. The future may not be one giant local model doing everything. It may be several focused models and disposable virtual machines handling narrow jobs on hardware you own.&lt;/p&gt;
&lt;p&gt;The important question is not, &quot;Can my local model beat the flagship?&quot; It is, &quot;Does this task need the flagship at all?&quot;&lt;/p&gt;
&lt;h2&gt;AI Is Changing Jobs, but the Story Is Messy&lt;/h2&gt;
&lt;p&gt;Companies are laying people off, and it is popular to blame every layoff on AI. That is too simple. Many businesses were cutting costs long before these tools became useful.&lt;/p&gt;
&lt;p&gt;The more immediate effect may be hiring that never happens. A small team using AI can absorb work that might previously have required two or three additional people. It can also handle adjacent jobs like documentation, basic design, research, and marketing that a technical person would have outsourced or ignored.&lt;/p&gt;
&lt;p&gt;That is a real economic impact even when nobody gets a termination letter that says &quot;replaced by AI.&quot;&lt;/p&gt;
&lt;p&gt;At the same time, only a small percentage of people are using these tools effectively. I still see people spend hours stuck on problems that a well-formed prompt, the right context, and a few minutes of verification could solve. The gap between people who understand the fundamentals and use AI well, and people who do neither, is going to get much wider.&lt;/p&gt;
&lt;h2&gt;My Rules for Building With AI&lt;/h2&gt;
&lt;p&gt;I am not waiting for the industry to settle before using these tools. I am building now, while access is cheap and the capabilities are improving. But I follow a few rules:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Start with the problem.&lt;/strong&gt; Define the user, workflow, constraints, and definition of done before generating code.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Choose the architecture yourself.&lt;/strong&gt; AI can present options, but you need to understand and own the final structure.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Keep changes small.&lt;/strong&gt; Work on a branch, inspect the diff, test it, and commit a clean checkpoint.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use AI to review AI.&lt;/strong&gt; A separate reviewer catches mistakes and assumptions the first agent carried through the task.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Demand the why.&lt;/strong&gt; A fix without an explanation does not improve your judgment.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Read the code.&lt;/strong&gt; If you cannot explain the important paths, you do not control the project.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Keep an exit plan.&lt;/strong&gt; Preserve your repositories, documentation, and the ability to work without one specific provider.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;AI is a multiplier. It multiplies good architecture, clear requirements, and experienced judgment. It also multiplies confusion, bad assumptions, and technical debt.&lt;/p&gt;
&lt;p&gt;That is the real problem with AI: not that it is useless or that it will instantly replace everyone, but that it lets us move faster than our understanding. The people who keep learning the foundations will have a superpower. The people who surrender their judgment to the tool will build bigger failures in record time.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;p&gt;In the video, I break down the Discord conversation that inspired this article, show how I use AI for code review, and explain where I think cloud and local models are headed.&lt;/p&gt;
</content:encoded></item><item><title>What Can AI Actually Do in 2026?</title><link>https://christitus.com/what-can-AI-do-in-2026/</link><guid isPermaLink="true">https://christitus.com/what-can-AI-do-in-2026/</guid><description>&lt;p&gt;Instead of guessing what AI might become, let&apos;s look at what it can actually do today. These are the projects and workflows I have completed with AI as of July 2026.&lt;/p&gt;
&lt;p&gt;The short version is that AI is useful, but it is not magic. It is excellent at research, documentation, code review, scaffolding, testing, and shortening long debugging sessions. It is far less reliable when someone asks it to build complex software without understanding the system underneath.&lt;/p&gt;

&lt;h2&gt;AI as a Better Search Tool&lt;/h2&gt;
&lt;p&gt;For most people, the everyday use for AI is simple: ask a direct question and get a direct answer. That is often faster than digging through five ad-covered pages to find one useful paragraph.&lt;/p&gt;
&lt;p&gt;Today, that usually means using ChatGPT, Claude, or another cloud service. In the long run, I think local large language models (LLMs) will handle more of this work for people who care about privacy and control. A model running on your computer could search your files, summarize documentation, and answer practical questions without sending every request to another company&apos;s server.&lt;/p&gt;
&lt;p&gt;This is not the flashiest use for AI, but it may be the one people use most often.&lt;/p&gt;
&lt;h2&gt;AI Does Not Replace Understanding&lt;/h2&gt;
&lt;p&gt;Can someone use AI to create a substantial program, game, or app from scratch? Yes, but not reliably without knowing how the underlying system works.&lt;/p&gt;
&lt;p&gt;Writing the code is only part of the job. You still need to make decisions such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Which framework fits the project?&lt;/li&gt;
&lt;li&gt;Where does the application store its state?&lt;/li&gt;
&lt;li&gt;How does data move through the system?&lt;/li&gt;
&lt;li&gt;How will authentication and security work?&lt;/li&gt;
&lt;li&gt;What needs to be tested?&lt;/li&gt;
&lt;li&gt;How will the project be deployed and maintained?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Without that knowledge, AI can generate something that looks impressive in a demo but falls apart under real use. It can burn through millions of tokens, produce thousands of lines of code, and still leave you with a fragile project that nobody wants to maintain.&lt;/p&gt;
&lt;p&gt;AI works best when the person using it knows enough to steer the work, review the output, and recognize a bad decision. It can accelerate a solid workflow, but it does not replace judgment.&lt;/p&gt;
&lt;h2&gt;What I Have Completed with AI&lt;/h2&gt;
&lt;p&gt;I have used AI successfully on the following projects and workflows. Each one had a clear target, an existing foundation, or enough hands-on oversight to keep the work grounded.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://myheroultra.com&quot;&gt;My Hero Ultra&lt;/a&gt;:&lt;/strong&gt; Built and refined an Astro website for a game my kids play.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/christitustech/dwm-titus&quot;&gt;dwm-titus&lt;/a&gt;:&lt;/strong&gt; Reworked my desktop customization workflow while moving from Arch to Fedora and experimenting with Quickshell.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/ChrisTitusTech/copr-fedora&quot;&gt;Automated COPR repository&lt;/a&gt;:&lt;/strong&gt; Automated the build and maintenance workflow for my Fedora packages.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/ChrisTitusTech/website-messages&quot;&gt;Website Messages&lt;/a&gt;:&lt;/strong&gt; Created an admin dashboard for managing website messages.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Testing and code review:&lt;/strong&gt; Used Git workflows, local linting, and targeted tests to catch both human and AI-generated mistakes before they shipped.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Documentation and codebase summaries:&lt;/strong&gt; Used AI to explain unfamiliar systems and reduce the time needed to understand a project.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Project scaffolding:&lt;/strong&gt; Generated initial layouts, boilerplate, and setup steps instead of starting from an empty directory.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Long debugging sessions:&lt;/strong&gt; Used LLMs to narrow the search space, inspect error paths, and reach the failing component faster.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Larger Projects Still Require Engineering&lt;/h2&gt;
&lt;p&gt;AI has also helped with larger, multi-month projects, but only after the work was divided into real engineering tasks.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/christitustech/titusbooks&quot;&gt;TitusBooks&lt;/a&gt;:&lt;/strong&gt; A Quickshell-based book management system designed for self-hosted, multi-user environments.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;3Plates:&lt;/strong&gt; An Expo-based application for Android, iOS, and the web, with a hosted database, OAuth, and a self-hosted deployment option.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are not &quot;type one prompt and get an app&quot; projects. They still require architecture, planning, testing, debugging, and careful review. AI can help with every stage, but it remains part of the workflow rather than the entire workflow.&lt;/p&gt;
&lt;h2&gt;Where AI Fits in 2026&lt;/h2&gt;
&lt;p&gt;The best way to use AI in 2026 is as an extremely fast assistant that still needs clear direction.&lt;/p&gt;
&lt;p&gt;AI is especially helpful for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;research and search summaries&lt;/li&gt;
&lt;li&gt;documentation&lt;/li&gt;
&lt;li&gt;code review&lt;/li&gt;
&lt;li&gt;tests and lint cleanup&lt;/li&gt;
&lt;li&gt;project scaffolding&lt;/li&gt;
&lt;li&gt;debugging&lt;/li&gt;
&lt;li&gt;explaining unfamiliar code&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Be more careful when using it for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;architecture decisions you do not understand&lt;/li&gt;
&lt;li&gt;security-sensitive code&lt;/li&gt;
&lt;li&gt;authentication and payments&lt;/li&gt;
&lt;li&gt;database design and migrations&lt;/li&gt;
&lt;li&gt;anything you cannot test or maintain yourself&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The dividing line is simple: if you understand the system, AI can make you much faster. If you do not understand it, AI can help you make the wrong decision at a much larger scale.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;p&gt;The video below covers these examples and shows how I use AI in real projects.&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/fYxSGXpl6d4&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Instead of guessing what AI might become, let&apos;s look at what it can actually do today. These are the projects and workflows I have completed with AI as of July 2026.&lt;/p&gt;
&lt;p&gt;The short version is that AI is useful, but it is not magic. It is excellent at research, documentation, code review, scaffolding, testing, and shortening long debugging sessions. It is far less reliable when someone asks it to build complex software without understanding the system underneath.&lt;/p&gt;

&lt;h2&gt;AI as a Better Search Tool&lt;/h2&gt;
&lt;p&gt;For most people, the everyday use for AI is simple: ask a direct question and get a direct answer. That is often faster than digging through five ad-covered pages to find one useful paragraph.&lt;/p&gt;
&lt;p&gt;Today, that usually means using ChatGPT, Claude, or another cloud service. In the long run, I think local large language models (LLMs) will handle more of this work for people who care about privacy and control. A model running on your computer could search your files, summarize documentation, and answer practical questions without sending every request to another company&apos;s server.&lt;/p&gt;
&lt;p&gt;This is not the flashiest use for AI, but it may be the one people use most often.&lt;/p&gt;
&lt;h2&gt;AI Does Not Replace Understanding&lt;/h2&gt;
&lt;p&gt;Can someone use AI to create a substantial program, game, or app from scratch? Yes, but not reliably without knowing how the underlying system works.&lt;/p&gt;
&lt;p&gt;Writing the code is only part of the job. You still need to make decisions such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Which framework fits the project?&lt;/li&gt;
&lt;li&gt;Where does the application store its state?&lt;/li&gt;
&lt;li&gt;How does data move through the system?&lt;/li&gt;
&lt;li&gt;How will authentication and security work?&lt;/li&gt;
&lt;li&gt;What needs to be tested?&lt;/li&gt;
&lt;li&gt;How will the project be deployed and maintained?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Without that knowledge, AI can generate something that looks impressive in a demo but falls apart under real use. It can burn through millions of tokens, produce thousands of lines of code, and still leave you with a fragile project that nobody wants to maintain.&lt;/p&gt;
&lt;p&gt;AI works best when the person using it knows enough to steer the work, review the output, and recognize a bad decision. It can accelerate a solid workflow, but it does not replace judgment.&lt;/p&gt;
&lt;h2&gt;What I Have Completed with AI&lt;/h2&gt;
&lt;p&gt;I have used AI successfully on the following projects and workflows. Each one had a clear target, an existing foundation, or enough hands-on oversight to keep the work grounded.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://myheroultra.com&quot;&gt;My Hero Ultra&lt;/a&gt;:&lt;/strong&gt; Built and refined an Astro website for a game my kids play.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/christitustech/dwm-titus&quot;&gt;dwm-titus&lt;/a&gt;:&lt;/strong&gt; Reworked my desktop customization workflow while moving from Arch to Fedora and experimenting with Quickshell.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/ChrisTitusTech/copr-fedora&quot;&gt;Automated COPR repository&lt;/a&gt;:&lt;/strong&gt; Automated the build and maintenance workflow for my Fedora packages.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/ChrisTitusTech/website-messages&quot;&gt;Website Messages&lt;/a&gt;:&lt;/strong&gt; Created an admin dashboard for managing website messages.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Testing and code review:&lt;/strong&gt; Used Git workflows, local linting, and targeted tests to catch both human and AI-generated mistakes before they shipped.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Documentation and codebase summaries:&lt;/strong&gt; Used AI to explain unfamiliar systems and reduce the time needed to understand a project.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Project scaffolding:&lt;/strong&gt; Generated initial layouts, boilerplate, and setup steps instead of starting from an empty directory.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Long debugging sessions:&lt;/strong&gt; Used LLMs to narrow the search space, inspect error paths, and reach the failing component faster.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Larger Projects Still Require Engineering&lt;/h2&gt;
&lt;p&gt;AI has also helped with larger, multi-month projects, but only after the work was divided into real engineering tasks.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/christitustech/titusbooks&quot;&gt;TitusBooks&lt;/a&gt;:&lt;/strong&gt; A Quickshell-based book management system designed for self-hosted, multi-user environments.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;3Plates:&lt;/strong&gt; An Expo-based application for Android, iOS, and the web, with a hosted database, OAuth, and a self-hosted deployment option.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are not &quot;type one prompt and get an app&quot; projects. They still require architecture, planning, testing, debugging, and careful review. AI can help with every stage, but it remains part of the workflow rather than the entire workflow.&lt;/p&gt;
&lt;h2&gt;Where AI Fits in 2026&lt;/h2&gt;
&lt;p&gt;The best way to use AI in 2026 is as an extremely fast assistant that still needs clear direction.&lt;/p&gt;
&lt;p&gt;AI is especially helpful for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;research and search summaries&lt;/li&gt;
&lt;li&gt;documentation&lt;/li&gt;
&lt;li&gt;code review&lt;/li&gt;
&lt;li&gt;tests and lint cleanup&lt;/li&gt;
&lt;li&gt;project scaffolding&lt;/li&gt;
&lt;li&gt;debugging&lt;/li&gt;
&lt;li&gt;explaining unfamiliar code&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Be more careful when using it for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;architecture decisions you do not understand&lt;/li&gt;
&lt;li&gt;security-sensitive code&lt;/li&gt;
&lt;li&gt;authentication and payments&lt;/li&gt;
&lt;li&gt;database design and migrations&lt;/li&gt;
&lt;li&gt;anything you cannot test or maintain yourself&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The dividing line is simple: if you understand the system, AI can make you much faster. If you do not understand it, AI can help you make the wrong decision at a much larger scale.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;p&gt;The video below covers these examples and shows how I use AI in real projects.&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/fYxSGXpl6d4&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Switch From Arch to Fedora</title><link>https://christitus.com/switch-from-arch-to-fedora/</link><guid isPermaLink="true">https://christitus.com/switch-from-arch-to-fedora/</guid><description>&lt;p&gt;Arch Linux has always been the distro for people who want control, speed, and the newest packages as soon as they land. That is also the tradeoff. When you live on the bleeding edge and pull from community package scripts, you are taking on more responsibility than most desktop Linux users realize.&lt;/p&gt;
&lt;p&gt;The recent AUR malware incident is a good reminder of why I am looking at Fedora differently now. Fedora gives me modern packages, a strong default security posture, and a predictable release model without needing to trust random build scripts for everything I install.&lt;/p&gt;

&lt;h2&gt;What Happened With the AUR&lt;/h2&gt;
&lt;p&gt;On June 12, 2026, Arch Linux posted an official notice about an active malicious package incident in the Arch User Repository. The Arch team said there was a high volume of malicious package adoptions and updates in the AUR, and they temporarily expected issues with new accounts, package updates, and package adoption while they worked through the problem.&lt;/p&gt;
&lt;p&gt;This was not the official Arch package repository being compromised. That distinction matters. The AUR is community-maintained. It is one of Arch&apos;s biggest strengths, but it is also a different trust model from the official repos.&lt;/p&gt;
&lt;p&gt;Security reporting around the incident described attackers taking over hundreds of AUR packages and changing build or install scripts so users would execute malware when building packages. Phoronix reported more than 400 affected packages. The Hacker News described the payload as a credential stealer with optional eBPF rootkit behavior when it already had enough privileges. Other reports and community trackers discussed higher package counts as the investigation expanded.&lt;/p&gt;
&lt;p&gt;The exact number matters less than the lesson: if a package build script runs code on your machine, then the package manager did not save you from trusting that script.&lt;/p&gt;
&lt;h2&gt;The AUR Is Powerful, But You Are the Security Boundary&lt;/h2&gt;
&lt;p&gt;The AUR is not pacman. It is not the same thing as installing from Arch&apos;s signed official repositories. An AUR helper makes the process feel automatic:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;paru -S package-name
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;or:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;yay -S package-name
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But underneath that convenience, the helper is downloading a &lt;code&gt;PKGBUILD&lt;/code&gt;, reading build instructions, pulling sources, and running shell commands to build and install the package. That is fine when you trust the maintainer, understand the script, and verify the changes. It is dangerous when you treat it like an app store.&lt;/p&gt;
&lt;p&gt;This is where a lot of Arch users get lazy. I have done it too. You install something from the AUR because it is easy. You update 30 packages. The helper asks if you want to view diffs. You skip it. That is exactly the habit attackers are counting on.&lt;/p&gt;
&lt;p&gt;The correct Arch workflow is:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;paru -Syu
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then review the diffs when AUR packages change. Look at:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PKGBUILD&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.install&lt;/code&gt; files&lt;/li&gt;
&lt;li&gt;new curl, wget, npm, pip, cargo, or binary download steps&lt;/li&gt;
&lt;li&gt;changed source URLs&lt;/li&gt;
&lt;li&gt;added systemd services&lt;/li&gt;
&lt;li&gt;post-install commands&lt;/li&gt;
&lt;li&gt;anything that runs before you have a chance to inspect the built package&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If that sounds tedious, that is the point. Arch gives you power, but it also makes you the person responsible for using that power correctly.&lt;/p&gt;
&lt;h2&gt;Arch Is Secure If You Make It Secure&lt;/h2&gt;
&lt;p&gt;Arch is not &quot;insecure&quot; because it is Arch. That is too simple. The official repositories use package signing, the project moves quickly on fixes, and the Arch community is full of people who know exactly what they are doing.&lt;/p&gt;
&lt;p&gt;The issue is the default posture.&lt;/p&gt;
&lt;p&gt;Arch starts minimal. You choose the desktop, services, firewall, sandboxing, backup strategy, update cadence, and how much third-party packaging you trust. That is great for advanced users. It is not great for people who want sane security defaults without building the entire operating model themselves.&lt;/p&gt;
&lt;p&gt;On a default Arch install, you are often the one deciding:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;whether a firewall is installed and enabled&lt;/li&gt;
&lt;li&gt;whether services should be confined&lt;/li&gt;
&lt;li&gt;whether Flatpak apps should be preferred over random AUR packages&lt;/li&gt;
&lt;li&gt;whether snapshots are configured before big updates&lt;/li&gt;
&lt;li&gt;whether AUR changes are reviewed or blindly accepted&lt;/li&gt;
&lt;li&gt;whether a proprietary binary from a random source belongs on the system&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That is not a failure of Arch. It is the design. Arch gives you a clean base and expects you to know what you are doing.&lt;/p&gt;
&lt;h2&gt;Bleeding Edge Has a Cost&lt;/h2&gt;
&lt;p&gt;Arch is a rolling release. That means package updates arrive continuously instead of being held for a traditional versioned release. For many desktop users, this is amazing. You get new kernels, Mesa, desktop environments, compilers, and applications fast.&lt;/p&gt;
&lt;p&gt;The cost is that the whole system is always moving.&lt;/p&gt;
&lt;p&gt;Most of the time, this works. Sometimes, a library changes and a proprietary application breaks. Sometimes, a kernel update exposes a driver problem. Sometimes, an AUR package assumes something about the system that changed yesterday. Sometimes, upstream shipped a regression and Arch users are among the first people to find it.&lt;/p&gt;
&lt;p&gt;If you like debugging, Arch is fantastic. If you need the machine to be boring, Arch can become work.&lt;/p&gt;
&lt;p&gt;That is the real question: do you want your daily driver to be a hobby project or a workstation?&lt;/p&gt;
&lt;h2&gt;Why Fedora Looks Better Right Now&lt;/h2&gt;
&lt;p&gt;Fedora is not technically a rolling release in the same way Arch is. Fedora Rawhide is the rolling development branch. Normal Fedora releases are versioned releases, with a new release about every six months and updates for about 13 months.&lt;/p&gt;
&lt;p&gt;That difference is exactly why Fedora hits a useful middle ground.&lt;/p&gt;
&lt;p&gt;Fedora is modern without being reckless. You get current kernels, Mesa, GNOME, KDE, development tools, PipeWire, Wayland work, container tooling, and a fast-moving desktop stack. But those packages move through Fedora&apos;s packaging, testing, and release process instead of landing as a nonstop rolling stream like Arch.&lt;/p&gt;
&lt;p&gt;For a desktop user, that means Fedora usually feels fresh without making every update feel like a mini migration.&lt;/p&gt;
&lt;h2&gt;Fedora&apos;s Security Defaults Matter&lt;/h2&gt;
&lt;p&gt;Fedora also starts from a stronger security baseline. SELinux is enabled by default in enforcing mode. Firewalld is installed by default. The project has a long history of pushing hardening changes early and integrating them into the distro instead of leaving every user to bolt them on later.&lt;/p&gt;
&lt;p&gt;That does not make Fedora magically secure. You can still install bad software, run random scripts, weaken SELinux, open firewall ports, or add unsafe third-party repositories. But the default posture is different.&lt;/p&gt;
&lt;p&gt;On Fedora, a normal user starts with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SELinux enforcing&lt;/li&gt;
&lt;li&gt;firewalld available by default&lt;/li&gt;
&lt;li&gt;signed RPM repositories&lt;/li&gt;
&lt;li&gt;a predictable release lifecycle&lt;/li&gt;
&lt;li&gt;Flatpak as a common desktop app path&lt;/li&gt;
&lt;li&gt;strong upstream alignment with Red Hat and the wider Linux ecosystem&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That is a better default for most people than a minimal system where every security decision is pushed onto the user.&lt;/p&gt;
&lt;h2&gt;Stable Does Not Mean Old&lt;/h2&gt;
&lt;p&gt;People hear &quot;stable packages&quot; and think &quot;ancient packages.&quot; That is more Debian than Fedora.&lt;/p&gt;
&lt;p&gt;Fedora is not an LTS distro. It is not trying to freeze the desktop for five years. Fedora is closer to a fast, tested snapshot of the Linux ecosystem. You get new software quickly, but within a release structure that is easier to reason about than a pure rolling release.&lt;/p&gt;
&lt;p&gt;That is why Fedora makes sense for a power user who still wants modern hardware support and current desktop features. You do not have to choose between &quot;everything is old&quot; and &quot;everything changes every day.&quot;&lt;/p&gt;
&lt;p&gt;For most users, Fedora is the better balance:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;newer than Ubuntu LTS or Debian Stable&lt;/li&gt;
&lt;li&gt;more predictable than Arch&lt;/li&gt;
&lt;li&gt;more secure out of the box than a minimal DIY install&lt;/li&gt;
&lt;li&gt;less dependent on community build scripts for common software&lt;/li&gt;
&lt;li&gt;still flexible enough for advanced users&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;When Arch Still Makes Sense&lt;/h2&gt;
&lt;p&gt;I am not saying everyone should delete Arch.&lt;/p&gt;
&lt;p&gt;Arch still makes sense if:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;you enjoy building the system yourself&lt;/li&gt;
&lt;li&gt;you want the newest packages immediately&lt;/li&gt;
&lt;li&gt;you read update news before upgrading&lt;/li&gt;
&lt;li&gt;you review AUR diffs&lt;/li&gt;
&lt;li&gt;you keep backups or snapshots&lt;/li&gt;
&lt;li&gt;you understand how to recover from a broken system&lt;/li&gt;
&lt;li&gt;you know which AUR packages you actually trust&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Arch is still one of the best learning distros ever made. It forces you to understand Linux in a way most distros do not. That is valuable.&lt;/p&gt;
&lt;p&gt;But there is a difference between a learning system and a production daily driver. If your machine is how you make videos, write code, run a business, manage servers, or do client work, then predictable defaults matter more.&lt;/p&gt;
&lt;h2&gt;My Takeaway&lt;/h2&gt;
&lt;p&gt;The AUR incident did not prove that Arch is bad. It proved that the AUR trust model requires attention, and most users do not give it enough attention.&lt;/p&gt;
&lt;p&gt;That is the part that should make people rethink their setup.&lt;/p&gt;
&lt;p&gt;If you are using Arch because you love the control and you actually review what you install, keep using Arch. If you are using Arch because a helper made the AUR feel like a giant one-command app store, you are probably taking more risk than you think.&lt;/p&gt;
&lt;p&gt;Fedora gives me most of what I want from modern Linux without making the whole system a constant trust exercise. It is current, secure by default, stable enough for real work, and still close enough to upstream that it does not feel stale.&lt;/p&gt;
&lt;p&gt;That is why switching from Arch to Fedora makes sense now.&lt;/p&gt;
&lt;h2&gt;Sources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Arch Linux: &lt;a href=&quot;https://archlinux.org/news/active-aur-malicious-packages-incident/&quot;&gt;https://archlinux.org/news/active-aur-malicious-packages-incident/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Phoronix: &lt;a href=&quot;https://www.phoronix.com/news/Arch-Linux-AUR-400-Compromised&quot;&gt;https://www.phoronix.com/news/Arch-Linux-AUR-400-Compromised&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The Hacker News: &lt;a href=&quot;https://thehackernews.com/2026/06/over-400-arch-linux-aur-packages.html&quot;&gt;https://thehackernews.com/2026/06/over-400-arch-linux-aur-packages.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fedora release lifecycle: &lt;a href=&quot;https://docs.fedoraproject.org/en-US/releases/lifecycle/&quot;&gt;https://docs.fedoraproject.org/en-US/releases/lifecycle/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fedora security features: &lt;a href=&quot;https://fedoraproject.org/wiki/Security_Features&quot;&gt;https://fedoraproject.org/wiki/Security_Features&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/ybm1KwlGKA0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Arch Linux has always been the distro for people who want control, speed, and the newest packages as soon as they land. That is also the tradeoff. When you live on the bleeding edge and pull from community package scripts, you are taking on more responsibility than most desktop Linux users realize.&lt;/p&gt;
&lt;p&gt;The recent AUR malware incident is a good reminder of why I am looking at Fedora differently now. Fedora gives me modern packages, a strong default security posture, and a predictable release model without needing to trust random build scripts for everything I install.&lt;/p&gt;

&lt;h2&gt;What Happened With the AUR&lt;/h2&gt;
&lt;p&gt;On June 12, 2026, Arch Linux posted an official notice about an active malicious package incident in the Arch User Repository. The Arch team said there was a high volume of malicious package adoptions and updates in the AUR, and they temporarily expected issues with new accounts, package updates, and package adoption while they worked through the problem.&lt;/p&gt;
&lt;p&gt;This was not the official Arch package repository being compromised. That distinction matters. The AUR is community-maintained. It is one of Arch&apos;s biggest strengths, but it is also a different trust model from the official repos.&lt;/p&gt;
&lt;p&gt;Security reporting around the incident described attackers taking over hundreds of AUR packages and changing build or install scripts so users would execute malware when building packages. Phoronix reported more than 400 affected packages. The Hacker News described the payload as a credential stealer with optional eBPF rootkit behavior when it already had enough privileges. Other reports and community trackers discussed higher package counts as the investigation expanded.&lt;/p&gt;
&lt;p&gt;The exact number matters less than the lesson: if a package build script runs code on your machine, then the package manager did not save you from trusting that script.&lt;/p&gt;
&lt;h2&gt;The AUR Is Powerful, But You Are the Security Boundary&lt;/h2&gt;
&lt;p&gt;The AUR is not pacman. It is not the same thing as installing from Arch&apos;s signed official repositories. An AUR helper makes the process feel automatic:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;paru -S package-name
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;or:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;yay -S package-name
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But underneath that convenience, the helper is downloading a &lt;code&gt;PKGBUILD&lt;/code&gt;, reading build instructions, pulling sources, and running shell commands to build and install the package. That is fine when you trust the maintainer, understand the script, and verify the changes. It is dangerous when you treat it like an app store.&lt;/p&gt;
&lt;p&gt;This is where a lot of Arch users get lazy. I have done it too. You install something from the AUR because it is easy. You update 30 packages. The helper asks if you want to view diffs. You skip it. That is exactly the habit attackers are counting on.&lt;/p&gt;
&lt;p&gt;The correct Arch workflow is:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;paru -Syu
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then review the diffs when AUR packages change. Look at:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PKGBUILD&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.install&lt;/code&gt; files&lt;/li&gt;
&lt;li&gt;new curl, wget, npm, pip, cargo, or binary download steps&lt;/li&gt;
&lt;li&gt;changed source URLs&lt;/li&gt;
&lt;li&gt;added systemd services&lt;/li&gt;
&lt;li&gt;post-install commands&lt;/li&gt;
&lt;li&gt;anything that runs before you have a chance to inspect the built package&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If that sounds tedious, that is the point. Arch gives you power, but it also makes you the person responsible for using that power correctly.&lt;/p&gt;
&lt;h2&gt;Arch Is Secure If You Make It Secure&lt;/h2&gt;
&lt;p&gt;Arch is not &quot;insecure&quot; because it is Arch. That is too simple. The official repositories use package signing, the project moves quickly on fixes, and the Arch community is full of people who know exactly what they are doing.&lt;/p&gt;
&lt;p&gt;The issue is the default posture.&lt;/p&gt;
&lt;p&gt;Arch starts minimal. You choose the desktop, services, firewall, sandboxing, backup strategy, update cadence, and how much third-party packaging you trust. That is great for advanced users. It is not great for people who want sane security defaults without building the entire operating model themselves.&lt;/p&gt;
&lt;p&gt;On a default Arch install, you are often the one deciding:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;whether a firewall is installed and enabled&lt;/li&gt;
&lt;li&gt;whether services should be confined&lt;/li&gt;
&lt;li&gt;whether Flatpak apps should be preferred over random AUR packages&lt;/li&gt;
&lt;li&gt;whether snapshots are configured before big updates&lt;/li&gt;
&lt;li&gt;whether AUR changes are reviewed or blindly accepted&lt;/li&gt;
&lt;li&gt;whether a proprietary binary from a random source belongs on the system&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That is not a failure of Arch. It is the design. Arch gives you a clean base and expects you to know what you are doing.&lt;/p&gt;
&lt;h2&gt;Bleeding Edge Has a Cost&lt;/h2&gt;
&lt;p&gt;Arch is a rolling release. That means package updates arrive continuously instead of being held for a traditional versioned release. For many desktop users, this is amazing. You get new kernels, Mesa, desktop environments, compilers, and applications fast.&lt;/p&gt;
&lt;p&gt;The cost is that the whole system is always moving.&lt;/p&gt;
&lt;p&gt;Most of the time, this works. Sometimes, a library changes and a proprietary application breaks. Sometimes, a kernel update exposes a driver problem. Sometimes, an AUR package assumes something about the system that changed yesterday. Sometimes, upstream shipped a regression and Arch users are among the first people to find it.&lt;/p&gt;
&lt;p&gt;If you like debugging, Arch is fantastic. If you need the machine to be boring, Arch can become work.&lt;/p&gt;
&lt;p&gt;That is the real question: do you want your daily driver to be a hobby project or a workstation?&lt;/p&gt;
&lt;h2&gt;Why Fedora Looks Better Right Now&lt;/h2&gt;
&lt;p&gt;Fedora is not technically a rolling release in the same way Arch is. Fedora Rawhide is the rolling development branch. Normal Fedora releases are versioned releases, with a new release about every six months and updates for about 13 months.&lt;/p&gt;
&lt;p&gt;That difference is exactly why Fedora hits a useful middle ground.&lt;/p&gt;
&lt;p&gt;Fedora is modern without being reckless. You get current kernels, Mesa, GNOME, KDE, development tools, PipeWire, Wayland work, container tooling, and a fast-moving desktop stack. But those packages move through Fedora&apos;s packaging, testing, and release process instead of landing as a nonstop rolling stream like Arch.&lt;/p&gt;
&lt;p&gt;For a desktop user, that means Fedora usually feels fresh without making every update feel like a mini migration.&lt;/p&gt;
&lt;h2&gt;Fedora&apos;s Security Defaults Matter&lt;/h2&gt;
&lt;p&gt;Fedora also starts from a stronger security baseline. SELinux is enabled by default in enforcing mode. Firewalld is installed by default. The project has a long history of pushing hardening changes early and integrating them into the distro instead of leaving every user to bolt them on later.&lt;/p&gt;
&lt;p&gt;That does not make Fedora magically secure. You can still install bad software, run random scripts, weaken SELinux, open firewall ports, or add unsafe third-party repositories. But the default posture is different.&lt;/p&gt;
&lt;p&gt;On Fedora, a normal user starts with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SELinux enforcing&lt;/li&gt;
&lt;li&gt;firewalld available by default&lt;/li&gt;
&lt;li&gt;signed RPM repositories&lt;/li&gt;
&lt;li&gt;a predictable release lifecycle&lt;/li&gt;
&lt;li&gt;Flatpak as a common desktop app path&lt;/li&gt;
&lt;li&gt;strong upstream alignment with Red Hat and the wider Linux ecosystem&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That is a better default for most people than a minimal system where every security decision is pushed onto the user.&lt;/p&gt;
&lt;h2&gt;Stable Does Not Mean Old&lt;/h2&gt;
&lt;p&gt;People hear &quot;stable packages&quot; and think &quot;ancient packages.&quot; That is more Debian than Fedora.&lt;/p&gt;
&lt;p&gt;Fedora is not an LTS distro. It is not trying to freeze the desktop for five years. Fedora is closer to a fast, tested snapshot of the Linux ecosystem. You get new software quickly, but within a release structure that is easier to reason about than a pure rolling release.&lt;/p&gt;
&lt;p&gt;That is why Fedora makes sense for a power user who still wants modern hardware support and current desktop features. You do not have to choose between &quot;everything is old&quot; and &quot;everything changes every day.&quot;&lt;/p&gt;
&lt;p&gt;For most users, Fedora is the better balance:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;newer than Ubuntu LTS or Debian Stable&lt;/li&gt;
&lt;li&gt;more predictable than Arch&lt;/li&gt;
&lt;li&gt;more secure out of the box than a minimal DIY install&lt;/li&gt;
&lt;li&gt;less dependent on community build scripts for common software&lt;/li&gt;
&lt;li&gt;still flexible enough for advanced users&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;When Arch Still Makes Sense&lt;/h2&gt;
&lt;p&gt;I am not saying everyone should delete Arch.&lt;/p&gt;
&lt;p&gt;Arch still makes sense if:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;you enjoy building the system yourself&lt;/li&gt;
&lt;li&gt;you want the newest packages immediately&lt;/li&gt;
&lt;li&gt;you read update news before upgrading&lt;/li&gt;
&lt;li&gt;you review AUR diffs&lt;/li&gt;
&lt;li&gt;you keep backups or snapshots&lt;/li&gt;
&lt;li&gt;you understand how to recover from a broken system&lt;/li&gt;
&lt;li&gt;you know which AUR packages you actually trust&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Arch is still one of the best learning distros ever made. It forces you to understand Linux in a way most distros do not. That is valuable.&lt;/p&gt;
&lt;p&gt;But there is a difference between a learning system and a production daily driver. If your machine is how you make videos, write code, run a business, manage servers, or do client work, then predictable defaults matter more.&lt;/p&gt;
&lt;h2&gt;My Takeaway&lt;/h2&gt;
&lt;p&gt;The AUR incident did not prove that Arch is bad. It proved that the AUR trust model requires attention, and most users do not give it enough attention.&lt;/p&gt;
&lt;p&gt;That is the part that should make people rethink their setup.&lt;/p&gt;
&lt;p&gt;If you are using Arch because you love the control and you actually review what you install, keep using Arch. If you are using Arch because a helper made the AUR feel like a giant one-command app store, you are probably taking more risk than you think.&lt;/p&gt;
&lt;p&gt;Fedora gives me most of what I want from modern Linux without making the whole system a constant trust exercise. It is current, secure by default, stable enough for real work, and still close enough to upstream that it does not feel stale.&lt;/p&gt;
&lt;p&gt;That is why switching from Arch to Fedora makes sense now.&lt;/p&gt;
&lt;h2&gt;Sources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Arch Linux: &lt;a href=&quot;https://archlinux.org/news/active-aur-malicious-packages-incident/&quot;&gt;https://archlinux.org/news/active-aur-malicious-packages-incident/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Phoronix: &lt;a href=&quot;https://www.phoronix.com/news/Arch-Linux-AUR-400-Compromised&quot;&gt;https://www.phoronix.com/news/Arch-Linux-AUR-400-Compromised&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The Hacker News: &lt;a href=&quot;https://thehackernews.com/2026/06/over-400-arch-linux-aur-packages.html&quot;&gt;https://thehackernews.com/2026/06/over-400-arch-linux-aur-packages.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fedora release lifecycle: &lt;a href=&quot;https://docs.fedoraproject.org/en-US/releases/lifecycle/&quot;&gt;https://docs.fedoraproject.org/en-US/releases/lifecycle/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fedora security features: &lt;a href=&quot;https://fedoraproject.org/wiki/Security_Features&quot;&gt;https://fedoraproject.org/wiki/Security_Features&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/ybm1KwlGKA0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Resolve in Arch Linux</title><link>https://christitus.com/resolve-in-arch-linux/</link><guid isPermaLink="true">https://christitus.com/resolve-in-arch-linux/</guid><description>&lt;p&gt;DaVinci Resolve on Arch Linux is one of those setups that can be perfect for weeks and then break after one system update. The problem is not that Arch is bad or Resolve is bad. The problem is that Resolve is a proprietary professional video editor built and tested against a conservative Linux stack, while Arch is a rolling-release distribution that moves libraries, GPU drivers, and desktop components quickly.&lt;/p&gt;
&lt;p&gt;This post goes through the common problems, the fixes that matter, and the workflow I use to make Resolve usable on Arch Linux.&lt;/p&gt;

&lt;h2&gt;The Big Picture&lt;/h2&gt;
&lt;p&gt;Blackmagic Design&apos;s Linux target is Rocky Linux, not Arch. Arch users rely on the AUR, community packaging, and wrapper fixes when Resolve expects older or different system libraries. That means the install can work extremely well, but you need to understand what is being fixed.&lt;/p&gt;
&lt;p&gt;There are three major problem areas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Resolve launch errors caused by library/runtime mismatch&lt;/li&gt;
&lt;li&gt;GPU and OpenCL/CUDA setup&lt;/li&gt;
&lt;li&gt;Codec support, especially H.264, H.265, and AAC&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The practical fix is to install Resolve cleanly, verify GPU compute, run Resolve through a compatibility wrapper when needed, and transcode unsupported media into native Resolve-friendly formats.&lt;/p&gt;
&lt;h2&gt;Install Resolve on Arch&lt;/h2&gt;
&lt;p&gt;Use the AUR package for the free version:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;paru -S davinci-resolve
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;or the Studio version:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;paru -S davinci-resolve-studio
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Blackmagic requires a manual download for the Linux installer. If the AUR build fails because the ZIP is missing, download the exact version requested by the package from Blackmagic&apos;s support page, place it in the AUR build directory shown in the error, and run the install again.&lt;/p&gt;
&lt;p&gt;For a clean build environment, make sure you have the basics:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo pacman -S --needed base-devel git
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Do not randomly install old libraries from random mirrors. If the AUR package expects a specific dependency, use the package sources and comments from the AUR package first. Arch partial upgrades and manually pinned libraries are a great way to break this later.&lt;/p&gt;
&lt;h2&gt;GPU Compute Is Required&lt;/h2&gt;
&lt;p&gt;Resolve is not a normal desktop video editor. It expects GPU acceleration. If Resolve starts but says it cannot find a GPU, crashes when opening a project, or shows broken playback, check OpenCL or CUDA first.&lt;/p&gt;
&lt;p&gt;Install the correct stack for your GPU.&lt;/p&gt;
&lt;h3&gt;NVIDIA&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo pacman -S --needed nvidia nvidia-utils opencl-nvidia cuda
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Verify OpenCL:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;clinfo | less
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If &lt;code&gt;clinfo&lt;/code&gt; does not show your NVIDIA GPU, Resolve will not be happy. Reboot after driver changes and make sure Secure Boot is not blocking the NVIDIA kernel module.&lt;/p&gt;
&lt;h3&gt;AMD&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo pacman -S --needed rocm-opencl-runtime
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Verify:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;clinfo | less
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;AMD on Arch has changed over time. Some users used &lt;code&gt;opencl-amd&lt;/code&gt; from the AUR, but ROCm version changes can break Resolve. If Resolve crashes after an AMD OpenCL update, test &lt;code&gt;rocm-opencl-runtime&lt;/code&gt; from the official repos before chasing random downgrade guides.&lt;/p&gt;
&lt;h3&gt;Intel&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo pacman -S --needed intel-compute-runtime
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then verify:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;clinfo | less
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Intel can work, but NVIDIA remains the least painful Resolve path on Linux because Blackmagic&apos;s Linux support matrix is CUDA-focused.&lt;/p&gt;
&lt;h2&gt;The Library Launch Problem&lt;/h2&gt;
&lt;p&gt;The classic Arch problem is that Resolve launches from &lt;code&gt;/opt/resolve/bin/resolve&lt;/code&gt;, then fails with library or symbol errors after an update. This happens because Resolve bundles some libraries but still interacts with system libraries. On a rolling distro, the ABI can move faster than Resolve.&lt;/p&gt;
&lt;p&gt;The quick fix is my &lt;code&gt;resolve-fix&lt;/code&gt; wrapper from:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/ChrisTitusTech/resolve-linux&quot;&gt;https://github.com/ChrisTitusTech/resolve-linux&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Clone it:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/ChrisTitusTech/resolve-linux.git
cd resolve-linux
chmod +x resolve-fix
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Run Resolve through the wrapper:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./resolve-fix
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The wrapper preloads Arch&apos;s GLib stack and puts &lt;code&gt;/usr/lib&lt;/code&gt; earlier in &lt;code&gt;LD_LIBRARY_PATH&lt;/code&gt; before launching Resolve:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;export LD_PRELOAD=/usr/lib/libglib-2.0.so.0:/usr/lib/libgobject-2.0.so.0:/usr/lib/libgio-2.0.so.0:/usr/lib/libgmodule-2.0.so.0
export LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH
exec /opt/resolve/bin/resolve &quot;$@&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If that fixes the launch, make it your normal Resolve command:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo install -m 755 resolve-fix /usr/local/bin/resolve-fix
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then launch:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;resolve-fix
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also edit your desktop launcher to run &lt;code&gt;/usr/local/bin/resolve-fix&lt;/code&gt; instead of the default Resolve binary.&lt;/p&gt;
&lt;h2&gt;Check Missing Libraries&lt;/h2&gt;
&lt;p&gt;If Resolve still will not launch, run:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ldd /opt/resolve/bin/resolve | grep &quot;not found&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Common fixes include:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo pacman -S --needed libxcrypt-compat glu apr-util
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Do not install packages blindly. Run &lt;code&gt;ldd&lt;/code&gt;, see what is missing, then install the package that owns that library.&lt;/p&gt;
&lt;p&gt;To find the package for a missing library:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pacman -Fyx &apos;libcrypt.so.1&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If file database search is not enabled:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo pacman -Fy
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;The Codec Problem&lt;/h2&gt;
&lt;p&gt;This is the part that confuses most people because MP4 is a container, not a codec.&lt;/p&gt;
&lt;p&gt;On Linux, Resolve codec support is different from Windows and macOS. Blackmagic&apos;s supported codec document for Resolve 20 lists Rocky Linux 8.6 CUDA as the Linux platform. In that Linux matrix, AAC is not available, while embedded audio support is limited to decodable formats such as PCM, MP3, FLAC, OPUS, and AC-3 depending on the container.&lt;/p&gt;
&lt;p&gt;That means common camera, phone, OBS, and downloaded clips can fail in weird ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MP4 imports but video is missing&lt;/li&gt;
&lt;li&gt;Video imports but audio is silent&lt;/li&gt;
&lt;li&gt;H.264 or H.265 media shows as offline&lt;/li&gt;
&lt;li&gt;Free Resolve cannot decode formats that Studio can&lt;/li&gt;
&lt;li&gt;Studio still does not magically fix AAC audio on Linux&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The most reliable answer is to transcode footage before editing.&lt;/p&gt;
&lt;h2&gt;Convert Footage to Native Resolve Formats&lt;/h2&gt;
&lt;p&gt;Use the conversion script from the same repo:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/ChrisTitusTech/resolve-linux&quot;&gt;https://github.com/ChrisTitusTech/resolve-linux&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Install dependencies:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo pacman -S --needed ffmpeg parallel
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Clone and prepare the script:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/ChrisTitusTech/resolve-linux.git
cd resolve-linux
chmod +x resolve_convert.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Preview what will be converted:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./resolve_convert.sh -n /path/to/footage
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Convert the folder:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./resolve_convert.sh /path/to/footage
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The script recursively scans the folder, skips its own output directory, and mirrors the original folder layout under &lt;code&gt;resolve_ready/&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Video is converted to:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;DNxHR in a .mov container
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Audio is converted to:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;PCM 24-bit 48 kHz .wav
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That avoids the common Linux Resolve problems with H.264, H.265, and AAC. DNxHR takes much more disk space than camera originals, but it edits smoothly and imports cleanly.&lt;/p&gt;
&lt;h2&gt;Quality Profiles&lt;/h2&gt;
&lt;p&gt;The conversion script supports multiple DNxHR profiles:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./resolve_convert.sh -q lb /path/to/footage
./resolve_convert.sh -q sq /path/to/footage
./resolve_convert.sh -q hq /path/to/footage
./resolve_convert.sh -q hqx /path/to/footage
./resolve_convert.sh -q 444 /path/to/footage
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Use them like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;lb&lt;/code&gt;: proxy/offline editing&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sq&lt;/code&gt;: smaller intermediate files&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hq&lt;/code&gt;: good default&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hqx&lt;/code&gt;: high quality 12-bit work&lt;/li&gt;
&lt;li&gt;&lt;code&gt;444&lt;/code&gt;: maximum quality when you actually need it&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For most YouTube and screen-recording workflows, &lt;code&gt;hq&lt;/code&gt; is the default I would use. For rough cuts on a laptop, use &lt;code&gt;lb&lt;/code&gt; and relink later if needed.&lt;/p&gt;
&lt;p&gt;Parallel conversion:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./resolve_convert.sh -q hq -j 4 /path/to/footage
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Do not point this at a nearly full disk. DNxHR files are large.&lt;/p&gt;
&lt;h2&gt;Fix Silent Audio&lt;/h2&gt;
&lt;p&gt;If the clip imports but has no audio, it is probably AAC. Convert the file:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./resolve_convert.sh /path/to/clip-folder
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Or convert just the audio manually:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ffmpeg -i input.mp4 -vn -c:a pcm_s24le -ar 48000 output.wav
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then import the WAV into Resolve and sync it with the video.&lt;/p&gt;
&lt;p&gt;For batch work, the script is easier because it keeps the folder structure and handles video plus audio together.&lt;/p&gt;
&lt;h2&gt;Fix Media Offline for MP4&lt;/h2&gt;
&lt;p&gt;If an MP4 shows &quot;Media Offline&quot;, inspect it:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ffprobe input.mp4
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If it is H.264 or H.265, convert it:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./resolve_convert.sh -q hq /path/to/footage
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then import the converted &lt;code&gt;.mov&lt;/code&gt; from &lt;code&gt;resolve_ready/&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Do not waste time installing random codec packs. Resolve does not use your desktop media player codec stack the same way VLC or Kdenlive does.&lt;/p&gt;
&lt;h2&gt;Fix Fonts Missing in Resolve&lt;/h2&gt;
&lt;p&gt;Resolve may only look at system font paths. If fonts installed under your home directory do not appear, open Fusion settings and update the font path map from:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;SystemFonts:
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;to:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;SystemFonts:;$HOME/.local/share/fonts
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Restart Resolve after changing it.&lt;/p&gt;
&lt;h2&gt;Backup Before You Break It&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;resolve-linux&lt;/code&gt; repo also includes &lt;code&gt;resolve_backup.sh&lt;/code&gt;, which can archive the Resolve install and user configuration. This is useful before reinstalling, moving to another Linux machine, or testing a big driver update.&lt;/p&gt;
&lt;p&gt;Run a dry run first:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./resolve_backup.sh --dry-run
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Create a backup:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./resolve_backup.sh --output-dir ~/backups
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Restore from an archive:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./resolve_backup.sh --restore inputfile.tar.gz
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is not a replacement for real system snapshots, but it is useful for preserving Resolve settings, LUTs, scripts, fonts, and the application install.&lt;/p&gt;
&lt;h2&gt;Troubleshooting Checklist&lt;/h2&gt;
&lt;h3&gt;Resolve does not launch&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;resolve-fix
ldd /opt/resolve/bin/resolve | grep &quot;not found&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Install missing libraries with &lt;code&gt;pacman&lt;/code&gt;, not random downloads.&lt;/p&gt;
&lt;h3&gt;Resolve cannot find a GPU&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;clinfo
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Install the correct OpenCL/CUDA stack for your GPU and reboot.&lt;/p&gt;
&lt;h3&gt;Resolve crashes after a system update&lt;/h3&gt;
&lt;p&gt;Try the wrapper first:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;resolve-fix
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then check AUR comments for the exact Resolve package version. Rolling distros break proprietary apps when runtime libraries move.&lt;/p&gt;
&lt;h3&gt;MP4 imports without audio&lt;/h3&gt;
&lt;p&gt;Convert AAC to PCM:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./resolve_convert.sh /path/to/footage
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;MP4 or H.265 shows Media Offline&lt;/h3&gt;
&lt;p&gt;Convert to DNxHR:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./resolve_convert.sh -q hq /path/to/footage
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Conversion script says DNxHD/DNxHR is missing&lt;/h3&gt;
&lt;p&gt;Reinstall Arch&apos;s ffmpeg package:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo pacman -S ffmpeg
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Recommended Workflow&lt;/h2&gt;
&lt;p&gt;My practical Arch workflow is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Install Resolve from the AUR.&lt;/li&gt;
&lt;li&gt;Install the right GPU compute stack.&lt;/li&gt;
&lt;li&gt;Verify with &lt;code&gt;clinfo&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Launch with &lt;code&gt;resolve-fix&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Convert all questionable footage with &lt;code&gt;resolve_convert.sh&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Edit from &lt;code&gt;resolve_ready/&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Backup Resolve settings before major system or driver updates.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Arch Linux can be a great Resolve workstation, but only if you stop treating Resolve like a normal Arch-native package. It is proprietary software with Linux-specific codec limitations and runtime assumptions. Once you wrap the launch and feed it DNxHR/PCM media, the experience becomes much more predictable.&lt;/p&gt;
&lt;h2&gt;Sources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ChrisTitusTech Resolve Linux tools: &lt;a href=&quot;https://github.com/ChrisTitusTech/resolve-linux&quot;&gt;https://github.com/ChrisTitusTech/resolve-linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Arch Wiki DaVinci Resolve page: &lt;a href=&quot;https://wiki.archlinux.org/title/DaVinci_Resolve&quot;&gt;https://wiki.archlinux.org/title/DaVinci_Resolve&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;DaVinci Resolve 20 supported codecs: &lt;a href=&quot;https://documents.blackmagicdesign.com/SupportNotes/DaVinci_Resolve_20_Supported_Codec_List.pdf&quot;&gt;https://documents.blackmagicdesign.com/SupportNotes/DaVinci_Resolve_20_Supported_Codec_List.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;AUR &lt;code&gt;davinci-resolve&lt;/code&gt; package: &lt;a href=&quot;https://aur.archlinux.org/packages/davinci-resolve&quot;&gt;https://aur.archlinux.org/packages/davinci-resolve&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;YouTube Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/oHsboGBxUuc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;DaVinci Resolve on Arch Linux is one of those setups that can be perfect for weeks and then break after one system update. The problem is not that Arch is bad or Resolve is bad. The problem is that Resolve is a proprietary professional video editor built and tested against a conservative Linux stack, while Arch is a rolling-release distribution that moves libraries, GPU drivers, and desktop components quickly.&lt;/p&gt;
&lt;p&gt;This post goes through the common problems, the fixes that matter, and the workflow I use to make Resolve usable on Arch Linux.&lt;/p&gt;

&lt;h2&gt;The Big Picture&lt;/h2&gt;
&lt;p&gt;Blackmagic Design&apos;s Linux target is Rocky Linux, not Arch. Arch users rely on the AUR, community packaging, and wrapper fixes when Resolve expects older or different system libraries. That means the install can work extremely well, but you need to understand what is being fixed.&lt;/p&gt;
&lt;p&gt;There are three major problem areas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Resolve launch errors caused by library/runtime mismatch&lt;/li&gt;
&lt;li&gt;GPU and OpenCL/CUDA setup&lt;/li&gt;
&lt;li&gt;Codec support, especially H.264, H.265, and AAC&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The practical fix is to install Resolve cleanly, verify GPU compute, run Resolve through a compatibility wrapper when needed, and transcode unsupported media into native Resolve-friendly formats.&lt;/p&gt;
&lt;h2&gt;Install Resolve on Arch&lt;/h2&gt;
&lt;p&gt;Use the AUR package for the free version:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;paru -S davinci-resolve
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;or the Studio version:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;paru -S davinci-resolve-studio
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Blackmagic requires a manual download for the Linux installer. If the AUR build fails because the ZIP is missing, download the exact version requested by the package from Blackmagic&apos;s support page, place it in the AUR build directory shown in the error, and run the install again.&lt;/p&gt;
&lt;p&gt;For a clean build environment, make sure you have the basics:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo pacman -S --needed base-devel git
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Do not randomly install old libraries from random mirrors. If the AUR package expects a specific dependency, use the package sources and comments from the AUR package first. Arch partial upgrades and manually pinned libraries are a great way to break this later.&lt;/p&gt;
&lt;h2&gt;GPU Compute Is Required&lt;/h2&gt;
&lt;p&gt;Resolve is not a normal desktop video editor. It expects GPU acceleration. If Resolve starts but says it cannot find a GPU, crashes when opening a project, or shows broken playback, check OpenCL or CUDA first.&lt;/p&gt;
&lt;p&gt;Install the correct stack for your GPU.&lt;/p&gt;
&lt;h3&gt;NVIDIA&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo pacman -S --needed nvidia nvidia-utils opencl-nvidia cuda
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Verify OpenCL:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;clinfo | less
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If &lt;code&gt;clinfo&lt;/code&gt; does not show your NVIDIA GPU, Resolve will not be happy. Reboot after driver changes and make sure Secure Boot is not blocking the NVIDIA kernel module.&lt;/p&gt;
&lt;h3&gt;AMD&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo pacman -S --needed rocm-opencl-runtime
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Verify:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;clinfo | less
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;AMD on Arch has changed over time. Some users used &lt;code&gt;opencl-amd&lt;/code&gt; from the AUR, but ROCm version changes can break Resolve. If Resolve crashes after an AMD OpenCL update, test &lt;code&gt;rocm-opencl-runtime&lt;/code&gt; from the official repos before chasing random downgrade guides.&lt;/p&gt;
&lt;h3&gt;Intel&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo pacman -S --needed intel-compute-runtime
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then verify:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;clinfo | less
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Intel can work, but NVIDIA remains the least painful Resolve path on Linux because Blackmagic&apos;s Linux support matrix is CUDA-focused.&lt;/p&gt;
&lt;h2&gt;The Library Launch Problem&lt;/h2&gt;
&lt;p&gt;The classic Arch problem is that Resolve launches from &lt;code&gt;/opt/resolve/bin/resolve&lt;/code&gt;, then fails with library or symbol errors after an update. This happens because Resolve bundles some libraries but still interacts with system libraries. On a rolling distro, the ABI can move faster than Resolve.&lt;/p&gt;
&lt;p&gt;The quick fix is my &lt;code&gt;resolve-fix&lt;/code&gt; wrapper from:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/ChrisTitusTech/resolve-linux&quot;&gt;https://github.com/ChrisTitusTech/resolve-linux&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Clone it:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/ChrisTitusTech/resolve-linux.git
cd resolve-linux
chmod +x resolve-fix
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Run Resolve through the wrapper:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./resolve-fix
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The wrapper preloads Arch&apos;s GLib stack and puts &lt;code&gt;/usr/lib&lt;/code&gt; earlier in &lt;code&gt;LD_LIBRARY_PATH&lt;/code&gt; before launching Resolve:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;export LD_PRELOAD=/usr/lib/libglib-2.0.so.0:/usr/lib/libgobject-2.0.so.0:/usr/lib/libgio-2.0.so.0:/usr/lib/libgmodule-2.0.so.0
export LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH
exec /opt/resolve/bin/resolve &quot;$@&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If that fixes the launch, make it your normal Resolve command:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo install -m 755 resolve-fix /usr/local/bin/resolve-fix
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then launch:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;resolve-fix
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also edit your desktop launcher to run &lt;code&gt;/usr/local/bin/resolve-fix&lt;/code&gt; instead of the default Resolve binary.&lt;/p&gt;
&lt;h2&gt;Check Missing Libraries&lt;/h2&gt;
&lt;p&gt;If Resolve still will not launch, run:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ldd /opt/resolve/bin/resolve | grep &quot;not found&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Common fixes include:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo pacman -S --needed libxcrypt-compat glu apr-util
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Do not install packages blindly. Run &lt;code&gt;ldd&lt;/code&gt;, see what is missing, then install the package that owns that library.&lt;/p&gt;
&lt;p&gt;To find the package for a missing library:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pacman -Fyx &apos;libcrypt.so.1&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If file database search is not enabled:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo pacman -Fy
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;The Codec Problem&lt;/h2&gt;
&lt;p&gt;This is the part that confuses most people because MP4 is a container, not a codec.&lt;/p&gt;
&lt;p&gt;On Linux, Resolve codec support is different from Windows and macOS. Blackmagic&apos;s supported codec document for Resolve 20 lists Rocky Linux 8.6 CUDA as the Linux platform. In that Linux matrix, AAC is not available, while embedded audio support is limited to decodable formats such as PCM, MP3, FLAC, OPUS, and AC-3 depending on the container.&lt;/p&gt;
&lt;p&gt;That means common camera, phone, OBS, and downloaded clips can fail in weird ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MP4 imports but video is missing&lt;/li&gt;
&lt;li&gt;Video imports but audio is silent&lt;/li&gt;
&lt;li&gt;H.264 or H.265 media shows as offline&lt;/li&gt;
&lt;li&gt;Free Resolve cannot decode formats that Studio can&lt;/li&gt;
&lt;li&gt;Studio still does not magically fix AAC audio on Linux&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The most reliable answer is to transcode footage before editing.&lt;/p&gt;
&lt;h2&gt;Convert Footage to Native Resolve Formats&lt;/h2&gt;
&lt;p&gt;Use the conversion script from the same repo:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/ChrisTitusTech/resolve-linux&quot;&gt;https://github.com/ChrisTitusTech/resolve-linux&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Install dependencies:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo pacman -S --needed ffmpeg parallel
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Clone and prepare the script:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/ChrisTitusTech/resolve-linux.git
cd resolve-linux
chmod +x resolve_convert.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Preview what will be converted:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./resolve_convert.sh -n /path/to/footage
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Convert the folder:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./resolve_convert.sh /path/to/footage
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The script recursively scans the folder, skips its own output directory, and mirrors the original folder layout under &lt;code&gt;resolve_ready/&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Video is converted to:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;DNxHR in a .mov container
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Audio is converted to:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;PCM 24-bit 48 kHz .wav
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That avoids the common Linux Resolve problems with H.264, H.265, and AAC. DNxHR takes much more disk space than camera originals, but it edits smoothly and imports cleanly.&lt;/p&gt;
&lt;h2&gt;Quality Profiles&lt;/h2&gt;
&lt;p&gt;The conversion script supports multiple DNxHR profiles:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./resolve_convert.sh -q lb /path/to/footage
./resolve_convert.sh -q sq /path/to/footage
./resolve_convert.sh -q hq /path/to/footage
./resolve_convert.sh -q hqx /path/to/footage
./resolve_convert.sh -q 444 /path/to/footage
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Use them like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;lb&lt;/code&gt;: proxy/offline editing&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sq&lt;/code&gt;: smaller intermediate files&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hq&lt;/code&gt;: good default&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hqx&lt;/code&gt;: high quality 12-bit work&lt;/li&gt;
&lt;li&gt;&lt;code&gt;444&lt;/code&gt;: maximum quality when you actually need it&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For most YouTube and screen-recording workflows, &lt;code&gt;hq&lt;/code&gt; is the default I would use. For rough cuts on a laptop, use &lt;code&gt;lb&lt;/code&gt; and relink later if needed.&lt;/p&gt;
&lt;p&gt;Parallel conversion:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./resolve_convert.sh -q hq -j 4 /path/to/footage
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Do not point this at a nearly full disk. DNxHR files are large.&lt;/p&gt;
&lt;h2&gt;Fix Silent Audio&lt;/h2&gt;
&lt;p&gt;If the clip imports but has no audio, it is probably AAC. Convert the file:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./resolve_convert.sh /path/to/clip-folder
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Or convert just the audio manually:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ffmpeg -i input.mp4 -vn -c:a pcm_s24le -ar 48000 output.wav
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then import the WAV into Resolve and sync it with the video.&lt;/p&gt;
&lt;p&gt;For batch work, the script is easier because it keeps the folder structure and handles video plus audio together.&lt;/p&gt;
&lt;h2&gt;Fix Media Offline for MP4&lt;/h2&gt;
&lt;p&gt;If an MP4 shows &quot;Media Offline&quot;, inspect it:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ffprobe input.mp4
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If it is H.264 or H.265, convert it:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./resolve_convert.sh -q hq /path/to/footage
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then import the converted &lt;code&gt;.mov&lt;/code&gt; from &lt;code&gt;resolve_ready/&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Do not waste time installing random codec packs. Resolve does not use your desktop media player codec stack the same way VLC or Kdenlive does.&lt;/p&gt;
&lt;h2&gt;Fix Fonts Missing in Resolve&lt;/h2&gt;
&lt;p&gt;Resolve may only look at system font paths. If fonts installed under your home directory do not appear, open Fusion settings and update the font path map from:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;SystemFonts:
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;to:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;SystemFonts:;$HOME/.local/share/fonts
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Restart Resolve after changing it.&lt;/p&gt;
&lt;h2&gt;Backup Before You Break It&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;resolve-linux&lt;/code&gt; repo also includes &lt;code&gt;resolve_backup.sh&lt;/code&gt;, which can archive the Resolve install and user configuration. This is useful before reinstalling, moving to another Linux machine, or testing a big driver update.&lt;/p&gt;
&lt;p&gt;Run a dry run first:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./resolve_backup.sh --dry-run
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Create a backup:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./resolve_backup.sh --output-dir ~/backups
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Restore from an archive:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./resolve_backup.sh --restore inputfile.tar.gz
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is not a replacement for real system snapshots, but it is useful for preserving Resolve settings, LUTs, scripts, fonts, and the application install.&lt;/p&gt;
&lt;h2&gt;Troubleshooting Checklist&lt;/h2&gt;
&lt;h3&gt;Resolve does not launch&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;resolve-fix
ldd /opt/resolve/bin/resolve | grep &quot;not found&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Install missing libraries with &lt;code&gt;pacman&lt;/code&gt;, not random downloads.&lt;/p&gt;
&lt;h3&gt;Resolve cannot find a GPU&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;clinfo
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Install the correct OpenCL/CUDA stack for your GPU and reboot.&lt;/p&gt;
&lt;h3&gt;Resolve crashes after a system update&lt;/h3&gt;
&lt;p&gt;Try the wrapper first:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;resolve-fix
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then check AUR comments for the exact Resolve package version. Rolling distros break proprietary apps when runtime libraries move.&lt;/p&gt;
&lt;h3&gt;MP4 imports without audio&lt;/h3&gt;
&lt;p&gt;Convert AAC to PCM:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./resolve_convert.sh /path/to/footage
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;MP4 or H.265 shows Media Offline&lt;/h3&gt;
&lt;p&gt;Convert to DNxHR:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./resolve_convert.sh -q hq /path/to/footage
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Conversion script says DNxHD/DNxHR is missing&lt;/h3&gt;
&lt;p&gt;Reinstall Arch&apos;s ffmpeg package:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo pacman -S ffmpeg
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Recommended Workflow&lt;/h2&gt;
&lt;p&gt;My practical Arch workflow is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Install Resolve from the AUR.&lt;/li&gt;
&lt;li&gt;Install the right GPU compute stack.&lt;/li&gt;
&lt;li&gt;Verify with &lt;code&gt;clinfo&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Launch with &lt;code&gt;resolve-fix&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Convert all questionable footage with &lt;code&gt;resolve_convert.sh&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Edit from &lt;code&gt;resolve_ready/&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Backup Resolve settings before major system or driver updates.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Arch Linux can be a great Resolve workstation, but only if you stop treating Resolve like a normal Arch-native package. It is proprietary software with Linux-specific codec limitations and runtime assumptions. Once you wrap the launch and feed it DNxHR/PCM media, the experience becomes much more predictable.&lt;/p&gt;
&lt;h2&gt;Sources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ChrisTitusTech Resolve Linux tools: &lt;a href=&quot;https://github.com/ChrisTitusTech/resolve-linux&quot;&gt;https://github.com/ChrisTitusTech/resolve-linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Arch Wiki DaVinci Resolve page: &lt;a href=&quot;https://wiki.archlinux.org/title/DaVinci_Resolve&quot;&gt;https://wiki.archlinux.org/title/DaVinci_Resolve&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;DaVinci Resolve 20 supported codecs: &lt;a href=&quot;https://documents.blackmagicdesign.com/SupportNotes/DaVinci_Resolve_20_Supported_Codec_List.pdf&quot;&gt;https://documents.blackmagicdesign.com/SupportNotes/DaVinci_Resolve_20_Supported_Codec_List.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;AUR &lt;code&gt;davinci-resolve&lt;/code&gt; package: &lt;a href=&quot;https://aur.archlinux.org/packages/davinci-resolve&quot;&gt;https://aur.archlinux.org/packages/davinci-resolve&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;YouTube Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/oHsboGBxUuc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Zed Editor</title><link>https://christitus.com/zed-editor/</link><guid isPermaLink="true">https://christitus.com/zed-editor/</guid><description>&lt;p&gt;Zed is what happens when an editor is built for speed first. It is written in Rust, rendered with the GPU, and feels instant in a way most Electron-based editors never do.&lt;/p&gt;
&lt;p&gt;If you want VS Code comfort without Electron drag, Zed is a sharp middle ground that still delivers LSPs, Vim mode, terminals, Git, remote development, and AI.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2026/zed-header.webp&quot; alt=&quot;Zed header&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Quick Takeaways&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Zed feels fast because it is GPU-rendered and native&lt;/li&gt;
&lt;li&gt;You get IDE-grade features without plugin sprawl&lt;/li&gt;
&lt;li&gt;Threads in 1.0 make parallel AI work practical instead of messy&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Why it matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Native Rust + GPU UI&lt;/td&gt;
&lt;td&gt;Smooth scrolling, low latency, and a desktop app that feels light.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Built-in language support&lt;/td&gt;
&lt;td&gt;LSPs, completions, diagnostics, formatting, and debugging without turning setup into a side quest.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vim mode + clean keybindings&lt;/td&gt;
&lt;td&gt;Great for keyboard-heavy workflows without needing a giant config.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Terminal, Git, and tasks&lt;/td&gt;
&lt;td&gt;Keeps editing, running, and reviewing code in one place.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Remote development&lt;/td&gt;
&lt;td&gt;SSH and dev container workflows make it easy to work on servers and larger projects.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI that stays integrated&lt;/td&gt;
&lt;td&gt;Edit prediction, agent workflows, and provider choice without making the editor feel bolted on.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Basic Zed Features&lt;/h2&gt;
&lt;p&gt;At a basic level, Zed covers everything most people actually need in a daily editor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fast file search and project-wide search&lt;/li&gt;
&lt;li&gt;Syntax highlighting, LSP completions, diagnostics, and formatting&lt;/li&gt;
&lt;li&gt;Built-in terminal and Git integration&lt;/li&gt;
&lt;li&gt;Vim mode and strong keyboard-first workflows&lt;/li&gt;
&lt;li&gt;Markdown preview, tasks, and remote development&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That is really the appeal: it feels simple on the surface, but it already has the core IDE features most developers want without feeling bloated.&lt;/p&gt;
&lt;p&gt;If you want to add Vim bindings or mode to Zed, see the &lt;a href=&quot;https://zed.dev/docs/vim&quot;&gt;Vim docs&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;My Zed Customizations&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2026/zed-screen.webp&quot; alt=&quot;Zed screenshot&quot; /&gt;&lt;/p&gt;
&lt;p&gt;My setup is based on the configs in &lt;a href=&quot;https://github.com/ChrisTitusTech/zed-titus&quot;&gt;&lt;code&gt;zed-titus&lt;/code&gt;&lt;/a&gt;, and the goal is pretty straightforward: make Zed feel faster, cleaner, and more keyboard-driven.&lt;/p&gt;
&lt;p&gt;The big changes are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;VS Code base keymap + Vim mode&lt;/strong&gt; for a familiar foundation with modal editing on top&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Maple Mono NF&lt;/strong&gt; with &lt;strong&gt;Maple Dark / Maple Light&lt;/strong&gt; for a clean, readable look&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Right-side panels&lt;/strong&gt; for Git, project tree, outline, collaboration, and AI so the layout stays consistent&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Relative line numbers, inlay hints, inline blame, autosave, and edit predictions&lt;/strong&gt; to keep coding flow smooth&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copilot-first AI setup&lt;/strong&gt; with favorite models and permissive terminal/fetch tools for agent workflows&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom keybindings&lt;/strong&gt; for file finding, search, code actions, diagnostics, Git hunks, markdown preview, terminal toggling, and pane navigation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom tasks&lt;/strong&gt; for content work, especially a &lt;strong&gt;Save clipboard image (Hugo)&lt;/strong&gt; action that runs my Bash helper instead of relying on extra file-picker tooling&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One of the most useful parts of that setup is the image task. Instead of manually pasting screenshots, converting them, moving them into the right Hugo folder, and then writing the markdown link by hand, the task does the boring part for me. It grabs an image from the clipboard, converts it to &lt;strong&gt;WebP&lt;/strong&gt;, saves it into the website&apos;s yearly image directory, inserts the markdown image link into the open post, and copies that link back to the clipboard.&lt;/p&gt;
&lt;p&gt;That makes Zed feel less like just a code editor and more like a fast writing workflow for the site itself.&lt;/p&gt;
&lt;p&gt;So the custom setup is not about turning Zed into a totally different editor. It is more about sharpening the defaults, improving navigation, and making AI plus Vim-style editing feel natural.&lt;/p&gt;
&lt;h2&gt;Why Zed 1.0 Matters&lt;/h2&gt;
&lt;p&gt;Zed 1.0 feels like the point where the editor stopped being &quot;interesting&quot; and became ready for serious daily use.&lt;/p&gt;
&lt;p&gt;The biggest 1.0 addition is &lt;strong&gt;Threads support&lt;/strong&gt;. The new &lt;strong&gt;Threads Sidebar&lt;/strong&gt; lets you run multiple agent threads in parallel, organize them by project, stop or archive them quickly, and keep work across repos separated without losing the bigger picture.&lt;/p&gt;
&lt;p&gt;That lands on top of the stuff that already makes Zed compelling:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;real performance&lt;/li&gt;
&lt;li&gt;multiplayer collaboration baked into the editor&lt;/li&gt;
&lt;li&gt;strong Git and remote workflows&lt;/li&gt;
&lt;li&gt;cross-platform support on Linux, Windows, and macOS&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Who It Is For&lt;/h2&gt;
&lt;p&gt;Zed makes the most sense if you want a fast editor with modern IDE features, but you do not want the usual Electron sluggishness or plugin sprawl.&lt;/p&gt;
&lt;p&gt;If VS Code feels heavy and Neovim feels too DIY, Zed sits in a really good spot between the two.&lt;/p&gt;
&lt;p&gt;If you want the DIY route instead, my Neovim setup is here: &lt;a href=&quot;/neovim-the-elite-editor/&quot;&gt;Neovim the Elite Editor&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Final Thoughts&lt;/h2&gt;
&lt;p&gt;Zed 1.0 is not just another editor release. It is one of the few tools that actually feels new: fast, polished, collaborative, and now much better at handling parallel AI work thanks to Threads.&lt;/p&gt;
&lt;p&gt;If you want to try it, grab Zed at &lt;a href=&quot;https://zed.dev/&quot;&gt;zed.dev&lt;/a&gt; and see the exact config I use in &lt;a href=&quot;https://github.com/ChrisTitusTech/zed-titus&quot;&gt;&lt;code&gt;zed-titus&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/59jRdtEiSpA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Zed is what happens when an editor is built for speed first. It is written in Rust, rendered with the GPU, and feels instant in a way most Electron-based editors never do.&lt;/p&gt;
&lt;p&gt;If you want VS Code comfort without Electron drag, Zed is a sharp middle ground that still delivers LSPs, Vim mode, terminals, Git, remote development, and AI.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2026/zed-header.webp&quot; alt=&quot;Zed header&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Quick Takeaways&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Zed feels fast because it is GPU-rendered and native&lt;/li&gt;
&lt;li&gt;You get IDE-grade features without plugin sprawl&lt;/li&gt;
&lt;li&gt;Threads in 1.0 make parallel AI work practical instead of messy&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Why it matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Native Rust + GPU UI&lt;/td&gt;
&lt;td&gt;Smooth scrolling, low latency, and a desktop app that feels light.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Built-in language support&lt;/td&gt;
&lt;td&gt;LSPs, completions, diagnostics, formatting, and debugging without turning setup into a side quest.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vim mode + clean keybindings&lt;/td&gt;
&lt;td&gt;Great for keyboard-heavy workflows without needing a giant config.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Terminal, Git, and tasks&lt;/td&gt;
&lt;td&gt;Keeps editing, running, and reviewing code in one place.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Remote development&lt;/td&gt;
&lt;td&gt;SSH and dev container workflows make it easy to work on servers and larger projects.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI that stays integrated&lt;/td&gt;
&lt;td&gt;Edit prediction, agent workflows, and provider choice without making the editor feel bolted on.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Basic Zed Features&lt;/h2&gt;
&lt;p&gt;At a basic level, Zed covers everything most people actually need in a daily editor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fast file search and project-wide search&lt;/li&gt;
&lt;li&gt;Syntax highlighting, LSP completions, diagnostics, and formatting&lt;/li&gt;
&lt;li&gt;Built-in terminal and Git integration&lt;/li&gt;
&lt;li&gt;Vim mode and strong keyboard-first workflows&lt;/li&gt;
&lt;li&gt;Markdown preview, tasks, and remote development&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That is really the appeal: it feels simple on the surface, but it already has the core IDE features most developers want without feeling bloated.&lt;/p&gt;
&lt;p&gt;If you want to add Vim bindings or mode to Zed, see the &lt;a href=&quot;https://zed.dev/docs/vim&quot;&gt;Vim docs&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;My Zed Customizations&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2026/zed-screen.webp&quot; alt=&quot;Zed screenshot&quot; /&gt;&lt;/p&gt;
&lt;p&gt;My setup is based on the configs in &lt;a href=&quot;https://github.com/ChrisTitusTech/zed-titus&quot;&gt;&lt;code&gt;zed-titus&lt;/code&gt;&lt;/a&gt;, and the goal is pretty straightforward: make Zed feel faster, cleaner, and more keyboard-driven.&lt;/p&gt;
&lt;p&gt;The big changes are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;VS Code base keymap + Vim mode&lt;/strong&gt; for a familiar foundation with modal editing on top&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Maple Mono NF&lt;/strong&gt; with &lt;strong&gt;Maple Dark / Maple Light&lt;/strong&gt; for a clean, readable look&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Right-side panels&lt;/strong&gt; for Git, project tree, outline, collaboration, and AI so the layout stays consistent&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Relative line numbers, inlay hints, inline blame, autosave, and edit predictions&lt;/strong&gt; to keep coding flow smooth&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copilot-first AI setup&lt;/strong&gt; with favorite models and permissive terminal/fetch tools for agent workflows&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom keybindings&lt;/strong&gt; for file finding, search, code actions, diagnostics, Git hunks, markdown preview, terminal toggling, and pane navigation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom tasks&lt;/strong&gt; for content work, especially a &lt;strong&gt;Save clipboard image (Hugo)&lt;/strong&gt; action that runs my Bash helper instead of relying on extra file-picker tooling&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One of the most useful parts of that setup is the image task. Instead of manually pasting screenshots, converting them, moving them into the right Hugo folder, and then writing the markdown link by hand, the task does the boring part for me. It grabs an image from the clipboard, converts it to &lt;strong&gt;WebP&lt;/strong&gt;, saves it into the website&apos;s yearly image directory, inserts the markdown image link into the open post, and copies that link back to the clipboard.&lt;/p&gt;
&lt;p&gt;That makes Zed feel less like just a code editor and more like a fast writing workflow for the site itself.&lt;/p&gt;
&lt;p&gt;So the custom setup is not about turning Zed into a totally different editor. It is more about sharpening the defaults, improving navigation, and making AI plus Vim-style editing feel natural.&lt;/p&gt;
&lt;h2&gt;Why Zed 1.0 Matters&lt;/h2&gt;
&lt;p&gt;Zed 1.0 feels like the point where the editor stopped being &quot;interesting&quot; and became ready for serious daily use.&lt;/p&gt;
&lt;p&gt;The biggest 1.0 addition is &lt;strong&gt;Threads support&lt;/strong&gt;. The new &lt;strong&gt;Threads Sidebar&lt;/strong&gt; lets you run multiple agent threads in parallel, organize them by project, stop or archive them quickly, and keep work across repos separated without losing the bigger picture.&lt;/p&gt;
&lt;p&gt;That lands on top of the stuff that already makes Zed compelling:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;real performance&lt;/li&gt;
&lt;li&gt;multiplayer collaboration baked into the editor&lt;/li&gt;
&lt;li&gt;strong Git and remote workflows&lt;/li&gt;
&lt;li&gt;cross-platform support on Linux, Windows, and macOS&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Who It Is For&lt;/h2&gt;
&lt;p&gt;Zed makes the most sense if you want a fast editor with modern IDE features, but you do not want the usual Electron sluggishness or plugin sprawl.&lt;/p&gt;
&lt;p&gt;If VS Code feels heavy and Neovim feels too DIY, Zed sits in a really good spot between the two.&lt;/p&gt;
&lt;p&gt;If you want the DIY route instead, my Neovim setup is here: &lt;a href=&quot;/neovim-the-elite-editor/&quot;&gt;Neovim the Elite Editor&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Final Thoughts&lt;/h2&gt;
&lt;p&gt;Zed 1.0 is not just another editor release. It is one of the few tools that actually feels new: fast, polished, collaborative, and now much better at handling parallel AI work thanks to Threads.&lt;/p&gt;
&lt;p&gt;If you want to try it, grab Zed at &lt;a href=&quot;https://zed.dev/&quot;&gt;zed.dev&lt;/a&gt; and see the exact config I use in &lt;a href=&quot;https://github.com/ChrisTitusTech/zed-titus&quot;&gt;&lt;code&gt;zed-titus&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/59jRdtEiSpA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>How to Benchmark in Linux</title><link>https://christitus.com/how-to-benchmark-in-linux/</link><guid isPermaLink="true">https://christitus.com/how-to-benchmark-in-linux/</guid><description>&lt;p&gt;Proper Linux benchmarking is not about the biggest single run. It is about building a clean baseline, controlling variables, repeating runs for statistical validity, and generating charts that show the data clearly.&lt;/p&gt;
&lt;p&gt;The Phoronix Test Suite provides the structure: repeatable workloads, saved results, baseline comparison, and batch automation. MangoHud captures frame-time data. Together with a Python plotting tool, you get a complete workflow from raw test data to publication-ready charts.&lt;/p&gt;

&lt;h2&gt;Core Principle: Test One Variable at a Time&lt;/h2&gt;
&lt;p&gt;Before running any benchmarks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Same hardware, distro, and driver stack each time&lt;/li&gt;
&lt;li&gt;Same game patch or application version&lt;/li&gt;
&lt;li&gt;Same graphics preset and resolution&lt;/li&gt;
&lt;li&gt;Baseline run first, then one controlled change, then re-run&lt;/li&gt;
&lt;li&gt;Repeat at least 3 to 5 times per configuration&lt;/li&gt;
&lt;li&gt;Log hardware info (CPU, GPU, kernel, Mesa version) before each session&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Phoronix Test Suite saves this metadata automatically. If you change multiple variables at once, your data proves nothing.&lt;/p&gt;
&lt;h2&gt;Install the Tools&lt;/h2&gt;
&lt;h3&gt;Phoronix Test Suite&lt;/h3&gt;
&lt;h4&gt;Install Phoronix Test Suite on Debian&lt;/h4&gt;
&lt;p&gt;Debian no longer ships &lt;code&gt;phoronix-test-suite&lt;/code&gt;; its tracker marks the package as removed. The supported alternative is installing from the &lt;a href=&quot;https://github.com/phoronix-test-suite/phoronix-test-suite&quot;&gt;upstream Git repository&lt;/a&gt;. See the &lt;a href=&quot;https://tracker.debian.org/pkg/phoronix-test-suite&quot;&gt;Debian Package Tracker&lt;/a&gt; for the package status.&lt;/p&gt;
&lt;h5&gt;1. Install prerequisites&lt;/h5&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo apt update
sudo apt install git php-cli ca-certificates
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Only PHP CLI is mandatory for the test-suite framework. Individual benchmarks may require additional compilers and libraries, which Phoronix can usually install through APT. See the &lt;a href=&quot;https://www.phoronix-test-suite.com/?k=downloads&quot;&gt;official download documentation&lt;/a&gt; for more information.&lt;/p&gt;
&lt;h5&gt;2. Download the source&lt;/h5&gt;
&lt;p&gt;Keep the repository so it can be updated later:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;mkdir -p &quot;$HOME/src&quot;
cd &quot;$HOME/src&quot;

git clone --depth 1 \
  https://github.com/phoronix-test-suite/phoronix-test-suite.git

cd phoronix-test-suite
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Test it directly before installing:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./phoronix-test-suite version
&lt;/code&gt;&lt;/pre&gt;
&lt;h5&gt;3. Install system-wide&lt;/h5&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo ./install-sh
hash -r
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Verify the installation:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;phoronix-test-suite version
phoronix-test-suite system-info
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The command should now be installed as &lt;code&gt;/usr/bin/phoronix-test-suite&lt;/code&gt;.&lt;/p&gt;
&lt;h5&gt;4. Run a benchmark&lt;/h5&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;phoronix-test-suite benchmark smallpt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Or inspect available tests:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;phoronix-test-suite list-available-tests
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Phoronix will prompt before downloading benchmarks, installing dependencies, or uploading results.&lt;/p&gt;
&lt;h5&gt;Updating manually&lt;/h5&gt;
&lt;p&gt;This installation is not managed by APT. Update it with:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cd &quot;$HOME/src/phoronix-test-suite&quot;
git pull --ff-only
sudo ./install-sh
phoronix-test-suite version
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Re-running &lt;code&gt;install-sh&lt;/code&gt; replaces the existing installation with the updated source.&lt;/p&gt;
&lt;h4&gt;Other distributions&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Ubuntu
sudo apt install phoronix-test-suite

# Fedora
sudo dnf install phoronix-test-suite

# Arch
sudo pacman -S phoronix-test-suite
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;MangoHud (required for 1% lows and frame consistency)&lt;/h3&gt;
&lt;p&gt;MangoHud captures frame-time data needed to calculate 1% lows and analyze frame pacing. Without it, you only get average FPS.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Debian/Ubuntu
sudo apt install mangohud

# Fedora
sudo dnf install mangohud

# Arch
sudo pacman -S mangohud
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;&lt;a href=&quot;http://Plot.py&quot;&gt;Plot.py&lt;/a&gt; for Charts&lt;/h3&gt;
&lt;p&gt;Clone the Linux benchmarks repository to get the plotting script:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/ChrisTitusTech/linux-benchmarks.git
cd linux-benchmarks
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Install Python dependencies:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pip install numpy pandas matplotlib
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Prep Your System&lt;/h2&gt;
&lt;p&gt;Before every test session:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reboot and let the system settle&lt;/li&gt;
&lt;li&gt;Close browsers, Discord, RGB software, and unnecessary services&lt;/li&gt;
&lt;li&gt;Plug in laptops and use the same power mode for every run&lt;/li&gt;
&lt;li&gt;Keep the same CPU governor and GPU mode&lt;/li&gt;
&lt;li&gt;Check kernel, Mesa version, and game patch level&lt;/li&gt;
&lt;li&gt;Note the date/time and save this metadata somewhere&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Phoronix automatically logs hardware info, so you just need to know what you changed between runs.&lt;/p&gt;
&lt;h2&gt;Quick Workflow: Batch Setup and Benchmark&lt;/h2&gt;
&lt;h3&gt;1. Configure Batch Mode Once&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;phoronix-test-suite batch-setup
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This prompts you to set defaults for automated testing: whether to save results to OpenBenchmarking, how many times to run each test, and whether to use strict mode. Set these once and reuse them for consistency.&lt;/p&gt;
&lt;h3&gt;2. Run Batch Benchmarks&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;export MANGOHUD=1
export MANGOHUD_CONFIG=&quot;output_folder=$HOME/benchmark-logs,autostart_log=1,benchmark_percentiles=AVG+1+0.1&quot;

TEST_RESULTS_NAME=&quot;baseline&quot; \
TEST_RESULTS_IDENTIFIER=&quot;stock-system&quot; \
TEST_RESULTS_DESCRIPTION=&quot;Baseline on stock kernel&quot; \
TEST_EXEC_PREPEND=&quot;mangohud&quot; \
phoronix-test-suite batch-benchmark pts/c-ray pts/compress-7zip pts/openssl
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The batch mode processes all tests without prompting you. Logs are saved to &lt;code&gt;~/.phoronix-test-suite/&lt;/code&gt; with metadata automatically included.&lt;/p&gt;
&lt;p&gt;Repeat this command after making one change (kernel, driver, Proton version) with a different identifier:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;export MANGOHUD=1
export MANGOHUD_CONFIG=&quot;output_folder=$HOME/benchmark-logs,autostart_log=1,benchmark_percentiles=AVG+1+0.1&quot;

TEST_RESULTS_NAME=&quot;tested&quot; \
TEST_RESULTS_IDENTIFIER=&quot;zen-kernel&quot; \
TEST_RESULTS_DESCRIPTION=&quot;Same workload on Zen kernel&quot; \
TEST_EXEC_PREPEND=&quot;mangohud&quot; \
phoronix-test-suite batch-benchmark pts/c-ray pts/compress-7zip pts/openssl
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now you have two saved result sets to compare.&lt;/p&gt;
&lt;h3&gt;3. Export Results to CSV&lt;/h3&gt;
&lt;p&gt;After running benchmarks, export the results to ~/benchmark-logs:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;phoronix-test-suite result-file-to-csv baseline ~/benchmark-logs/baseline.csv
phoronix-test-suite result-file-to-csv tested ~/benchmark-logs/tested.csv
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This creates CSV files that &lt;code&gt;plot.py&lt;/code&gt; can read. The CSV contains:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Benchmark name&lt;/li&gt;
&lt;li&gt;Average score (or FPS)&lt;/li&gt;
&lt;li&gt;Run count&lt;/li&gt;
&lt;li&gt;Variance, standard deviation, and standard error (if available)&lt;/li&gt;
&lt;li&gt;System metadata (CPU, GPU, kernel)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;MangoHud logs are already being saved to ~/benchmark-logs as individual CSV files with frame-time data.&lt;/p&gt;
&lt;h3&gt;4. Understanding the Export-CSV Workflow&lt;/h3&gt;
&lt;p&gt;The export process transforms Phoronix binary result files into text formats:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;result-file-to-csv&lt;/strong&gt;: Standard export with aggregated stats per benchmark&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;result-file-raw-to-csv&lt;/strong&gt;: Individual run data; useful if you need to inspect variance&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;result-file-stats&lt;/strong&gt;: Statistical summary&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For &lt;code&gt;plot.py&lt;/code&gt;, you need CSV files with:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Phoronix CSV exports&lt;/strong&gt; — Benchmark names, average FPS/scores, run count, variance&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MangoHud CSV logs&lt;/strong&gt; — Frame-time data with columns like &lt;code&gt;fps&lt;/code&gt; and &lt;code&gt;frametime&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Both get saved in the same directory and &lt;code&gt;plot.py&lt;/code&gt; finds them automatically.&lt;/p&gt;
&lt;h2&gt;Running &lt;a href=&quot;http://plot.py&quot;&gt;plot.py&lt;/a&gt; to Generate Charts&lt;/h2&gt;
&lt;p&gt;Once you have CSV files from both Phoronix exports and MangoHud logs in ~/benchmark-logs, generate visualizations:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cd /path/to/linux-benchmarks
python plot.py --log-dir ~/benchmark-logs
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The script generates two types of charts:&lt;/p&gt;
&lt;h3&gt;1. MangoHud FPS Distribution Heatmap&lt;/h3&gt;
&lt;p&gt;Shows frame-time consistency across all runs. Each row is one run, and the heatmap colors show how many frames hit each FPS bucket. Vertical lines mark:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;0.1%ile&lt;/strong&gt; (darkest): lowest 0.1% of frames&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;1%ile&lt;/strong&gt; (dark): lowest 1% of frames&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;50%ile&lt;/strong&gt; (blue): median frame rate&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If the heatmap is wide and flat, frames are inconsistent. If it is tall and narrow, frame pacing is smooth.&lt;/p&gt;
&lt;h3&gt;2. Phoronix Average FPS Bar Chart&lt;/h3&gt;
&lt;p&gt;Shows average performance per benchmark with run count, variance, and standard error labeled. If variance is high or run count is low, that test may not be stable yet.&lt;/p&gt;
&lt;h3&gt;Output Files&lt;/h3&gt;
&lt;p&gt;Both charts are saved as PNG files in ~/benchmark-logs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;mangohud_bar_chart.png&lt;/code&gt; — FPS distribution heatmap (frame consistency from MangoHud logs)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;*_avg_fps_bar_chart.png&lt;/code&gt; — One per Phoronix CSV export (average FPS per benchmark)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Enriching Phoronix Data with MangoHud Stats&lt;/h2&gt;
&lt;p&gt;If your Phoronix export only has one aggregate result per benchmark (common when exporting from the GUI), &lt;code&gt;plot.py&lt;/code&gt; automatically matches MangoHud runs by name pattern and enriches the Phoronix data with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Actual run count from multiple MangoHud passes&lt;/li&gt;
&lt;li&gt;Calculated variance and standard error&lt;/li&gt;
&lt;li&gt;Frame-time percentiles (0.1%, 1%, 50%)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Complete Example: Kernel Comparison&lt;/h2&gt;
&lt;p&gt;Here&apos;s a real-world walkthrough:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# 1. Configure batch mode
phoronix-test-suite batch-setup

# 2. Set up logging environment
export MANGOHUD=1
export MANGOHUD_CONFIG=&quot;output_folder=$HOME/benchmark-logs,autostart_log=1,benchmark_percentiles=AVG+1+0.1&quot;

# 3. Run baseline on stock kernel (reboot first)
TEST_RESULTS_NAME=&quot;kernel-compare&quot; \
TEST_RESULTS_IDENTIFIER=&quot;stock-distro&quot; \
TEST_RESULTS_DESCRIPTION=&quot;Stock distro kernel&quot; \
TEST_EXEC_PREPEND=&quot;mangohud&quot; \
phoronix-test-suite batch-benchmark pts/c-ray pts/compress-7zip pts/openssl

# 4. Reboot into Zen kernel and run same tests
TEST_RESULTS_NAME=&quot;kernel-compare&quot; \
TEST_RESULTS_IDENTIFIER=&quot;zen-kernel&quot; \
TEST_RESULTS_DESCRIPTION=&quot;CachyOS Zen kernel&quot; \
TEST_EXEC_PREPEND=&quot;mangohud&quot; \
phoronix-test-suite batch-benchmark pts/c-ray pts/compress-7zip pts/openssl

# 5. Export both results to CSV
phoronix-test-suite result-file-to-csv kernel-compare ~/benchmark-logs/kernel-compare.csv

# 6. Run plot.py to generate charts
cd /path/to/linux-benchmarks
python plot.py --log-dir ~/benchmark-logs
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now you have:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;One bar chart showing average FPS for each test under both kernels&lt;/li&gt;
&lt;li&gt;Run counts, variance, and error bars on the chart&lt;/li&gt;
&lt;li&gt;MangoHud frame-time heatmaps if you also logged with MangoHud&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is publication-ready data: controlled variables, multiple runs, statistical validity, and clear visualization.&lt;/p&gt;
&lt;h2&gt;What the Charts Tell You&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Bar chart reading:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Higher bars = better performance&lt;/li&gt;
&lt;li&gt;Variance labeled in red: if it is high, the result is noisy&lt;/li&gt;
&lt;li&gt;Small error bars = consistent performance across runs&lt;/li&gt;
&lt;li&gt;Large error bars = inconsistent or thermal-throttled performance&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Heatmap reading:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tall narrow heatmap = consistent frame pacing&lt;/li&gt;
&lt;li&gt;Wide scattered heatmap = erratic frame delivery, even if average FPS is high&lt;/li&gt;
&lt;li&gt;Compare rows: if one kernel produces more consistent colors, it has better frame consistency&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Workflow Checklist&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[ ] Reboot and verify kernel/driver/Mesa version&lt;/li&gt;
&lt;li&gt;[ ] Close unnecessary services&lt;/li&gt;
&lt;li&gt;[ ] Run &lt;code&gt;phoronix-test-suite batch-setup&lt;/code&gt; once&lt;/li&gt;
&lt;li&gt;[ ] Run baseline: &lt;code&gt;phoronix-test-suite batch-benchmark pts/...&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;[ ] Make one change only (kernel, driver, etc.)&lt;/li&gt;
&lt;li&gt;[ ] Run same tests again with new identifier&lt;/li&gt;
&lt;li&gt;[ ] Export: &lt;code&gt;phoronix-test-suite result-file-to-csv &amp;lt;name&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;[ ] Generate charts: &lt;code&gt;python plot.py --log-dir &amp;lt;path&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;[ ] Compare against baseline&lt;/li&gt;
&lt;li&gt;[ ] Repeat for next variable&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The Final Results&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2026/pts-benchmark.webp&quot; alt=&quot;pts-benchmark&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2026/mangohud-benchmark.webp&quot; alt=&quot;mangohud-benchmark&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/gn0x-Tg1qxk&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Proper Linux benchmarking is not about the biggest single run. It is about building a clean baseline, controlling variables, repeating runs for statistical validity, and generating charts that show the data clearly.&lt;/p&gt;
&lt;p&gt;The Phoronix Test Suite provides the structure: repeatable workloads, saved results, baseline comparison, and batch automation. MangoHud captures frame-time data. Together with a Python plotting tool, you get a complete workflow from raw test data to publication-ready charts.&lt;/p&gt;

&lt;h2&gt;Core Principle: Test One Variable at a Time&lt;/h2&gt;
&lt;p&gt;Before running any benchmarks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Same hardware, distro, and driver stack each time&lt;/li&gt;
&lt;li&gt;Same game patch or application version&lt;/li&gt;
&lt;li&gt;Same graphics preset and resolution&lt;/li&gt;
&lt;li&gt;Baseline run first, then one controlled change, then re-run&lt;/li&gt;
&lt;li&gt;Repeat at least 3 to 5 times per configuration&lt;/li&gt;
&lt;li&gt;Log hardware info (CPU, GPU, kernel, Mesa version) before each session&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Phoronix Test Suite saves this metadata automatically. If you change multiple variables at once, your data proves nothing.&lt;/p&gt;
&lt;h2&gt;Install the Tools&lt;/h2&gt;
&lt;h3&gt;Phoronix Test Suite&lt;/h3&gt;
&lt;h4&gt;Install Phoronix Test Suite on Debian&lt;/h4&gt;
&lt;p&gt;Debian no longer ships &lt;code&gt;phoronix-test-suite&lt;/code&gt;; its tracker marks the package as removed. The supported alternative is installing from the &lt;a href=&quot;https://github.com/phoronix-test-suite/phoronix-test-suite&quot;&gt;upstream Git repository&lt;/a&gt;. See the &lt;a href=&quot;https://tracker.debian.org/pkg/phoronix-test-suite&quot;&gt;Debian Package Tracker&lt;/a&gt; for the package status.&lt;/p&gt;
&lt;h5&gt;1. Install prerequisites&lt;/h5&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo apt update
sudo apt install git php-cli ca-certificates
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Only PHP CLI is mandatory for the test-suite framework. Individual benchmarks may require additional compilers and libraries, which Phoronix can usually install through APT. See the &lt;a href=&quot;https://www.phoronix-test-suite.com/?k=downloads&quot;&gt;official download documentation&lt;/a&gt; for more information.&lt;/p&gt;
&lt;h5&gt;2. Download the source&lt;/h5&gt;
&lt;p&gt;Keep the repository so it can be updated later:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;mkdir -p &quot;$HOME/src&quot;
cd &quot;$HOME/src&quot;

git clone --depth 1 \
  https://github.com/phoronix-test-suite/phoronix-test-suite.git

cd phoronix-test-suite
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Test it directly before installing:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./phoronix-test-suite version
&lt;/code&gt;&lt;/pre&gt;
&lt;h5&gt;3. Install system-wide&lt;/h5&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo ./install-sh
hash -r
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Verify the installation:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;phoronix-test-suite version
phoronix-test-suite system-info
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The command should now be installed as &lt;code&gt;/usr/bin/phoronix-test-suite&lt;/code&gt;.&lt;/p&gt;
&lt;h5&gt;4. Run a benchmark&lt;/h5&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;phoronix-test-suite benchmark smallpt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Or inspect available tests:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;phoronix-test-suite list-available-tests
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Phoronix will prompt before downloading benchmarks, installing dependencies, or uploading results.&lt;/p&gt;
&lt;h5&gt;Updating manually&lt;/h5&gt;
&lt;p&gt;This installation is not managed by APT. Update it with:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cd &quot;$HOME/src/phoronix-test-suite&quot;
git pull --ff-only
sudo ./install-sh
phoronix-test-suite version
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Re-running &lt;code&gt;install-sh&lt;/code&gt; replaces the existing installation with the updated source.&lt;/p&gt;
&lt;h4&gt;Other distributions&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Ubuntu
sudo apt install phoronix-test-suite

# Fedora
sudo dnf install phoronix-test-suite

# Arch
sudo pacman -S phoronix-test-suite
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;MangoHud (required for 1% lows and frame consistency)&lt;/h3&gt;
&lt;p&gt;MangoHud captures frame-time data needed to calculate 1% lows and analyze frame pacing. Without it, you only get average FPS.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Debian/Ubuntu
sudo apt install mangohud

# Fedora
sudo dnf install mangohud

# Arch
sudo pacman -S mangohud
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;&lt;a href=&quot;http://Plot.py&quot;&gt;Plot.py&lt;/a&gt; for Charts&lt;/h3&gt;
&lt;p&gt;Clone the Linux benchmarks repository to get the plotting script:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/ChrisTitusTech/linux-benchmarks.git
cd linux-benchmarks
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Install Python dependencies:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pip install numpy pandas matplotlib
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Prep Your System&lt;/h2&gt;
&lt;p&gt;Before every test session:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reboot and let the system settle&lt;/li&gt;
&lt;li&gt;Close browsers, Discord, RGB software, and unnecessary services&lt;/li&gt;
&lt;li&gt;Plug in laptops and use the same power mode for every run&lt;/li&gt;
&lt;li&gt;Keep the same CPU governor and GPU mode&lt;/li&gt;
&lt;li&gt;Check kernel, Mesa version, and game patch level&lt;/li&gt;
&lt;li&gt;Note the date/time and save this metadata somewhere&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Phoronix automatically logs hardware info, so you just need to know what you changed between runs.&lt;/p&gt;
&lt;h2&gt;Quick Workflow: Batch Setup and Benchmark&lt;/h2&gt;
&lt;h3&gt;1. Configure Batch Mode Once&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;phoronix-test-suite batch-setup
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This prompts you to set defaults for automated testing: whether to save results to OpenBenchmarking, how many times to run each test, and whether to use strict mode. Set these once and reuse them for consistency.&lt;/p&gt;
&lt;h3&gt;2. Run Batch Benchmarks&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;export MANGOHUD=1
export MANGOHUD_CONFIG=&quot;output_folder=$HOME/benchmark-logs,autostart_log=1,benchmark_percentiles=AVG+1+0.1&quot;

TEST_RESULTS_NAME=&quot;baseline&quot; \
TEST_RESULTS_IDENTIFIER=&quot;stock-system&quot; \
TEST_RESULTS_DESCRIPTION=&quot;Baseline on stock kernel&quot; \
TEST_EXEC_PREPEND=&quot;mangohud&quot; \
phoronix-test-suite batch-benchmark pts/c-ray pts/compress-7zip pts/openssl
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The batch mode processes all tests without prompting you. Logs are saved to &lt;code&gt;~/.phoronix-test-suite/&lt;/code&gt; with metadata automatically included.&lt;/p&gt;
&lt;p&gt;Repeat this command after making one change (kernel, driver, Proton version) with a different identifier:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;export MANGOHUD=1
export MANGOHUD_CONFIG=&quot;output_folder=$HOME/benchmark-logs,autostart_log=1,benchmark_percentiles=AVG+1+0.1&quot;

TEST_RESULTS_NAME=&quot;tested&quot; \
TEST_RESULTS_IDENTIFIER=&quot;zen-kernel&quot; \
TEST_RESULTS_DESCRIPTION=&quot;Same workload on Zen kernel&quot; \
TEST_EXEC_PREPEND=&quot;mangohud&quot; \
phoronix-test-suite batch-benchmark pts/c-ray pts/compress-7zip pts/openssl
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now you have two saved result sets to compare.&lt;/p&gt;
&lt;h3&gt;3. Export Results to CSV&lt;/h3&gt;
&lt;p&gt;After running benchmarks, export the results to ~/benchmark-logs:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;phoronix-test-suite result-file-to-csv baseline ~/benchmark-logs/baseline.csv
phoronix-test-suite result-file-to-csv tested ~/benchmark-logs/tested.csv
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This creates CSV files that &lt;code&gt;plot.py&lt;/code&gt; can read. The CSV contains:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Benchmark name&lt;/li&gt;
&lt;li&gt;Average score (or FPS)&lt;/li&gt;
&lt;li&gt;Run count&lt;/li&gt;
&lt;li&gt;Variance, standard deviation, and standard error (if available)&lt;/li&gt;
&lt;li&gt;System metadata (CPU, GPU, kernel)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;MangoHud logs are already being saved to ~/benchmark-logs as individual CSV files with frame-time data.&lt;/p&gt;
&lt;h3&gt;4. Understanding the Export-CSV Workflow&lt;/h3&gt;
&lt;p&gt;The export process transforms Phoronix binary result files into text formats:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;result-file-to-csv&lt;/strong&gt;: Standard export with aggregated stats per benchmark&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;result-file-raw-to-csv&lt;/strong&gt;: Individual run data; useful if you need to inspect variance&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;result-file-stats&lt;/strong&gt;: Statistical summary&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For &lt;code&gt;plot.py&lt;/code&gt;, you need CSV files with:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Phoronix CSV exports&lt;/strong&gt; — Benchmark names, average FPS/scores, run count, variance&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MangoHud CSV logs&lt;/strong&gt; — Frame-time data with columns like &lt;code&gt;fps&lt;/code&gt; and &lt;code&gt;frametime&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Both get saved in the same directory and &lt;code&gt;plot.py&lt;/code&gt; finds them automatically.&lt;/p&gt;
&lt;h2&gt;Running &lt;a href=&quot;http://plot.py&quot;&gt;plot.py&lt;/a&gt; to Generate Charts&lt;/h2&gt;
&lt;p&gt;Once you have CSV files from both Phoronix exports and MangoHud logs in ~/benchmark-logs, generate visualizations:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cd /path/to/linux-benchmarks
python plot.py --log-dir ~/benchmark-logs
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The script generates two types of charts:&lt;/p&gt;
&lt;h3&gt;1. MangoHud FPS Distribution Heatmap&lt;/h3&gt;
&lt;p&gt;Shows frame-time consistency across all runs. Each row is one run, and the heatmap colors show how many frames hit each FPS bucket. Vertical lines mark:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;0.1%ile&lt;/strong&gt; (darkest): lowest 0.1% of frames&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;1%ile&lt;/strong&gt; (dark): lowest 1% of frames&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;50%ile&lt;/strong&gt; (blue): median frame rate&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If the heatmap is wide and flat, frames are inconsistent. If it is tall and narrow, frame pacing is smooth.&lt;/p&gt;
&lt;h3&gt;2. Phoronix Average FPS Bar Chart&lt;/h3&gt;
&lt;p&gt;Shows average performance per benchmark with run count, variance, and standard error labeled. If variance is high or run count is low, that test may not be stable yet.&lt;/p&gt;
&lt;h3&gt;Output Files&lt;/h3&gt;
&lt;p&gt;Both charts are saved as PNG files in ~/benchmark-logs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;mangohud_bar_chart.png&lt;/code&gt; — FPS distribution heatmap (frame consistency from MangoHud logs)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;*_avg_fps_bar_chart.png&lt;/code&gt; — One per Phoronix CSV export (average FPS per benchmark)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Enriching Phoronix Data with MangoHud Stats&lt;/h2&gt;
&lt;p&gt;If your Phoronix export only has one aggregate result per benchmark (common when exporting from the GUI), &lt;code&gt;plot.py&lt;/code&gt; automatically matches MangoHud runs by name pattern and enriches the Phoronix data with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Actual run count from multiple MangoHud passes&lt;/li&gt;
&lt;li&gt;Calculated variance and standard error&lt;/li&gt;
&lt;li&gt;Frame-time percentiles (0.1%, 1%, 50%)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Complete Example: Kernel Comparison&lt;/h2&gt;
&lt;p&gt;Here&apos;s a real-world walkthrough:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# 1. Configure batch mode
phoronix-test-suite batch-setup

# 2. Set up logging environment
export MANGOHUD=1
export MANGOHUD_CONFIG=&quot;output_folder=$HOME/benchmark-logs,autostart_log=1,benchmark_percentiles=AVG+1+0.1&quot;

# 3. Run baseline on stock kernel (reboot first)
TEST_RESULTS_NAME=&quot;kernel-compare&quot; \
TEST_RESULTS_IDENTIFIER=&quot;stock-distro&quot; \
TEST_RESULTS_DESCRIPTION=&quot;Stock distro kernel&quot; \
TEST_EXEC_PREPEND=&quot;mangohud&quot; \
phoronix-test-suite batch-benchmark pts/c-ray pts/compress-7zip pts/openssl

# 4. Reboot into Zen kernel and run same tests
TEST_RESULTS_NAME=&quot;kernel-compare&quot; \
TEST_RESULTS_IDENTIFIER=&quot;zen-kernel&quot; \
TEST_RESULTS_DESCRIPTION=&quot;CachyOS Zen kernel&quot; \
TEST_EXEC_PREPEND=&quot;mangohud&quot; \
phoronix-test-suite batch-benchmark pts/c-ray pts/compress-7zip pts/openssl

# 5. Export both results to CSV
phoronix-test-suite result-file-to-csv kernel-compare ~/benchmark-logs/kernel-compare.csv

# 6. Run plot.py to generate charts
cd /path/to/linux-benchmarks
python plot.py --log-dir ~/benchmark-logs
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now you have:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;One bar chart showing average FPS for each test under both kernels&lt;/li&gt;
&lt;li&gt;Run counts, variance, and error bars on the chart&lt;/li&gt;
&lt;li&gt;MangoHud frame-time heatmaps if you also logged with MangoHud&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is publication-ready data: controlled variables, multiple runs, statistical validity, and clear visualization.&lt;/p&gt;
&lt;h2&gt;What the Charts Tell You&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Bar chart reading:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Higher bars = better performance&lt;/li&gt;
&lt;li&gt;Variance labeled in red: if it is high, the result is noisy&lt;/li&gt;
&lt;li&gt;Small error bars = consistent performance across runs&lt;/li&gt;
&lt;li&gt;Large error bars = inconsistent or thermal-throttled performance&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Heatmap reading:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tall narrow heatmap = consistent frame pacing&lt;/li&gt;
&lt;li&gt;Wide scattered heatmap = erratic frame delivery, even if average FPS is high&lt;/li&gt;
&lt;li&gt;Compare rows: if one kernel produces more consistent colors, it has better frame consistency&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Workflow Checklist&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[ ] Reboot and verify kernel/driver/Mesa version&lt;/li&gt;
&lt;li&gt;[ ] Close unnecessary services&lt;/li&gt;
&lt;li&gt;[ ] Run &lt;code&gt;phoronix-test-suite batch-setup&lt;/code&gt; once&lt;/li&gt;
&lt;li&gt;[ ] Run baseline: &lt;code&gt;phoronix-test-suite batch-benchmark pts/...&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;[ ] Make one change only (kernel, driver, etc.)&lt;/li&gt;
&lt;li&gt;[ ] Run same tests again with new identifier&lt;/li&gt;
&lt;li&gt;[ ] Export: &lt;code&gt;phoronix-test-suite result-file-to-csv &amp;lt;name&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;[ ] Generate charts: &lt;code&gt;python plot.py --log-dir &amp;lt;path&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;[ ] Compare against baseline&lt;/li&gt;
&lt;li&gt;[ ] Repeat for next variable&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The Final Results&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2026/pts-benchmark.webp&quot; alt=&quot;pts-benchmark&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2026/mangohud-benchmark.webp&quot; alt=&quot;mangohud-benchmark&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/gn0x-Tg1qxk&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Neovim the Elite Editor</title><link>https://christitus.com/neovim-the-elite-editor/</link><guid isPermaLink="true">https://christitus.com/neovim-the-elite-editor/</guid><description>&lt;p&gt;Most editors today are bloated, slow, and pretending to be IDEs while burning your RAM. Neovim 0.12 goes the other direction: less junk, more control, better speed.&lt;/p&gt;
&lt;p&gt;This is the no-BS breakdown of what changed in my Neovim setup, why I removed the old pieces, and what actually matters in daily use.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2026/neovim.webp&quot; alt=&quot;neovim&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;What Changed in the 0.12 Upgrade&lt;/h2&gt;
&lt;p&gt;The big architectural change was ripping out the old plugin flow and moving to Neovim&apos;s native package path:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Removed &lt;code&gt;lazy.nvim&lt;/code&gt; from the stack.&lt;/li&gt;
&lt;li&gt;Migrated plugin loading to built-in &lt;code&gt;vim.pack.add(...)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Cut back external Treesitter management and used Neovim 0.12 built-in behavior first.&lt;/li&gt;
&lt;li&gt;Kept one focused Treesitter UI addon (&lt;code&gt;nvim-treesitter-context&lt;/code&gt;) for sticky context lines.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Why This Matters&lt;/h3&gt;
&lt;p&gt;This is not just &quot;new syntax.&quot; It is a real maintenance win:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fewer moving parts at startup.&lt;/li&gt;
&lt;li&gt;Native APIs instead of plugin-specific abstractions.&lt;/li&gt;
&lt;li&gt;Easier debugging because package flow is visible and explicit.&lt;/li&gt;
&lt;li&gt;Cleaner upgrades for future Neovim releases.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The New Design Philosophy&lt;/h2&gt;
&lt;p&gt;This config is structured like a real project, not a spaghetti pile:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;init.lua&lt;/code&gt; handles global options and startup behavior.&lt;/li&gt;
&lt;li&gt;Plugin responsibilities are split by concern (&lt;code&gt;lsp.lua&lt;/code&gt;, &lt;code&gt;ui.lua&lt;/code&gt;, &lt;code&gt;completion.lua&lt;/code&gt;, etc).&lt;/li&gt;
&lt;li&gt;Keymaps are centralized and predictable.&lt;/li&gt;
&lt;li&gt;Linux and Windows dependency scripts fix missing tools fast.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The result is opinionated, fast, and resilient.&lt;/p&gt;
&lt;h2&gt;Feature Highlights&lt;/h2&gt;
&lt;h3&gt;1) Modern Navigation and Search&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;snacks.nvim&lt;/code&gt; runs project/file/symbol/grep workflows with a fast picker experience:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Smart file picking&lt;/li&gt;
&lt;li&gt;Live grep&lt;/li&gt;
&lt;li&gt;Project switching&lt;/li&gt;
&lt;li&gt;Diagnostics search&lt;/li&gt;
&lt;li&gt;Explorer tree + status column enhancements&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2026/explorer-snacks.webp&quot; alt=&quot;explorer-snacks&quot; /&gt;&lt;/p&gt;
&lt;p&gt;If you bounce between repos all day, this is a massive quality-of-life upgrade.&lt;/p&gt;
&lt;h3&gt;2) LSP That Feels Native&lt;/h3&gt;
&lt;p&gt;The LSP stack uses:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;nvim-lspconfig&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mason.nvim&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mason-tool-installer&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fidget.nvim&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;conform.nvim&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Why this stack works:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Auto-provisioning of language tools&lt;/li&gt;
&lt;li&gt;Clean per-server config&lt;/li&gt;
&lt;li&gt;Fast formatting workflow&lt;/li&gt;
&lt;li&gt;Better diagnostics defaults and symbols&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It behaves like a serious IDE without turning into one of those slow, opaque monsters.&lt;/p&gt;
&lt;h3&gt;3) Completion + AI That Do Not Fight Each Other&lt;/h3&gt;
&lt;p&gt;Completion is built around &lt;code&gt;blink.cmp&lt;/code&gt; and &lt;code&gt;LuaSnip&lt;/code&gt;, with GitHub Copilot integrated as a completion source:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;blink.cmp&lt;/code&gt; as core engine&lt;/li&gt;
&lt;li&gt;&lt;code&gt;blink-cmp-copilot&lt;/code&gt; for AI suggestions in the same completion flow&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CopilotChat&lt;/code&gt; for interactive prompts and model switching&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This avoids the classic popup wars where completion systems fight each other.&lt;/p&gt;
&lt;h3&gt;4) UI That Is Clean, Not Bloated&lt;/h3&gt;
&lt;p&gt;Core UI stack includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;bufferline.nvim&lt;/code&gt; for tab-like buffers&lt;/li&gt;
&lt;li&gt;&lt;code&gt;which-key.nvim&lt;/code&gt; for discoverability&lt;/li&gt;
&lt;li&gt;&lt;code&gt;trouble.nvim&lt;/code&gt; + &lt;code&gt;aerial.nvim&lt;/code&gt; for code structure and diagnostics&lt;/li&gt;
&lt;li&gt;&lt;code&gt;oil.nvim&lt;/code&gt; for file-system editing inside Neovim&lt;/li&gt;
&lt;li&gt;&lt;code&gt;toggleterm.nvim&lt;/code&gt; for terminal workflow&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Everything here has a job. No filler, no random plugin bloat.&lt;/p&gt;
&lt;h3&gt;5) Editing and Content Workflows&lt;/h3&gt;
&lt;p&gt;This setup is not only for code. It also handles writing and content production:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Markdown linting with &lt;code&gt;markdownlint-cli2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Image paste pipeline with automatic WebP conversion&lt;/li&gt;
&lt;li&gt;TODO highlighting&lt;/li&gt;
&lt;li&gt;Multi-cursor editing&lt;/li&gt;
&lt;li&gt;Undo tree visualization&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For content creators and technical writing, these are huge time savers.&lt;/p&gt;
&lt;h2&gt;Before vs After (0.12 Direction)&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Area&lt;/th&gt;
&lt;th&gt;Before&lt;/th&gt;
&lt;th&gt;After&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Plugin Management&lt;/td&gt;
&lt;td&gt;&lt;code&gt;lazy.nvim&lt;/code&gt; lifecycle&lt;/td&gt;
&lt;td&gt;Native &lt;code&gt;vim.pack.add(...)&lt;/code&gt; flow&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Treesitter Strategy&lt;/td&gt;
&lt;td&gt;Heavier external management&lt;/td&gt;
&lt;td&gt;Built-in Treesitter first, targeted extras only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Config Structure&lt;/td&gt;
&lt;td&gt;More centralized complexity&lt;/td&gt;
&lt;td&gt;Concern-based modular plugin files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Debuggability&lt;/td&gt;
&lt;td&gt;Plugin-manager indirection&lt;/td&gt;
&lt;td&gt;Direct, native, inspectable startup path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Upgrade Path&lt;/td&gt;
&lt;td&gt;Plugin compatibility friction&lt;/td&gt;
&lt;td&gt;Closer alignment with Neovim core APIs&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Quick Start&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/ChrisTitusTech/neovim ~/.config/nvim
cd ~/.config/nvim
nvim
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If dependencies are missing, run the repair script for your platform:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;bash lin-depend.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;.\win-depend.ps1
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Who This Setup Is For&lt;/h2&gt;
&lt;p&gt;Use this setup if you want:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;VS Code-like discoverability with terminal speed&lt;/li&gt;
&lt;li&gt;Strong Lua customization&lt;/li&gt;
&lt;li&gt;Native Neovim 0.12 direction instead of legacy glue&lt;/li&gt;
&lt;li&gt;AI-assisted coding without UI clutter&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Skip this if you want a forever hands-off setup. This is for people who care about control, speed, and clarity.&lt;/p&gt;
&lt;h2&gt;Final Thoughts&lt;/h2&gt;
&lt;p&gt;Neovim 0.12 is a maturity milestone. The point is not swapping one trendy plugin manager for another. The point is reducing complexity by leaning on core Neovim features and adding only plugins that pull their weight.&lt;/p&gt;
&lt;p&gt;That is exactly what this project does now: fewer hacks, better defaults, and a tighter editing loop.&lt;/p&gt;
&lt;p&gt;The official Project is at &lt;a href=&quot;https://github.com/ChrisTitusTech/neovim&quot;&gt;https://github.com/ChrisTitusTech/neovim&lt;/a&gt; and the README has detailed installation and troubleshooting steps.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/NYSYiiqk8SY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Tue, 05 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Most editors today are bloated, slow, and pretending to be IDEs while burning your RAM. Neovim 0.12 goes the other direction: less junk, more control, better speed.&lt;/p&gt;
&lt;p&gt;This is the no-BS breakdown of what changed in my Neovim setup, why I removed the old pieces, and what actually matters in daily use.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2026/neovim.webp&quot; alt=&quot;neovim&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;What Changed in the 0.12 Upgrade&lt;/h2&gt;
&lt;p&gt;The big architectural change was ripping out the old plugin flow and moving to Neovim&apos;s native package path:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Removed &lt;code&gt;lazy.nvim&lt;/code&gt; from the stack.&lt;/li&gt;
&lt;li&gt;Migrated plugin loading to built-in &lt;code&gt;vim.pack.add(...)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Cut back external Treesitter management and used Neovim 0.12 built-in behavior first.&lt;/li&gt;
&lt;li&gt;Kept one focused Treesitter UI addon (&lt;code&gt;nvim-treesitter-context&lt;/code&gt;) for sticky context lines.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Why This Matters&lt;/h3&gt;
&lt;p&gt;This is not just &quot;new syntax.&quot; It is a real maintenance win:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fewer moving parts at startup.&lt;/li&gt;
&lt;li&gt;Native APIs instead of plugin-specific abstractions.&lt;/li&gt;
&lt;li&gt;Easier debugging because package flow is visible and explicit.&lt;/li&gt;
&lt;li&gt;Cleaner upgrades for future Neovim releases.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The New Design Philosophy&lt;/h2&gt;
&lt;p&gt;This config is structured like a real project, not a spaghetti pile:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;init.lua&lt;/code&gt; handles global options and startup behavior.&lt;/li&gt;
&lt;li&gt;Plugin responsibilities are split by concern (&lt;code&gt;lsp.lua&lt;/code&gt;, &lt;code&gt;ui.lua&lt;/code&gt;, &lt;code&gt;completion.lua&lt;/code&gt;, etc).&lt;/li&gt;
&lt;li&gt;Keymaps are centralized and predictable.&lt;/li&gt;
&lt;li&gt;Linux and Windows dependency scripts fix missing tools fast.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The result is opinionated, fast, and resilient.&lt;/p&gt;
&lt;h2&gt;Feature Highlights&lt;/h2&gt;
&lt;h3&gt;1) Modern Navigation and Search&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;snacks.nvim&lt;/code&gt; runs project/file/symbol/grep workflows with a fast picker experience:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Smart file picking&lt;/li&gt;
&lt;li&gt;Live grep&lt;/li&gt;
&lt;li&gt;Project switching&lt;/li&gt;
&lt;li&gt;Diagnostics search&lt;/li&gt;
&lt;li&gt;Explorer tree + status column enhancements&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2026/explorer-snacks.webp&quot; alt=&quot;explorer-snacks&quot; /&gt;&lt;/p&gt;
&lt;p&gt;If you bounce between repos all day, this is a massive quality-of-life upgrade.&lt;/p&gt;
&lt;h3&gt;2) LSP That Feels Native&lt;/h3&gt;
&lt;p&gt;The LSP stack uses:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;nvim-lspconfig&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mason.nvim&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mason-tool-installer&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fidget.nvim&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;conform.nvim&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Why this stack works:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Auto-provisioning of language tools&lt;/li&gt;
&lt;li&gt;Clean per-server config&lt;/li&gt;
&lt;li&gt;Fast formatting workflow&lt;/li&gt;
&lt;li&gt;Better diagnostics defaults and symbols&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It behaves like a serious IDE without turning into one of those slow, opaque monsters.&lt;/p&gt;
&lt;h3&gt;3) Completion + AI That Do Not Fight Each Other&lt;/h3&gt;
&lt;p&gt;Completion is built around &lt;code&gt;blink.cmp&lt;/code&gt; and &lt;code&gt;LuaSnip&lt;/code&gt;, with GitHub Copilot integrated as a completion source:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;blink.cmp&lt;/code&gt; as core engine&lt;/li&gt;
&lt;li&gt;&lt;code&gt;blink-cmp-copilot&lt;/code&gt; for AI suggestions in the same completion flow&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CopilotChat&lt;/code&gt; for interactive prompts and model switching&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This avoids the classic popup wars where completion systems fight each other.&lt;/p&gt;
&lt;h3&gt;4) UI That Is Clean, Not Bloated&lt;/h3&gt;
&lt;p&gt;Core UI stack includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;bufferline.nvim&lt;/code&gt; for tab-like buffers&lt;/li&gt;
&lt;li&gt;&lt;code&gt;which-key.nvim&lt;/code&gt; for discoverability&lt;/li&gt;
&lt;li&gt;&lt;code&gt;trouble.nvim&lt;/code&gt; + &lt;code&gt;aerial.nvim&lt;/code&gt; for code structure and diagnostics&lt;/li&gt;
&lt;li&gt;&lt;code&gt;oil.nvim&lt;/code&gt; for file-system editing inside Neovim&lt;/li&gt;
&lt;li&gt;&lt;code&gt;toggleterm.nvim&lt;/code&gt; for terminal workflow&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Everything here has a job. No filler, no random plugin bloat.&lt;/p&gt;
&lt;h3&gt;5) Editing and Content Workflows&lt;/h3&gt;
&lt;p&gt;This setup is not only for code. It also handles writing and content production:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Markdown linting with &lt;code&gt;markdownlint-cli2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Image paste pipeline with automatic WebP conversion&lt;/li&gt;
&lt;li&gt;TODO highlighting&lt;/li&gt;
&lt;li&gt;Multi-cursor editing&lt;/li&gt;
&lt;li&gt;Undo tree visualization&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For content creators and technical writing, these are huge time savers.&lt;/p&gt;
&lt;h2&gt;Before vs After (0.12 Direction)&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Area&lt;/th&gt;
&lt;th&gt;Before&lt;/th&gt;
&lt;th&gt;After&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Plugin Management&lt;/td&gt;
&lt;td&gt;&lt;code&gt;lazy.nvim&lt;/code&gt; lifecycle&lt;/td&gt;
&lt;td&gt;Native &lt;code&gt;vim.pack.add(...)&lt;/code&gt; flow&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Treesitter Strategy&lt;/td&gt;
&lt;td&gt;Heavier external management&lt;/td&gt;
&lt;td&gt;Built-in Treesitter first, targeted extras only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Config Structure&lt;/td&gt;
&lt;td&gt;More centralized complexity&lt;/td&gt;
&lt;td&gt;Concern-based modular plugin files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Debuggability&lt;/td&gt;
&lt;td&gt;Plugin-manager indirection&lt;/td&gt;
&lt;td&gt;Direct, native, inspectable startup path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Upgrade Path&lt;/td&gt;
&lt;td&gt;Plugin compatibility friction&lt;/td&gt;
&lt;td&gt;Closer alignment with Neovim core APIs&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Quick Start&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/ChrisTitusTech/neovim ~/.config/nvim
cd ~/.config/nvim
nvim
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If dependencies are missing, run the repair script for your platform:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;bash lin-depend.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;.\win-depend.ps1
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Who This Setup Is For&lt;/h2&gt;
&lt;p&gt;Use this setup if you want:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;VS Code-like discoverability with terminal speed&lt;/li&gt;
&lt;li&gt;Strong Lua customization&lt;/li&gt;
&lt;li&gt;Native Neovim 0.12 direction instead of legacy glue&lt;/li&gt;
&lt;li&gt;AI-assisted coding without UI clutter&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Skip this if you want a forever hands-off setup. This is for people who care about control, speed, and clarity.&lt;/p&gt;
&lt;h2&gt;Final Thoughts&lt;/h2&gt;
&lt;p&gt;Neovim 0.12 is a maturity milestone. The point is not swapping one trendy plugin manager for another. The point is reducing complexity by leaning on core Neovim features and adding only plugins that pull their weight.&lt;/p&gt;
&lt;p&gt;That is exactly what this project does now: fewer hacks, better defaults, and a tighter editing loop.&lt;/p&gt;
&lt;p&gt;The official Project is at &lt;a href=&quot;https://github.com/ChrisTitusTech/neovim&quot;&gt;https://github.com/ChrisTitusTech/neovim&lt;/a&gt; and the README has detailed installation and troubleshooting steps.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/NYSYiiqk8SY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Brave Origin: The Browser Brave Power Users Have Been Asking For</title><link>https://christitus.com/brave-origin-new-browser/</link><guid isPermaLink="true">https://christitus.com/brave-origin-new-browser/</guid><description>&lt;p&gt;Brave Origin is Brave stripped back to what most of us actually want: fast browsing, strong privacy, and aggressive blocking. If you have ever opened a browser and thought, &quot;Why is there a crypto wallet button, rewards UI, and extra services I never asked for?&quot; this is the answer.&lt;/p&gt;

&lt;p&gt;This is not a different engine and not some weird fork from a random dev. It is an official Brave option focused on a cleaner experience.&lt;/p&gt;
&lt;h2&gt;What Brave Origin Actually Is&lt;/h2&gt;
&lt;p&gt;Brave Origin is a minimalist Brave mode that removes or disables many optional, revenue-related, or bundled features while keeping the core browser stack:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Chromium updates and security patches&lt;/li&gt;
&lt;li&gt;Brave Shields (ad/tracker blocking)&lt;/li&gt;
&lt;li&gt;Performance and privacy improvements in core browsing&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It is offered in two ways:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Standalone Brave Origin app (desktop)&lt;/li&gt;
&lt;li&gt;Upgrade mode inside regular Brave (desktop and mobile)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;One purchase can activate up to 10 times across devices, and Linux users also get a free path.&lt;/p&gt;
&lt;h2&gt;The Big Difference: Standalone vs Upgrade&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Mode&lt;/th&gt;
&lt;th&gt;How it works&lt;/th&gt;
&lt;th&gt;What happens to extra features&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Standalone app&lt;/td&gt;
&lt;td&gt;Separate Brave Origin install&lt;/td&gt;
&lt;td&gt;Features are compiled out entirely&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Upgrade mode&lt;/td&gt;
&lt;td&gt;Existing Brave gets an Origin settings panel&lt;/td&gt;
&lt;td&gt;Features are toggled off by default&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;If you are truly anti-bloat, standalone is the purest option.&lt;/p&gt;
&lt;h2&gt;Features Affected By Brave Origin&lt;/h2&gt;
&lt;p&gt;According to Brave, Origin targets the following features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Leo&lt;/li&gt;
&lt;li&gt;News&lt;/li&gt;
&lt;li&gt;Playlist (iOS currently)&lt;/li&gt;
&lt;li&gt;Rewards (and browser-based Brave Ads)&lt;/li&gt;
&lt;li&gt;Speedreader&lt;/li&gt;
&lt;li&gt;Stats and analytics items (daily ping, crash logs, P3A)&lt;/li&gt;
&lt;li&gt;Talk&lt;/li&gt;
&lt;li&gt;Tor integration&lt;/li&gt;
&lt;li&gt;VPN&lt;/li&gt;
&lt;li&gt;Wallet (and Web3 domains)&lt;/li&gt;
&lt;li&gt;Wayback Machine integration&lt;/li&gt;
&lt;li&gt;Web Discovery Project&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;My Take&lt;/h3&gt;
&lt;p&gt;For most users, this list is a win. The average person benefits more from less noise and fewer moving parts than from an overloaded browser UI. If you need one of these, enable it in upgrade mode, or stay on standard Brave.&lt;/p&gt;
&lt;h2&gt;Availability Matrix&lt;/h2&gt;
&lt;p&gt;Brave lists support as follows:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Platform&lt;/th&gt;
&lt;th&gt;Upgrade&lt;/th&gt;
&lt;th&gt;Standalone&lt;/th&gt;
&lt;th&gt;One-time purchase&lt;/th&gt;
&lt;th&gt;Free option&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Android (1.91.x+)&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;iOS (1.91.x+)&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;macOS (1.91.x+)&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows (1.91.x+)&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Linux (1.91.x+)&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Linux users can install and continue with Origin for free using Brave&apos;s Linux-specific prompt.&lt;/p&gt;
&lt;h2&gt;Setup Paths&lt;/h2&gt;
&lt;h3&gt;Desktop Standalone (Best for &quot;just give me clean Brave&quot;)&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Download Brave Origin standalone build.&lt;/li&gt;
&lt;li&gt;Install and launch.&lt;/li&gt;
&lt;li&gt;Enter your purchase ID, or on Linux use the free option prompt.&lt;/li&gt;
&lt;li&gt;Finish onboarding and browse.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Upgrade Existing Brave (Desktop)&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Open Settings, then System, then Brave Origin.&lt;/li&gt;
&lt;li&gt;Buy or log in for your code.&lt;/li&gt;
&lt;li&gt;Refresh Origin and relaunch browser.&lt;/li&gt;
&lt;li&gt;Reopen Settings and configure feature toggles.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Upgrade Existing Brave (Mobile)&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Open Settings, then Brave Origin.&lt;/li&gt;
&lt;li&gt;Buy now or get login code.&lt;/li&gt;
&lt;li&gt;Restart app.&lt;/li&gt;
&lt;li&gt;Reopen Brave Origin settings and toggle features.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Privacy Model: How Purchase Works Without Tracking You&lt;/h2&gt;
&lt;p&gt;This is where people usually get suspicious: &quot;If I buy it, are they tying my identity to my browsing?&quot;&lt;/p&gt;
&lt;p&gt;Brave says Origin uses blind token flows based on Privacy Pass, so payment identity and browser usage remain decoupled. In plain English: they can verify entitlement without needing to build a personal profile around your browsing activity.&lt;/p&gt;
&lt;p&gt;That design is exactly what you want from a privacy-first premium feature.&lt;/p&gt;
&lt;h2&gt;Managed Devices and Work Environments&lt;/h2&gt;
&lt;p&gt;If your browser is managed by organization policies (Group Policy and similar), admin rules can override local Origin toggles. So yes, your work machine may still show or hide features based on corporate policy, even if your personal Origin settings differ.&lt;/p&gt;
&lt;p&gt;This behavior applies to upgrade mode.&lt;/p&gt;
&lt;h2&gt;Is Brave Origin Worth It?&lt;/h2&gt;
&lt;p&gt;If you want a browser with fewer distractions, fewer bundled services, and a tighter privacy posture, Brave Origin is one of the most interesting browser moves in years.&lt;/p&gt;
&lt;p&gt;If you rely on Brave VPN, Wallet, Rewards, or other optional services, standard Brave may still fit you better.&lt;/p&gt;
&lt;h3&gt;Chris Titus Tech Verdict&lt;/h3&gt;
&lt;p&gt;Brave Origin is a solid direction. Minimal by default is the right default.&lt;/p&gt;
&lt;p&gt;I would love to see this philosophy spread across more software: let users opt into extras, not opt out of them.&lt;/p&gt;
&lt;h2&gt;Quick FAQ&lt;/h2&gt;
&lt;h3&gt;Is Brave Origin a different browser engine?&lt;/h3&gt;
&lt;p&gt;No. It is still Brave on Chromium, with the core stack intact.&lt;/p&gt;
&lt;h3&gt;Can I use one purchase on multiple devices?&lt;/h3&gt;
&lt;p&gt;Yes. Brave documents up to 10 activations.&lt;/p&gt;
&lt;h3&gt;Can Linux users run it for free?&lt;/h3&gt;
&lt;p&gt;Yes. Brave currently offers a free Linux flow for Origin.&lt;/p&gt;
&lt;h3&gt;Can I switch back after upgrade mode?&lt;/h3&gt;
&lt;p&gt;Yes. Brave documents a downgrade path using their flag toggle and relaunch.&lt;/p&gt;
&lt;h2&gt;Source Notes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Official Brave Help Center article: What is Brave Origin &lt;a href=&quot;https://support.brave.app/hc/en-us/articles/38561489788173-What-is-Brave-Origin&quot;&gt;https://support.brave.app/hc/en-us/articles/38561489788173-What-is-Brave-Origin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Version and availability details reflect Brave documentation at publication time&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/7VTWbFqySxg&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 29 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Brave Origin is Brave stripped back to what most of us actually want: fast browsing, strong privacy, and aggressive blocking. If you have ever opened a browser and thought, &quot;Why is there a crypto wallet button, rewards UI, and extra services I never asked for?&quot; this is the answer.&lt;/p&gt;

&lt;p&gt;This is not a different engine and not some weird fork from a random dev. It is an official Brave option focused on a cleaner experience.&lt;/p&gt;
&lt;h2&gt;What Brave Origin Actually Is&lt;/h2&gt;
&lt;p&gt;Brave Origin is a minimalist Brave mode that removes or disables many optional, revenue-related, or bundled features while keeping the core browser stack:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Chromium updates and security patches&lt;/li&gt;
&lt;li&gt;Brave Shields (ad/tracker blocking)&lt;/li&gt;
&lt;li&gt;Performance and privacy improvements in core browsing&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It is offered in two ways:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Standalone Brave Origin app (desktop)&lt;/li&gt;
&lt;li&gt;Upgrade mode inside regular Brave (desktop and mobile)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;One purchase can activate up to 10 times across devices, and Linux users also get a free path.&lt;/p&gt;
&lt;h2&gt;The Big Difference: Standalone vs Upgrade&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Mode&lt;/th&gt;
&lt;th&gt;How it works&lt;/th&gt;
&lt;th&gt;What happens to extra features&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Standalone app&lt;/td&gt;
&lt;td&gt;Separate Brave Origin install&lt;/td&gt;
&lt;td&gt;Features are compiled out entirely&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Upgrade mode&lt;/td&gt;
&lt;td&gt;Existing Brave gets an Origin settings panel&lt;/td&gt;
&lt;td&gt;Features are toggled off by default&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;If you are truly anti-bloat, standalone is the purest option.&lt;/p&gt;
&lt;h2&gt;Features Affected By Brave Origin&lt;/h2&gt;
&lt;p&gt;According to Brave, Origin targets the following features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Leo&lt;/li&gt;
&lt;li&gt;News&lt;/li&gt;
&lt;li&gt;Playlist (iOS currently)&lt;/li&gt;
&lt;li&gt;Rewards (and browser-based Brave Ads)&lt;/li&gt;
&lt;li&gt;Speedreader&lt;/li&gt;
&lt;li&gt;Stats and analytics items (daily ping, crash logs, P3A)&lt;/li&gt;
&lt;li&gt;Talk&lt;/li&gt;
&lt;li&gt;Tor integration&lt;/li&gt;
&lt;li&gt;VPN&lt;/li&gt;
&lt;li&gt;Wallet (and Web3 domains)&lt;/li&gt;
&lt;li&gt;Wayback Machine integration&lt;/li&gt;
&lt;li&gt;Web Discovery Project&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;My Take&lt;/h3&gt;
&lt;p&gt;For most users, this list is a win. The average person benefits more from less noise and fewer moving parts than from an overloaded browser UI. If you need one of these, enable it in upgrade mode, or stay on standard Brave.&lt;/p&gt;
&lt;h2&gt;Availability Matrix&lt;/h2&gt;
&lt;p&gt;Brave lists support as follows:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Platform&lt;/th&gt;
&lt;th&gt;Upgrade&lt;/th&gt;
&lt;th&gt;Standalone&lt;/th&gt;
&lt;th&gt;One-time purchase&lt;/th&gt;
&lt;th&gt;Free option&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Android (1.91.x+)&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;iOS (1.91.x+)&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;macOS (1.91.x+)&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows (1.91.x+)&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Linux (1.91.x+)&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Linux users can install and continue with Origin for free using Brave&apos;s Linux-specific prompt.&lt;/p&gt;
&lt;h2&gt;Setup Paths&lt;/h2&gt;
&lt;h3&gt;Desktop Standalone (Best for &quot;just give me clean Brave&quot;)&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Download Brave Origin standalone build.&lt;/li&gt;
&lt;li&gt;Install and launch.&lt;/li&gt;
&lt;li&gt;Enter your purchase ID, or on Linux use the free option prompt.&lt;/li&gt;
&lt;li&gt;Finish onboarding and browse.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Upgrade Existing Brave (Desktop)&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Open Settings, then System, then Brave Origin.&lt;/li&gt;
&lt;li&gt;Buy or log in for your code.&lt;/li&gt;
&lt;li&gt;Refresh Origin and relaunch browser.&lt;/li&gt;
&lt;li&gt;Reopen Settings and configure feature toggles.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Upgrade Existing Brave (Mobile)&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Open Settings, then Brave Origin.&lt;/li&gt;
&lt;li&gt;Buy now or get login code.&lt;/li&gt;
&lt;li&gt;Restart app.&lt;/li&gt;
&lt;li&gt;Reopen Brave Origin settings and toggle features.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Privacy Model: How Purchase Works Without Tracking You&lt;/h2&gt;
&lt;p&gt;This is where people usually get suspicious: &quot;If I buy it, are they tying my identity to my browsing?&quot;&lt;/p&gt;
&lt;p&gt;Brave says Origin uses blind token flows based on Privacy Pass, so payment identity and browser usage remain decoupled. In plain English: they can verify entitlement without needing to build a personal profile around your browsing activity.&lt;/p&gt;
&lt;p&gt;That design is exactly what you want from a privacy-first premium feature.&lt;/p&gt;
&lt;h2&gt;Managed Devices and Work Environments&lt;/h2&gt;
&lt;p&gt;If your browser is managed by organization policies (Group Policy and similar), admin rules can override local Origin toggles. So yes, your work machine may still show or hide features based on corporate policy, even if your personal Origin settings differ.&lt;/p&gt;
&lt;p&gt;This behavior applies to upgrade mode.&lt;/p&gt;
&lt;h2&gt;Is Brave Origin Worth It?&lt;/h2&gt;
&lt;p&gt;If you want a browser with fewer distractions, fewer bundled services, and a tighter privacy posture, Brave Origin is one of the most interesting browser moves in years.&lt;/p&gt;
&lt;p&gt;If you rely on Brave VPN, Wallet, Rewards, or other optional services, standard Brave may still fit you better.&lt;/p&gt;
&lt;h3&gt;Chris Titus Tech Verdict&lt;/h3&gt;
&lt;p&gt;Brave Origin is a solid direction. Minimal by default is the right default.&lt;/p&gt;
&lt;p&gt;I would love to see this philosophy spread across more software: let users opt into extras, not opt out of them.&lt;/p&gt;
&lt;h2&gt;Quick FAQ&lt;/h2&gt;
&lt;h3&gt;Is Brave Origin a different browser engine?&lt;/h3&gt;
&lt;p&gt;No. It is still Brave on Chromium, with the core stack intact.&lt;/p&gt;
&lt;h3&gt;Can I use one purchase on multiple devices?&lt;/h3&gt;
&lt;p&gt;Yes. Brave documents up to 10 activations.&lt;/p&gt;
&lt;h3&gt;Can Linux users run it for free?&lt;/h3&gt;
&lt;p&gt;Yes. Brave currently offers a free Linux flow for Origin.&lt;/p&gt;
&lt;h3&gt;Can I switch back after upgrade mode?&lt;/h3&gt;
&lt;p&gt;Yes. Brave documents a downgrade path using their flag toggle and relaunch.&lt;/p&gt;
&lt;h2&gt;Source Notes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Official Brave Help Center article: What is Brave Origin &lt;a href=&quot;https://support.brave.app/hc/en-us/articles/38561489788173-What-is-Brave-Origin&quot;&gt;https://support.brave.app/hc/en-us/articles/38561489788173-What-is-Brave-Origin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Version and availability details reflect Brave documentation at publication time&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/7VTWbFqySxg&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Topgrade Linux</title><link>https://christitus.com/topgrade-linux/</link><guid isPermaLink="true">https://christitus.com/topgrade-linux/</guid><description>&lt;p&gt;Most Linux users only run their package manager and call it a day. That updates your system packages, but it often leaves the rest of your machine in a partially updated state. If you use &lt;code&gt;pip&lt;/code&gt;, &lt;code&gt;cargo&lt;/code&gt;, &lt;code&gt;flatpak&lt;/code&gt;, &lt;code&gt;snap&lt;/code&gt;, &lt;code&gt;brew&lt;/code&gt;, &lt;code&gt;oh-my-zsh&lt;/code&gt;, VS Code extensions, or even dotfile repos, those pieces can all drift out of date separately.&lt;/p&gt;
&lt;p&gt;Topgrade exists to solve this exact problem. It gives you one command to update almost everything you actually use.&lt;/p&gt;

&lt;p&gt;Keeping your machine consistently updated is not just about getting shiny new versions. It is about reducing weird breakage from version mismatch, closing security holes faster, and spending less time doing repetitive maintenance.&lt;/p&gt;
&lt;h2&gt;What Topgrade Is&lt;/h2&gt;
&lt;p&gt;Topgrade is a command-line tool that runs update commands across multiple package managers and tools in sequence. Instead of remembering ten different commands, you run one:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;topgrade
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Topgrade handles things like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;System package managers (&lt;code&gt;apt&lt;/code&gt;, &lt;code&gt;dnf&lt;/code&gt;, &lt;code&gt;pacman&lt;/code&gt;, &lt;code&gt;zypper&lt;/code&gt;, &lt;code&gt;eopkg&lt;/code&gt;, etc.)&lt;/li&gt;
&lt;li&gt;Language package managers (&lt;code&gt;pip&lt;/code&gt;, &lt;code&gt;cargo&lt;/code&gt;, &lt;code&gt;npm&lt;/code&gt;, &lt;code&gt;gem&lt;/code&gt;, etc.)&lt;/li&gt;
&lt;li&gt;Universal package managers (&lt;code&gt;flatpak&lt;/code&gt;, &lt;code&gt;snap&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Tooling ecosystems (&lt;code&gt;rustup&lt;/code&gt;, &lt;code&gt;asdf&lt;/code&gt;, &lt;code&gt;sdkman&lt;/code&gt;, &lt;code&gt;mise&lt;/code&gt;, etc.)&lt;/li&gt;
&lt;li&gt;Repository pulls (dotfiles or any local git repos)&lt;/li&gt;
&lt;li&gt;Shell and plugin ecosystems (Oh My Zsh, Fish plugins, Vim/Neovim plugins, etc.)&lt;/li&gt;
&lt;li&gt;VS Code extensions&lt;/li&gt;
&lt;li&gt;Container images (&lt;code&gt;docker&lt;/code&gt;, &lt;code&gt;podman&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Firmware via &lt;code&gt;fwupd&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The exact behavior depends on your distro and what tools you have installed, but the core idea is the same: centralize updates.&lt;/p&gt;
&lt;h2&gt;The Problem with &quot;Just Do System Updates&quot;&lt;/h2&gt;
&lt;p&gt;When people say &quot;I update regularly,&quot; they usually mean one command:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Debian/Ubuntu: &lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Fedora: &lt;code&gt;sudo dnf upgrade&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Arch: &lt;code&gt;sudo pacman -Syu&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That is good, but incomplete for most power users.&lt;/p&gt;
&lt;h3&gt;You Are Only Updating One Layer&lt;/h3&gt;
&lt;p&gt;Modern Linux setups have multiple software layers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OS packages&lt;/li&gt;
&lt;li&gt;Userland language packages&lt;/li&gt;
&lt;li&gt;Third-party tools installed outside distro repos&lt;/li&gt;
&lt;li&gt;Application stores (&lt;code&gt;flatpak&lt;/code&gt;, &lt;code&gt;snap&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Git-managed configs and scripts&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If only one layer is current, your system is still effectively behind.&lt;/p&gt;
&lt;h3&gt;Human Memory Is the Bottleneck&lt;/h3&gt;
&lt;p&gt;Nobody wants a giant sticky note of update commands. Even experienced users forget steps when busy.&lt;/p&gt;
&lt;p&gt;Topgrade removes this memory tax. You no longer need to think, &quot;Did I update &lt;code&gt;cargo&lt;/code&gt; crates this week? Did I pull dotfiles?&quot;&lt;/p&gt;
&lt;h3&gt;Drift Causes Hard-to-Debug Issues&lt;/h3&gt;
&lt;p&gt;Many random issues come from version drift between tools:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A CLI tool expects newer dependencies than your local setup has&lt;/li&gt;
&lt;li&gt;A shell plugin manager is old while the shell itself is new&lt;/li&gt;
&lt;li&gt;User-level packages lag behind system-level updates&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Topgrade reduces this drift by making full-stack updates routine.&lt;/p&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;Topgrade is available through a wide range of package managers. Pick whichever fits your setup:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Arch Linux (AUR)
yay -S topgrade-bin
# or build from source:
yay -S topgrade

# Fedora / RHEL / AlmaLinux (Copr)
sudo dnf copr enable lilay/topgrade
sudo dnf install topgrade

# Debian / Ubuntu (via deb-get)
deb-get install topgrade

# macOS or Linux (Homebrew)
brew install topgrade

# NixOS / Nix
nix-env -iA nixpkgs.topgrade

# Alpine Linux
sudo apk add topgrade

# Void Linux
sudo xbps-install -S topgrade

# Python (pip / pipx / uv)
pipx install topgrade

# Via Cargo (always gets latest release)
cargo install topgrade
&lt;/code&gt;&lt;/pre&gt;
&lt;aside class=&quot;notice notice-tip&quot;&gt;&lt;p class=&quot;notice-title&quot;&gt;Tip&lt;/p&gt;&lt;p&gt;If your distro repo version is old, installing via &lt;code&gt;cargo&lt;/code&gt; or &lt;code&gt;pipx&lt;/code&gt; is the fastest way to get the latest release without waiting for a package maintainer.&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;You can also grab a pre-built self-updating binary directly from the &lt;a href=&quot;https://github.com/topgrade-rs/topgrade/releases&quot;&gt;releases page&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;First Run: What to Expect&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;topgrade
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You may be prompted for &lt;code&gt;sudo&lt;/code&gt; depending on what update steps need elevated privileges. The first run can take a while because it catches up everything at once — that is normal.&lt;/p&gt;
&lt;h3&gt;Useful Flags&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Flag&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--dry-run&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Preview what would run without making changes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-y&lt;/code&gt; / &lt;code&gt;--yes&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Skip all confirmation prompts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--only &amp;lt;step&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run only specific steps (e.g. &lt;code&gt;--only system flatpak&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--disable &amp;lt;step&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Skip specific steps for this run&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--edit-config&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open your config file in &lt;code&gt;$EDITOR&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--config-reference&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print all available config options&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--remote-host-limit &amp;lt;host&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Limit remote execution to specific hosts&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Safety: How to Use It Responsibly&lt;/h2&gt;
&lt;p&gt;Topgrade is powerful, so use it with a sane workflow.&lt;/p&gt;
&lt;h3&gt;Start with a Dry Run&lt;/h3&gt;
&lt;p&gt;Preview what it would do before committing:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;topgrade --dry-run
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is especially useful the first time you set it up, or after making major changes to your configuration.&lt;/p&gt;
&lt;h3&gt;Keep Backups and Snapshots&lt;/h3&gt;
&lt;p&gt;Before major updates:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Snapshot with Btrfs/Timeshift/ZFS if available&lt;/li&gt;
&lt;li&gt;Backup important config and data&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No update tool replaces backups.&lt;/p&gt;
&lt;h3&gt;Exclude What You Do Not Want&lt;/h3&gt;
&lt;p&gt;You can configure Topgrade to skip specific steps you do not trust or do not need. That lets you keep one-command convenience while controlling risk.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Recommended exclusion for cautious users — firmware updates:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I had firmware updates break my system before, so I prefer to review them separately. Disable them in your config:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;~/.config/topgrade.toml&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-toml&quot;&gt;[misc]
# Skip firmware updates entirely
disable = [&quot;firmware&quot;]

[firmware]
# If firmware step does run, only show available updates — do not install
upgrade = false
&lt;/code&gt;&lt;/pre&gt;
&lt;aside class=&quot;notice notice-note&quot;&gt;&lt;p class=&quot;notice-title&quot;&gt;Note&lt;/p&gt;&lt;p&gt;The double-exclusion is intentional. &lt;code&gt;disable&lt;/code&gt; skips the step outright; &lt;code&gt;upgrade = false&lt;/code&gt; under &lt;code&gt;[firmware]&lt;/code&gt; acts as a fallback safety net so that even if the step runs, nothing actually gets flashed.&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;For a one-off skip without editing your config:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;topgrade --disable firmware
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Read the Output&lt;/h3&gt;
&lt;p&gt;Treat updates like maintenance, not background noise. If one step fails, investigate before your next cycle. Topgrade reports each step&apos;s result clearly — use it.&lt;/p&gt;
&lt;h2&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Topgrade&apos;s config lives at:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;~/.config/topgrade.toml&lt;/code&gt; (primary location)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;~/.config/topgrade/topgrade.toml&lt;/code&gt; (alternative; both are checked)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On the first run with no config present, Topgrade creates one for you automatically. Open and edit it with:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;topgrade --edit-config
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Print every available option with:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;topgrade --config-reference
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Key Configuration Options&lt;/h3&gt;
&lt;p&gt;Here is a practical subset of the most useful settings:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-toml&quot;&gt;[misc]
# Cache sudo credentials upfront to avoid mid-run password prompts
pre_sudo = true

# Steps to always skip
disable = [&quot;firmware&quot;, &quot;snap&quot;]

# Steps to run before all others
first = [&quot;chezmoi&quot;]

# Steps to run after all others
last = [&quot;flatpak&quot;]

# Ignore failures for noisy or unreliable steps
ignore_failures = [&quot;pip3&quot;]

# Clean up old temp files after a run
cleanup = true

# Send a desktop notification when done
notify_end = &quot;on_failure&quot;

[git]
# Pull these repos every time you run topgrade
repos = [
    &quot;~/dotfiles&quot;,
    &quot;~/src/*/&quot;,
]
# Pull in parallel (default: 5)
max_concurrency = 5
# Rebase and autostash instead of plain merge
arguments = &quot;--rebase --autostash&quot;

[linux]
# Arch: choose your AUR helper (autodetect, paru, yay, pikaur, etc.)
arch_package_manager = &quot;paru&quot;
# Extra args passed to yay/paru
yay_arguments = &quot;--nodevel&quot;

[flatpak]
# Update system-wide Flatpak installs (requires sudo)
use_sudo = true

[python]
# Update pip packages (disabled by default)
enable_pip_review = true

[firmware]
# Only show available firmware updates, do not install
upgrade = false
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Full syntax and every available option: &lt;a href=&quot;https://github.com/topgrade-rs/topgrade/blob/main/config.example.toml&quot;&gt;https://github.com/topgrade-rs/topgrade/blob/main/config.example.toml&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Custom Commands&lt;/h3&gt;
&lt;p&gt;You can hook your own scripts into the update pipeline using &lt;code&gt;pre_commands&lt;/code&gt;, &lt;code&gt;post_commands&lt;/code&gt;, or &lt;code&gt;commands&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-toml&quot;&gt;# Runs before anything else
[pre_commands]
&quot;Backup dotfiles&quot; = &quot;chezmoi git -- push&quot;

# Runs after everything else
[post_commands]
&quot;Reload shell&quot; = &quot;exec $SHELL&quot;

# Custom named steps that appear in the Topgrade run
[commands]
&quot;Update Python env&quot; = &quot;~/dev/.venv/bin/pip install -U pip&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Remote Execution&lt;/h3&gt;
&lt;p&gt;If you maintain multiple machines, Topgrade can SSH into them and run updates before acting locally:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-toml&quot;&gt;[misc]
remote_topgrades = [&quot;homeserver&quot;, &quot;nas&quot;, &quot;pi&quot;]
ssh_arguments = &quot;-o ConnectTimeout=2&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Limit to a single host ad hoc:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;topgrade --remote-host-limit homeserver
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Recommended Update Workflow&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;For desktops and workstations:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Run &lt;code&gt;topgrade --dry-run&lt;/code&gt; if you have made major config changes&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;topgrade&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Reboot when kernel, drivers, or core libraries update&lt;/li&gt;
&lt;li&gt;Quickly test key workflows: browser, editor, shell, audio, GPU apps&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;For servers and critical machines:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Snapshot or backup first&lt;/li&gt;
&lt;li&gt;Run Topgrade with a limited scope: &lt;code&gt;topgrade --only system&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Validate services and logs after the update&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Topgrade is a force multiplier, but your operational discipline still matters.&lt;/p&gt;
&lt;h2&gt;When You Might Not Want Topgrade&lt;/h2&gt;
&lt;p&gt;Topgrade is not mandatory for every scenario:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Minimal systems that only use a single package manager&lt;/li&gt;
&lt;li&gt;Locked-down enterprise environments with strict patch management pipelines&lt;/li&gt;
&lt;li&gt;Users who want explicit manual control over every update decision&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If your stack is simple, manual updates are fine. But for most modern Linux users running layered tooling across multiple ecosystems, Topgrade saves real time and reduces silent drift.&lt;/p&gt;
&lt;h2&gt;Topgrade vs Manual Updates&lt;/h2&gt;
&lt;p&gt;Manual updates are fine when your environment is tiny.&lt;/p&gt;
&lt;p&gt;Topgrade wins when your environment is real-world:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Multiple package ecosystems&lt;/li&gt;
&lt;li&gt;Frequent toolchain changes&lt;/li&gt;
&lt;li&gt;Several machines to maintain&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The benefit is not just speed. It is reliability through repeatability.&lt;/p&gt;
&lt;h2&gt;Final Thoughts&lt;/h2&gt;
&lt;p&gt;If you are serious about Linux reliability, &quot;just update the system packages&quot; is no longer enough.&lt;/p&gt;
&lt;p&gt;Topgrade gives you a practical middle ground between fully manual maintenance and fragile home-rolled shell scripts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;One command&lt;/li&gt;
&lt;li&gt;Broad coverage across every ecosystem you actually use&lt;/li&gt;
&lt;li&gt;Configurable behavior and custom hooks&lt;/li&gt;
&lt;li&gt;Better long-term system hygiene&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Use it weekly, keep backups, and stop letting half your toolchain lag behind.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/YuozYQ6kILg&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Tue, 28 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Most Linux users only run their package manager and call it a day. That updates your system packages, but it often leaves the rest of your machine in a partially updated state. If you use &lt;code&gt;pip&lt;/code&gt;, &lt;code&gt;cargo&lt;/code&gt;, &lt;code&gt;flatpak&lt;/code&gt;, &lt;code&gt;snap&lt;/code&gt;, &lt;code&gt;brew&lt;/code&gt;, &lt;code&gt;oh-my-zsh&lt;/code&gt;, VS Code extensions, or even dotfile repos, those pieces can all drift out of date separately.&lt;/p&gt;
&lt;p&gt;Topgrade exists to solve this exact problem. It gives you one command to update almost everything you actually use.&lt;/p&gt;

&lt;p&gt;Keeping your machine consistently updated is not just about getting shiny new versions. It is about reducing weird breakage from version mismatch, closing security holes faster, and spending less time doing repetitive maintenance.&lt;/p&gt;
&lt;h2&gt;What Topgrade Is&lt;/h2&gt;
&lt;p&gt;Topgrade is a command-line tool that runs update commands across multiple package managers and tools in sequence. Instead of remembering ten different commands, you run one:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;topgrade
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Topgrade handles things like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;System package managers (&lt;code&gt;apt&lt;/code&gt;, &lt;code&gt;dnf&lt;/code&gt;, &lt;code&gt;pacman&lt;/code&gt;, &lt;code&gt;zypper&lt;/code&gt;, &lt;code&gt;eopkg&lt;/code&gt;, etc.)&lt;/li&gt;
&lt;li&gt;Language package managers (&lt;code&gt;pip&lt;/code&gt;, &lt;code&gt;cargo&lt;/code&gt;, &lt;code&gt;npm&lt;/code&gt;, &lt;code&gt;gem&lt;/code&gt;, etc.)&lt;/li&gt;
&lt;li&gt;Universal package managers (&lt;code&gt;flatpak&lt;/code&gt;, &lt;code&gt;snap&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Tooling ecosystems (&lt;code&gt;rustup&lt;/code&gt;, &lt;code&gt;asdf&lt;/code&gt;, &lt;code&gt;sdkman&lt;/code&gt;, &lt;code&gt;mise&lt;/code&gt;, etc.)&lt;/li&gt;
&lt;li&gt;Repository pulls (dotfiles or any local git repos)&lt;/li&gt;
&lt;li&gt;Shell and plugin ecosystems (Oh My Zsh, Fish plugins, Vim/Neovim plugins, etc.)&lt;/li&gt;
&lt;li&gt;VS Code extensions&lt;/li&gt;
&lt;li&gt;Container images (&lt;code&gt;docker&lt;/code&gt;, &lt;code&gt;podman&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Firmware via &lt;code&gt;fwupd&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The exact behavior depends on your distro and what tools you have installed, but the core idea is the same: centralize updates.&lt;/p&gt;
&lt;h2&gt;The Problem with &quot;Just Do System Updates&quot;&lt;/h2&gt;
&lt;p&gt;When people say &quot;I update regularly,&quot; they usually mean one command:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Debian/Ubuntu: &lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Fedora: &lt;code&gt;sudo dnf upgrade&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Arch: &lt;code&gt;sudo pacman -Syu&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That is good, but incomplete for most power users.&lt;/p&gt;
&lt;h3&gt;You Are Only Updating One Layer&lt;/h3&gt;
&lt;p&gt;Modern Linux setups have multiple software layers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OS packages&lt;/li&gt;
&lt;li&gt;Userland language packages&lt;/li&gt;
&lt;li&gt;Third-party tools installed outside distro repos&lt;/li&gt;
&lt;li&gt;Application stores (&lt;code&gt;flatpak&lt;/code&gt;, &lt;code&gt;snap&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Git-managed configs and scripts&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If only one layer is current, your system is still effectively behind.&lt;/p&gt;
&lt;h3&gt;Human Memory Is the Bottleneck&lt;/h3&gt;
&lt;p&gt;Nobody wants a giant sticky note of update commands. Even experienced users forget steps when busy.&lt;/p&gt;
&lt;p&gt;Topgrade removes this memory tax. You no longer need to think, &quot;Did I update &lt;code&gt;cargo&lt;/code&gt; crates this week? Did I pull dotfiles?&quot;&lt;/p&gt;
&lt;h3&gt;Drift Causes Hard-to-Debug Issues&lt;/h3&gt;
&lt;p&gt;Many random issues come from version drift between tools:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A CLI tool expects newer dependencies than your local setup has&lt;/li&gt;
&lt;li&gt;A shell plugin manager is old while the shell itself is new&lt;/li&gt;
&lt;li&gt;User-level packages lag behind system-level updates&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Topgrade reduces this drift by making full-stack updates routine.&lt;/p&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;Topgrade is available through a wide range of package managers. Pick whichever fits your setup:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Arch Linux (AUR)
yay -S topgrade-bin
# or build from source:
yay -S topgrade

# Fedora / RHEL / AlmaLinux (Copr)
sudo dnf copr enable lilay/topgrade
sudo dnf install topgrade

# Debian / Ubuntu (via deb-get)
deb-get install topgrade

# macOS or Linux (Homebrew)
brew install topgrade

# NixOS / Nix
nix-env -iA nixpkgs.topgrade

# Alpine Linux
sudo apk add topgrade

# Void Linux
sudo xbps-install -S topgrade

# Python (pip / pipx / uv)
pipx install topgrade

# Via Cargo (always gets latest release)
cargo install topgrade
&lt;/code&gt;&lt;/pre&gt;
&lt;aside class=&quot;notice notice-tip&quot;&gt;&lt;p class=&quot;notice-title&quot;&gt;Tip&lt;/p&gt;&lt;p&gt;If your distro repo version is old, installing via &lt;code&gt;cargo&lt;/code&gt; or &lt;code&gt;pipx&lt;/code&gt; is the fastest way to get the latest release without waiting for a package maintainer.&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;You can also grab a pre-built self-updating binary directly from the &lt;a href=&quot;https://github.com/topgrade-rs/topgrade/releases&quot;&gt;releases page&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;First Run: What to Expect&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;topgrade
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You may be prompted for &lt;code&gt;sudo&lt;/code&gt; depending on what update steps need elevated privileges. The first run can take a while because it catches up everything at once — that is normal.&lt;/p&gt;
&lt;h3&gt;Useful Flags&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Flag&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--dry-run&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Preview what would run without making changes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-y&lt;/code&gt; / &lt;code&gt;--yes&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Skip all confirmation prompts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--only &amp;lt;step&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run only specific steps (e.g. &lt;code&gt;--only system flatpak&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--disable &amp;lt;step&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Skip specific steps for this run&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--edit-config&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open your config file in &lt;code&gt;$EDITOR&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--config-reference&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Print all available config options&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--remote-host-limit &amp;lt;host&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Limit remote execution to specific hosts&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Safety: How to Use It Responsibly&lt;/h2&gt;
&lt;p&gt;Topgrade is powerful, so use it with a sane workflow.&lt;/p&gt;
&lt;h3&gt;Start with a Dry Run&lt;/h3&gt;
&lt;p&gt;Preview what it would do before committing:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;topgrade --dry-run
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is especially useful the first time you set it up, or after making major changes to your configuration.&lt;/p&gt;
&lt;h3&gt;Keep Backups and Snapshots&lt;/h3&gt;
&lt;p&gt;Before major updates:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Snapshot with Btrfs/Timeshift/ZFS if available&lt;/li&gt;
&lt;li&gt;Backup important config and data&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No update tool replaces backups.&lt;/p&gt;
&lt;h3&gt;Exclude What You Do Not Want&lt;/h3&gt;
&lt;p&gt;You can configure Topgrade to skip specific steps you do not trust or do not need. That lets you keep one-command convenience while controlling risk.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Recommended exclusion for cautious users — firmware updates:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I had firmware updates break my system before, so I prefer to review them separately. Disable them in your config:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;~/.config/topgrade.toml&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-toml&quot;&gt;[misc]
# Skip firmware updates entirely
disable = [&quot;firmware&quot;]

[firmware]
# If firmware step does run, only show available updates — do not install
upgrade = false
&lt;/code&gt;&lt;/pre&gt;
&lt;aside class=&quot;notice notice-note&quot;&gt;&lt;p class=&quot;notice-title&quot;&gt;Note&lt;/p&gt;&lt;p&gt;The double-exclusion is intentional. &lt;code&gt;disable&lt;/code&gt; skips the step outright; &lt;code&gt;upgrade = false&lt;/code&gt; under &lt;code&gt;[firmware]&lt;/code&gt; acts as a fallback safety net so that even if the step runs, nothing actually gets flashed.&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;For a one-off skip without editing your config:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;topgrade --disable firmware
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Read the Output&lt;/h3&gt;
&lt;p&gt;Treat updates like maintenance, not background noise. If one step fails, investigate before your next cycle. Topgrade reports each step&apos;s result clearly — use it.&lt;/p&gt;
&lt;h2&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Topgrade&apos;s config lives at:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;~/.config/topgrade.toml&lt;/code&gt; (primary location)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;~/.config/topgrade/topgrade.toml&lt;/code&gt; (alternative; both are checked)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On the first run with no config present, Topgrade creates one for you automatically. Open and edit it with:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;topgrade --edit-config
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Print every available option with:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;topgrade --config-reference
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Key Configuration Options&lt;/h3&gt;
&lt;p&gt;Here is a practical subset of the most useful settings:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-toml&quot;&gt;[misc]
# Cache sudo credentials upfront to avoid mid-run password prompts
pre_sudo = true

# Steps to always skip
disable = [&quot;firmware&quot;, &quot;snap&quot;]

# Steps to run before all others
first = [&quot;chezmoi&quot;]

# Steps to run after all others
last = [&quot;flatpak&quot;]

# Ignore failures for noisy or unreliable steps
ignore_failures = [&quot;pip3&quot;]

# Clean up old temp files after a run
cleanup = true

# Send a desktop notification when done
notify_end = &quot;on_failure&quot;

[git]
# Pull these repos every time you run topgrade
repos = [
    &quot;~/dotfiles&quot;,
    &quot;~/src/*/&quot;,
]
# Pull in parallel (default: 5)
max_concurrency = 5
# Rebase and autostash instead of plain merge
arguments = &quot;--rebase --autostash&quot;

[linux]
# Arch: choose your AUR helper (autodetect, paru, yay, pikaur, etc.)
arch_package_manager = &quot;paru&quot;
# Extra args passed to yay/paru
yay_arguments = &quot;--nodevel&quot;

[flatpak]
# Update system-wide Flatpak installs (requires sudo)
use_sudo = true

[python]
# Update pip packages (disabled by default)
enable_pip_review = true

[firmware]
# Only show available firmware updates, do not install
upgrade = false
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Full syntax and every available option: &lt;a href=&quot;https://github.com/topgrade-rs/topgrade/blob/main/config.example.toml&quot;&gt;https://github.com/topgrade-rs/topgrade/blob/main/config.example.toml&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Custom Commands&lt;/h3&gt;
&lt;p&gt;You can hook your own scripts into the update pipeline using &lt;code&gt;pre_commands&lt;/code&gt;, &lt;code&gt;post_commands&lt;/code&gt;, or &lt;code&gt;commands&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-toml&quot;&gt;# Runs before anything else
[pre_commands]
&quot;Backup dotfiles&quot; = &quot;chezmoi git -- push&quot;

# Runs after everything else
[post_commands]
&quot;Reload shell&quot; = &quot;exec $SHELL&quot;

# Custom named steps that appear in the Topgrade run
[commands]
&quot;Update Python env&quot; = &quot;~/dev/.venv/bin/pip install -U pip&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Remote Execution&lt;/h3&gt;
&lt;p&gt;If you maintain multiple machines, Topgrade can SSH into them and run updates before acting locally:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-toml&quot;&gt;[misc]
remote_topgrades = [&quot;homeserver&quot;, &quot;nas&quot;, &quot;pi&quot;]
ssh_arguments = &quot;-o ConnectTimeout=2&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Limit to a single host ad hoc:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;topgrade --remote-host-limit homeserver
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Recommended Update Workflow&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;For desktops and workstations:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Run &lt;code&gt;topgrade --dry-run&lt;/code&gt; if you have made major config changes&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;topgrade&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Reboot when kernel, drivers, or core libraries update&lt;/li&gt;
&lt;li&gt;Quickly test key workflows: browser, editor, shell, audio, GPU apps&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;For servers and critical machines:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Snapshot or backup first&lt;/li&gt;
&lt;li&gt;Run Topgrade with a limited scope: &lt;code&gt;topgrade --only system&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Validate services and logs after the update&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Topgrade is a force multiplier, but your operational discipline still matters.&lt;/p&gt;
&lt;h2&gt;When You Might Not Want Topgrade&lt;/h2&gt;
&lt;p&gt;Topgrade is not mandatory for every scenario:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Minimal systems that only use a single package manager&lt;/li&gt;
&lt;li&gt;Locked-down enterprise environments with strict patch management pipelines&lt;/li&gt;
&lt;li&gt;Users who want explicit manual control over every update decision&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If your stack is simple, manual updates are fine. But for most modern Linux users running layered tooling across multiple ecosystems, Topgrade saves real time and reduces silent drift.&lt;/p&gt;
&lt;h2&gt;Topgrade vs Manual Updates&lt;/h2&gt;
&lt;p&gt;Manual updates are fine when your environment is tiny.&lt;/p&gt;
&lt;p&gt;Topgrade wins when your environment is real-world:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Multiple package ecosystems&lt;/li&gt;
&lt;li&gt;Frequent toolchain changes&lt;/li&gt;
&lt;li&gt;Several machines to maintain&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The benefit is not just speed. It is reliability through repeatability.&lt;/p&gt;
&lt;h2&gt;Final Thoughts&lt;/h2&gt;
&lt;p&gt;If you are serious about Linux reliability, &quot;just update the system packages&quot; is no longer enough.&lt;/p&gt;
&lt;p&gt;Topgrade gives you a practical middle ground between fully manual maintenance and fragile home-rolled shell scripts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;One command&lt;/li&gt;
&lt;li&gt;Broad coverage across every ecosystem you actually use&lt;/li&gt;
&lt;li&gt;Configurable behavior and custom hooks&lt;/li&gt;
&lt;li&gt;Better long-term system hygiene&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Use it weekly, keep backups, and stop letting half your toolchain lag behind.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/YuozYQ6kILg&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Best NFS Network Drive Settings for Linux</title><link>https://christitus.com/fix-nfs-network-drives/</link><guid isPermaLink="true">https://christitus.com/fix-nfs-network-drives/</guid><description>&lt;p&gt;Most people mount NFS shares with a short line and move on. That works, but if you use network storage heavily (media libraries, VMs, homelab backups, project files), your mount options directly affect reliability, boot behavior, and performance.&lt;/p&gt;
&lt;p&gt;This guide breaks down a practical high-reliability NFS option set and compares it to a basic mount setup, using Linux &lt;code&gt;nfs-utils&lt;/code&gt; mount documentation (&lt;code&gt;man 5 nfs&lt;/code&gt;) and systemd mount behavior (&lt;code&gt;man 5 systemd.mount&lt;/code&gt;).&lt;/p&gt;

&lt;h2&gt;Quick Comparison: Basic vs Tuned&lt;/h2&gt;
&lt;h3&gt;Basic fstab entry&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;nas:/data /mnt/data nfs defaults 0 0
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Tuned fstab entry (example)&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;nas:/data /mnt/data nfs nfsvers=4.1,bg,hard,nofail,noatime,rsize=1048576,wsize=1048576,timeo=600,retrans=5,x-systemd.automount,x-systemd.mount-timeout=90,_netdev 0 0
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;What changes?&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Area&lt;/th&gt;
&lt;th&gt;Basic (&lt;code&gt;defaults&lt;/code&gt;)&lt;/th&gt;
&lt;th&gt;Tuned Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;NFS protocol version&lt;/td&gt;
&lt;td&gt;Auto-negotiate&lt;/td&gt;
&lt;td&gt;Pinned to &lt;code&gt;4.1&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Failure behavior&lt;/td&gt;
&lt;td&gt;Default retry behavior&lt;/td&gt;
&lt;td&gt;Explicit &lt;code&gt;hard&lt;/code&gt; retries forever (safer for data integrity)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Boot experience&lt;/td&gt;
&lt;td&gt;May block depending on environment&lt;/td&gt;
&lt;td&gt;&lt;code&gt;nofail&lt;/code&gt; + &lt;code&gt;x-systemd.automount&lt;/code&gt; helps avoid boot hangs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Network timing&lt;/td&gt;
&lt;td&gt;Generic defaults&lt;/td&gt;
&lt;td&gt;Explicit &lt;code&gt;timeo=600,retrans=5&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Throughput tuning&lt;/td&gt;
&lt;td&gt;Negotiated defaults&lt;/td&gt;
&lt;td&gt;Forces &lt;code&gt;rsize/wsize&lt;/code&gt; up to 1 MiB cap&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Access-time writes&lt;/td&gt;
&lt;td&gt;&lt;code&gt;relatime&lt;/code&gt; typically&lt;/td&gt;
&lt;td&gt;&lt;code&gt;noatime&lt;/code&gt; to reduce metadata writes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Network ordering&lt;/td&gt;
&lt;td&gt;Auto-detected for NFS&lt;/td&gt;
&lt;td&gt;Explicit &lt;code&gt;_netdev&lt;/code&gt; dependency&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Option-by-Option Breakdown&lt;/h2&gt;
&lt;p&gt;Reference base: &lt;code&gt;man 5 nfs&lt;/code&gt; and &lt;code&gt;man 5 systemd.mount&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;&lt;code&gt;nfsvers=4.1&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What it does: Pins the client to NFSv4.1.&lt;/li&gt;
&lt;li&gt;Official behavior: Without &lt;code&gt;nfsvers&lt;/code&gt; (or &lt;code&gt;vers&lt;/code&gt;), Linux clients typically try newer NFS versions first and negotiate down.&lt;/li&gt;
&lt;li&gt;Why use it: Predictability. If server and clients are known-good on 4.1, pinning avoids surprises after updates.&lt;/li&gt;
&lt;li&gt;Tradeoff: You lose automatic use of newer protocol features (for example, if 4.2 is supported and useful).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;code&gt;bg&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What it does: If mount fails/timeouts, mount helper retries in the background.&lt;/li&gt;
&lt;li&gt;Official behavior (&lt;code&gt;nfs(5)&lt;/code&gt;): Parent returns success while child keeps retrying.&lt;/li&gt;
&lt;li&gt;systemd detail (&lt;code&gt;systemd.mount(5)&lt;/code&gt;): &lt;code&gt;systemd-fstab-generator&lt;/code&gt; translates &lt;code&gt;bg&lt;/code&gt; semantics and effectively applies behavior similar to long retries plus &lt;code&gt;fg,nofail&lt;/code&gt; handling under systemd job control.&lt;/li&gt;
&lt;li&gt;Why use it: Better boot resilience when NAS/network is slow.&lt;/li&gt;
&lt;li&gt;Tradeoff: Failure may be less obvious immediately because retries continue in background.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;code&gt;hard&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What it does: NFS operations retry indefinitely after timeout.&lt;/li&gt;
&lt;li&gt;Official behavior: &lt;code&gt;hard&lt;/code&gt; is default and strongly preferred for data integrity; &lt;code&gt;soft&lt;/code&gt; can return I/O errors and may risk silent corruption in some workflows.&lt;/li&gt;
&lt;li&gt;Why use it: Correctness and durability over convenience.&lt;/li&gt;
&lt;li&gt;Tradeoff: Apps can hang waiting for server recovery.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;code&gt;nofail&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What it does: Mount is wanted, not required, during boot.&lt;/li&gt;
&lt;li&gt;Official behavior (&lt;code&gt;systemd.mount(5)&lt;/code&gt;): Boot continues even if mount is unavailable; unit is not ordered to block boot target completion.&lt;/li&gt;
&lt;li&gt;Why use it: Prevent boot failures when NAS is down.&lt;/li&gt;
&lt;li&gt;Tradeoff: Service depending on that path may fail later unless you handle dependency checks.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;code&gt;noatime&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What it does: Disables access-time updates on reads.&lt;/li&gt;
&lt;li&gt;Why use it: Reduces metadata traffic and write amplification on busy shares.&lt;/li&gt;
&lt;li&gt;Tradeoff: Loses accurate &lt;code&gt;atime&lt;/code&gt; semantics for tools/workflows that rely on access timestamps.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;code&gt;rsize=1048576&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What it does: Sets max read request payload to 1,048,576 bytes (1 MiB).&lt;/li&gt;
&lt;li&gt;Official behavior (&lt;code&gt;nfs(5)&lt;/code&gt;): Linux NFS client max read payload is 1 MiB; unsupported values are clamped/rounded according to rules.&lt;/li&gt;
&lt;li&gt;Why use it: High-throughput sequential read workloads can benefit.&lt;/li&gt;
&lt;li&gt;Tradeoff: If network/server path can’t handle large I/O well, negotiated defaults may perform more consistently.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;code&gt;wsize=1048576&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What it does: Sets max write request payload to 1 MiB.&lt;/li&gt;
&lt;li&gt;Official behavior (&lt;code&gt;nfs(5)&lt;/code&gt;): Same cap/rounding behavior as &lt;code&gt;rsize&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Why use it: Helps throughput for large sequential writes.&lt;/li&gt;
&lt;li&gt;Tradeoff: Same caution as &lt;code&gt;rsize&lt;/code&gt;; test with your server/network.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;code&gt;timeo=600&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What it does: Sets RPC timeout in deciseconds.&lt;/li&gt;
&lt;li&gt;Official behavior (&lt;code&gt;nfs(5)&lt;/code&gt;): For TCP, &lt;code&gt;600&lt;/code&gt; means 60 seconds; TCP uses linear backoff and this value is already the standard default for TCP/RDMA.&lt;/li&gt;
&lt;li&gt;Why use it: Mainly explicitness/documentation in your &lt;code&gt;fstab&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Tradeoff: Usually redundant for TCP NFS because it matches default behavior.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;code&gt;retrans=5&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What it does: Number of retries before the client escalates recovery behavior.&lt;/li&gt;
&lt;li&gt;Official behavior (&lt;code&gt;nfs(5)&lt;/code&gt;): TCP default retry count is lower by default; with &lt;code&gt;hard&lt;/code&gt;, the client still continues broader recovery even after retry cycles.&lt;/li&gt;
&lt;li&gt;Why use it: More tolerance for transient network stalls before warning/recovery transitions.&lt;/li&gt;
&lt;li&gt;Tradeoff: Longer delay before surfacing responsiveness issues.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;code&gt;x-systemd.automount&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What it does: Creates an automount unit so the share mounts on first access rather than during early boot.&lt;/li&gt;
&lt;li&gt;Official behavior (&lt;code&gt;systemd.mount(5)&lt;/code&gt;): Generates an automount unit from &lt;code&gt;fstab&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Why use it: Excellent for laptops/desktops/homelabs where network readiness timing is inconsistent.&lt;/li&gt;
&lt;li&gt;Tradeoff: First access to the path incurs mount latency.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;code&gt;x-systemd.mount-timeout=90&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What it does: Limits how long systemd waits for mount command completion.&lt;/li&gt;
&lt;li&gt;Official behavior (&lt;code&gt;systemd.mount(5)&lt;/code&gt;): &lt;code&gt;fstab&lt;/code&gt;-only option that maps to mount job timeout behavior.&lt;/li&gt;
&lt;li&gt;Why use it: Prevents very long hangs on dead endpoints.&lt;/li&gt;
&lt;li&gt;Tradeoff: Too short a timeout can fail mounts on slow links/startup races.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;code&gt;_netdev&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What it does: Explicitly marks mount as network-dependent.&lt;/li&gt;
&lt;li&gt;Official behavior (&lt;code&gt;systemd.mount(5)&lt;/code&gt;): Pulls in network-online ordering and treats mount as remote fs.&lt;/li&gt;
&lt;li&gt;Why use it: Makes dependency intent explicit, especially in complex setups/VPN/overlay networks.&lt;/li&gt;
&lt;li&gt;Tradeoff: Usually redundant for plain NFS, but helpful for clarity and edge cases.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Final &lt;code&gt;0 0&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;First &lt;code&gt;0&lt;/code&gt;: dump backup utility field (commonly unused, usually &lt;code&gt;0&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Second &lt;code&gt;0&lt;/code&gt;: &lt;code&gt;fsck&lt;/code&gt; order. NFS is network fs and not checked via local &lt;code&gt;fsck&lt;/code&gt;, so &lt;code&gt;0&lt;/code&gt; is correct.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Is the Tuned Line Always Better?&lt;/h2&gt;
&lt;p&gt;No. A basic entry is fine for light use:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;nas:/data /mnt/data nfs defaults,_netdev,nofail 0 0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That is often enough for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Home media shares&lt;/li&gt;
&lt;li&gt;Occasional backups&lt;/li&gt;
&lt;li&gt;Non-critical personal files&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Use the tuned profile when you care about predictable behavior under failure and want stricter control over boot/mount characteristics.&lt;/p&gt;
&lt;h2&gt;Practical Recommended Profiles&lt;/h2&gt;
&lt;h3&gt;1) Balanced desktop/laptop&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;nas:/data /mnt/data nfs nfsvers=4.1,hard,nofail,_netdev,x-systemd.automount,x-systemd.mount-timeout=90 0 0
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;2) Throughput-focused LAN workstation&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;nas:/data /mnt/data nfs nfsvers=4.1,hard,noatime,rsize=1048576,wsize=1048576,timeo=600,retrans=5,_netdev,nofail 0 0
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;3) Minimal and safe&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;nas:/data /mnt/data nfs defaults,_netdev,nofail 0 0
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Verify What Is Actually Active&lt;/h2&gt;
&lt;p&gt;After mounting, validate effective options (especially negotiated &lt;code&gt;rsize/wsize&lt;/code&gt;):&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;findmnt -t nfs,nfs4
nfsstat -m
cat /proc/mounts | grep &apos; /mnt/data &apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The value in &lt;code&gt;fstab&lt;/code&gt; is your request. The effective value can differ after client/server negotiation.&lt;/p&gt;
&lt;h2&gt;Official Documentation Sources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;man 5 nfs&lt;/code&gt; (from nfs-utils package on Linux)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;man 8 mount.nfs&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;man 5 systemd.mount&lt;/code&gt; (for &lt;code&gt;x-systemd.*&lt;/code&gt;, &lt;code&gt;_netdev&lt;/code&gt;, and &lt;code&gt;nofail&lt;/code&gt; behavior)&lt;/li&gt;
&lt;li&gt;Upstream nfs-utils project: &lt;a href=&quot;https://github.com/stefanha/nfs-utils&quot;&gt;https://github.com/stefanha/nfs-utils&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Final Thoughts&lt;/h2&gt;
&lt;p&gt;If you just want a stable setup, start with:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;nas:/data /mnt/data nfs defaults,_netdev,nofail 0 0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you want stronger control over reliability and behavior under failures, your advanced line is a strong baseline, especially with &lt;code&gt;hard&lt;/code&gt;, &lt;code&gt;nofail&lt;/code&gt;, and &lt;code&gt;x-systemd.automount&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The best NFS config is not the longest one. It is the one you can explain, verify, and maintain.&lt;/p&gt;
</description><pubDate>Sat, 25 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Most people mount NFS shares with a short line and move on. That works, but if you use network storage heavily (media libraries, VMs, homelab backups, project files), your mount options directly affect reliability, boot behavior, and performance.&lt;/p&gt;
&lt;p&gt;This guide breaks down a practical high-reliability NFS option set and compares it to a basic mount setup, using Linux &lt;code&gt;nfs-utils&lt;/code&gt; mount documentation (&lt;code&gt;man 5 nfs&lt;/code&gt;) and systemd mount behavior (&lt;code&gt;man 5 systemd.mount&lt;/code&gt;).&lt;/p&gt;

&lt;h2&gt;Quick Comparison: Basic vs Tuned&lt;/h2&gt;
&lt;h3&gt;Basic fstab entry&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;nas:/data /mnt/data nfs defaults 0 0
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Tuned fstab entry (example)&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;nas:/data /mnt/data nfs nfsvers=4.1,bg,hard,nofail,noatime,rsize=1048576,wsize=1048576,timeo=600,retrans=5,x-systemd.automount,x-systemd.mount-timeout=90,_netdev 0 0
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;What changes?&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Area&lt;/th&gt;
&lt;th&gt;Basic (&lt;code&gt;defaults&lt;/code&gt;)&lt;/th&gt;
&lt;th&gt;Tuned Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;NFS protocol version&lt;/td&gt;
&lt;td&gt;Auto-negotiate&lt;/td&gt;
&lt;td&gt;Pinned to &lt;code&gt;4.1&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Failure behavior&lt;/td&gt;
&lt;td&gt;Default retry behavior&lt;/td&gt;
&lt;td&gt;Explicit &lt;code&gt;hard&lt;/code&gt; retries forever (safer for data integrity)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Boot experience&lt;/td&gt;
&lt;td&gt;May block depending on environment&lt;/td&gt;
&lt;td&gt;&lt;code&gt;nofail&lt;/code&gt; + &lt;code&gt;x-systemd.automount&lt;/code&gt; helps avoid boot hangs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Network timing&lt;/td&gt;
&lt;td&gt;Generic defaults&lt;/td&gt;
&lt;td&gt;Explicit &lt;code&gt;timeo=600,retrans=5&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Throughput tuning&lt;/td&gt;
&lt;td&gt;Negotiated defaults&lt;/td&gt;
&lt;td&gt;Forces &lt;code&gt;rsize/wsize&lt;/code&gt; up to 1 MiB cap&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Access-time writes&lt;/td&gt;
&lt;td&gt;&lt;code&gt;relatime&lt;/code&gt; typically&lt;/td&gt;
&lt;td&gt;&lt;code&gt;noatime&lt;/code&gt; to reduce metadata writes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Network ordering&lt;/td&gt;
&lt;td&gt;Auto-detected for NFS&lt;/td&gt;
&lt;td&gt;Explicit &lt;code&gt;_netdev&lt;/code&gt; dependency&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Option-by-Option Breakdown&lt;/h2&gt;
&lt;p&gt;Reference base: &lt;code&gt;man 5 nfs&lt;/code&gt; and &lt;code&gt;man 5 systemd.mount&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;&lt;code&gt;nfsvers=4.1&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What it does: Pins the client to NFSv4.1.&lt;/li&gt;
&lt;li&gt;Official behavior: Without &lt;code&gt;nfsvers&lt;/code&gt; (or &lt;code&gt;vers&lt;/code&gt;), Linux clients typically try newer NFS versions first and negotiate down.&lt;/li&gt;
&lt;li&gt;Why use it: Predictability. If server and clients are known-good on 4.1, pinning avoids surprises after updates.&lt;/li&gt;
&lt;li&gt;Tradeoff: You lose automatic use of newer protocol features (for example, if 4.2 is supported and useful).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;code&gt;bg&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What it does: If mount fails/timeouts, mount helper retries in the background.&lt;/li&gt;
&lt;li&gt;Official behavior (&lt;code&gt;nfs(5)&lt;/code&gt;): Parent returns success while child keeps retrying.&lt;/li&gt;
&lt;li&gt;systemd detail (&lt;code&gt;systemd.mount(5)&lt;/code&gt;): &lt;code&gt;systemd-fstab-generator&lt;/code&gt; translates &lt;code&gt;bg&lt;/code&gt; semantics and effectively applies behavior similar to long retries plus &lt;code&gt;fg,nofail&lt;/code&gt; handling under systemd job control.&lt;/li&gt;
&lt;li&gt;Why use it: Better boot resilience when NAS/network is slow.&lt;/li&gt;
&lt;li&gt;Tradeoff: Failure may be less obvious immediately because retries continue in background.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;code&gt;hard&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What it does: NFS operations retry indefinitely after timeout.&lt;/li&gt;
&lt;li&gt;Official behavior: &lt;code&gt;hard&lt;/code&gt; is default and strongly preferred for data integrity; &lt;code&gt;soft&lt;/code&gt; can return I/O errors and may risk silent corruption in some workflows.&lt;/li&gt;
&lt;li&gt;Why use it: Correctness and durability over convenience.&lt;/li&gt;
&lt;li&gt;Tradeoff: Apps can hang waiting for server recovery.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;code&gt;nofail&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What it does: Mount is wanted, not required, during boot.&lt;/li&gt;
&lt;li&gt;Official behavior (&lt;code&gt;systemd.mount(5)&lt;/code&gt;): Boot continues even if mount is unavailable; unit is not ordered to block boot target completion.&lt;/li&gt;
&lt;li&gt;Why use it: Prevent boot failures when NAS is down.&lt;/li&gt;
&lt;li&gt;Tradeoff: Service depending on that path may fail later unless you handle dependency checks.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;code&gt;noatime&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What it does: Disables access-time updates on reads.&lt;/li&gt;
&lt;li&gt;Why use it: Reduces metadata traffic and write amplification on busy shares.&lt;/li&gt;
&lt;li&gt;Tradeoff: Loses accurate &lt;code&gt;atime&lt;/code&gt; semantics for tools/workflows that rely on access timestamps.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;code&gt;rsize=1048576&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What it does: Sets max read request payload to 1,048,576 bytes (1 MiB).&lt;/li&gt;
&lt;li&gt;Official behavior (&lt;code&gt;nfs(5)&lt;/code&gt;): Linux NFS client max read payload is 1 MiB; unsupported values are clamped/rounded according to rules.&lt;/li&gt;
&lt;li&gt;Why use it: High-throughput sequential read workloads can benefit.&lt;/li&gt;
&lt;li&gt;Tradeoff: If network/server path can’t handle large I/O well, negotiated defaults may perform more consistently.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;code&gt;wsize=1048576&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What it does: Sets max write request payload to 1 MiB.&lt;/li&gt;
&lt;li&gt;Official behavior (&lt;code&gt;nfs(5)&lt;/code&gt;): Same cap/rounding behavior as &lt;code&gt;rsize&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Why use it: Helps throughput for large sequential writes.&lt;/li&gt;
&lt;li&gt;Tradeoff: Same caution as &lt;code&gt;rsize&lt;/code&gt;; test with your server/network.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;code&gt;timeo=600&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What it does: Sets RPC timeout in deciseconds.&lt;/li&gt;
&lt;li&gt;Official behavior (&lt;code&gt;nfs(5)&lt;/code&gt;): For TCP, &lt;code&gt;600&lt;/code&gt; means 60 seconds; TCP uses linear backoff and this value is already the standard default for TCP/RDMA.&lt;/li&gt;
&lt;li&gt;Why use it: Mainly explicitness/documentation in your &lt;code&gt;fstab&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Tradeoff: Usually redundant for TCP NFS because it matches default behavior.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;code&gt;retrans=5&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What it does: Number of retries before the client escalates recovery behavior.&lt;/li&gt;
&lt;li&gt;Official behavior (&lt;code&gt;nfs(5)&lt;/code&gt;): TCP default retry count is lower by default; with &lt;code&gt;hard&lt;/code&gt;, the client still continues broader recovery even after retry cycles.&lt;/li&gt;
&lt;li&gt;Why use it: More tolerance for transient network stalls before warning/recovery transitions.&lt;/li&gt;
&lt;li&gt;Tradeoff: Longer delay before surfacing responsiveness issues.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;code&gt;x-systemd.automount&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What it does: Creates an automount unit so the share mounts on first access rather than during early boot.&lt;/li&gt;
&lt;li&gt;Official behavior (&lt;code&gt;systemd.mount(5)&lt;/code&gt;): Generates an automount unit from &lt;code&gt;fstab&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Why use it: Excellent for laptops/desktops/homelabs where network readiness timing is inconsistent.&lt;/li&gt;
&lt;li&gt;Tradeoff: First access to the path incurs mount latency.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;code&gt;x-systemd.mount-timeout=90&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What it does: Limits how long systemd waits for mount command completion.&lt;/li&gt;
&lt;li&gt;Official behavior (&lt;code&gt;systemd.mount(5)&lt;/code&gt;): &lt;code&gt;fstab&lt;/code&gt;-only option that maps to mount job timeout behavior.&lt;/li&gt;
&lt;li&gt;Why use it: Prevents very long hangs on dead endpoints.&lt;/li&gt;
&lt;li&gt;Tradeoff: Too short a timeout can fail mounts on slow links/startup races.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;code&gt;_netdev&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What it does: Explicitly marks mount as network-dependent.&lt;/li&gt;
&lt;li&gt;Official behavior (&lt;code&gt;systemd.mount(5)&lt;/code&gt;): Pulls in network-online ordering and treats mount as remote fs.&lt;/li&gt;
&lt;li&gt;Why use it: Makes dependency intent explicit, especially in complex setups/VPN/overlay networks.&lt;/li&gt;
&lt;li&gt;Tradeoff: Usually redundant for plain NFS, but helpful for clarity and edge cases.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Final &lt;code&gt;0 0&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;First &lt;code&gt;0&lt;/code&gt;: dump backup utility field (commonly unused, usually &lt;code&gt;0&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Second &lt;code&gt;0&lt;/code&gt;: &lt;code&gt;fsck&lt;/code&gt; order. NFS is network fs and not checked via local &lt;code&gt;fsck&lt;/code&gt;, so &lt;code&gt;0&lt;/code&gt; is correct.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Is the Tuned Line Always Better?&lt;/h2&gt;
&lt;p&gt;No. A basic entry is fine for light use:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;nas:/data /mnt/data nfs defaults,_netdev,nofail 0 0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That is often enough for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Home media shares&lt;/li&gt;
&lt;li&gt;Occasional backups&lt;/li&gt;
&lt;li&gt;Non-critical personal files&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Use the tuned profile when you care about predictable behavior under failure and want stricter control over boot/mount characteristics.&lt;/p&gt;
&lt;h2&gt;Practical Recommended Profiles&lt;/h2&gt;
&lt;h3&gt;1) Balanced desktop/laptop&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;nas:/data /mnt/data nfs nfsvers=4.1,hard,nofail,_netdev,x-systemd.automount,x-systemd.mount-timeout=90 0 0
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;2) Throughput-focused LAN workstation&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;nas:/data /mnt/data nfs nfsvers=4.1,hard,noatime,rsize=1048576,wsize=1048576,timeo=600,retrans=5,_netdev,nofail 0 0
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;3) Minimal and safe&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;nas:/data /mnt/data nfs defaults,_netdev,nofail 0 0
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Verify What Is Actually Active&lt;/h2&gt;
&lt;p&gt;After mounting, validate effective options (especially negotiated &lt;code&gt;rsize/wsize&lt;/code&gt;):&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;findmnt -t nfs,nfs4
nfsstat -m
cat /proc/mounts | grep &apos; /mnt/data &apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The value in &lt;code&gt;fstab&lt;/code&gt; is your request. The effective value can differ after client/server negotiation.&lt;/p&gt;
&lt;h2&gt;Official Documentation Sources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;man 5 nfs&lt;/code&gt; (from nfs-utils package on Linux)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;man 8 mount.nfs&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;man 5 systemd.mount&lt;/code&gt; (for &lt;code&gt;x-systemd.*&lt;/code&gt;, &lt;code&gt;_netdev&lt;/code&gt;, and &lt;code&gt;nofail&lt;/code&gt; behavior)&lt;/li&gt;
&lt;li&gt;Upstream nfs-utils project: &lt;a href=&quot;https://github.com/stefanha/nfs-utils&quot;&gt;https://github.com/stefanha/nfs-utils&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Final Thoughts&lt;/h2&gt;
&lt;p&gt;If you just want a stable setup, start with:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;nas:/data /mnt/data nfs defaults,_netdev,nofail 0 0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you want stronger control over reliability and behavior under failures, your advanced line is a strong baseline, especially with &lt;code&gt;hard&lt;/code&gt;, &lt;code&gt;nofail&lt;/code&gt;, and &lt;code&gt;x-systemd.automount&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The best NFS config is not the longest one. It is the one you can explain, verify, and maintain.&lt;/p&gt;
</content:encoded></item><item><title>Top Linux Distros</title><link>https://christitus.com/top-linux-distros/</link><guid isPermaLink="true">https://christitus.com/top-linux-distros/</guid><description>&lt;p&gt;Linux is not for everyone, but for those that want to get away from the evil corporate overloads like Microsoft and Apple, Linux is a great choice. There are many different Linux distributions (distros) to choose from, each with its own unique features and benefits. In this article, we will take a look at some of the top Linux distros available in 2026.&lt;/p&gt;

&lt;p&gt;The Linux distros don&apos;t particulary matter if you know what your are doing in Linux as you can install and change ANY distro to your needs, but for a noob the starting spot is important. The distros listed below are all great choices for different types of users, whether you are a gamer, a power user, or just looking for a stable and user-friendly operating system.&lt;/p&gt;
&lt;h2&gt;Bazzite (The Noob Gamer&apos;s Choice or HTPC)&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2026/bazzite.webp&quot; alt=&quot;bazzite&quot; /&gt;&lt;/p&gt;
&lt;p&gt;If you have ask, What distro should I use? Bazzite is a great answer if you are a gamer. It is consider an &quot;Atomic&quot; desktop where you can&apos;t change the system packages, but you can configure them. This is a perfect jumping off point for new Linux users who want to get into gaming on Linux. Bazzite has a large library of games available through its own store, and it also supports Steam and other popular gaming platforms.&lt;/p&gt;
&lt;p&gt;Unique commands and features of Bazzite:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ujust&lt;/code&gt; - Main cli command for installing and managing software packages. It is a user-friendly package manager that simplifies the process of installing and updating software on Bazzite.
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ujust --choose&lt;/code&gt; will show all commands&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bazaar&lt;/code&gt; - GUI tool for installing and managing flatpak software in Bazzite. Based on &lt;a href=&quot;https://github.com/bazaar-org/bazaar&quot;&gt;https://github.com/bazaar-org/bazaar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;brew&lt;/code&gt; - Homebrew modified for bazzite - &lt;a href=&quot;https://docs.bazzite.gg/Installing_and_Managing_Software/Homebrew/&quot;&gt;https://docs.bazzite.gg/Installing_and_Managing_Software/Homebrew/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Containers from &lt;code&gt;distrobox&lt;/code&gt; and &lt;code&gt;quadlet&lt;/code&gt; - Install anything inside of a container using any package manager - &lt;a href=&quot;https://docs.bazzite.gg/Installing_and_Managing_Software/Containers/&quot;&gt;https://docs.bazzite.gg/Installing_and_Managing_Software/Containers/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;CachyOS (The Power User&apos;s Choice)&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2026/cachyos.webp&quot; alt=&quot;cachyos&quot; /&gt;&lt;/p&gt;
&lt;p&gt;CachyOS is a great choice for power users who want a stable and customizable operating system. It is based on Arch Linux and comes with a lot of pre-installed software and tools for power users. CachyOS is designed to be fast and efficient, and it has a large community of users who contribute to its development. This distro is perfect for users who want to have complete control over their system and are willing to put in the effort to learn how to use it. If you want to tinker and be on the bleeding edge, CachyOS is a great choice.&lt;/p&gt;
&lt;p&gt;Unique features of CachyOS:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Massive customization and variety of installation options (All Desktop environments and Tiling Manager configurations)&lt;/li&gt;
&lt;li&gt;Optimized kernel and packages for modern PCs. (Bazzites kernels is heavily based off CachyOS) &lt;em&gt;Note: I personally use cachy repos on Arch because of this!&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Linux Mint (The Old Man I just want it to work Choice)&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2026/mint.webp&quot; alt=&quot;mint&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Linux Mint is a great choice for users who just want a stable and user-friendly operating system. It is based on Ubuntu and comes with a lot of pre-installed software and tools for everyday use. Linux Mint has a large community of users who contribute to its development, and it is known for its ease of use and stability. This distro is perfect for users who want a simple and reliable operating system that just works without needing to tinker with it.&lt;/p&gt;
&lt;p&gt;Unique features of Linux Mint:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Easy to use and user-friendly interface - Drop in replacement for most Windows users to get started and not overwhelmed&lt;/li&gt;
&lt;li&gt;Stability and reliability - Linux Mint is known for its stability and reliability, making it a great choice for users who want a system that just works without needing to tinker with it.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Arch Linux (For when you ascend and no longer need distros)&lt;/h2&gt;
&lt;p&gt;Arch Linux is when you truly elevate into the elites of the world. You have made it and you are making your own thing that no one else has or can achieve. You transend the mortal realm and become a god.&lt;/p&gt;
&lt;p&gt;This has been my home for over 2 years and I can&apos;t see myself using any other distro at this point. Sooo many projects are based on it and it is perfect for those that want the bleeding edge and really want to learn how Linux works. Arch is a great choice for users who want complete control over their system and are willing to put in the effort to learn how to use it. It has a large community of users who contribute to its development, and it is known for its simplicity and elegance.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Picking a distro is simply a starting spot, and you can change it to your needs. All the above distros are based on only 3 mainline distributions (Arch, Fedora, and Debian/Ubuntu) and you can change any of them to your needs. The distros listed above are all great choices for different types of users, whether you are a gamer, a power user, or just looking for a stable and user-friendly operating system. Ultimately, the best Linux distro for you will be the one you customize to your preferences and needs. You must figure out what you like about Linux and if it will suit your needs. If you just want to use Microsoft Office, Adobe PDF, and play games, use Windows.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/hnNjFysodRo&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Thu, 23 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Linux is not for everyone, but for those that want to get away from the evil corporate overloads like Microsoft and Apple, Linux is a great choice. There are many different Linux distributions (distros) to choose from, each with its own unique features and benefits. In this article, we will take a look at some of the top Linux distros available in 2026.&lt;/p&gt;

&lt;p&gt;The Linux distros don&apos;t particulary matter if you know what your are doing in Linux as you can install and change ANY distro to your needs, but for a noob the starting spot is important. The distros listed below are all great choices for different types of users, whether you are a gamer, a power user, or just looking for a stable and user-friendly operating system.&lt;/p&gt;
&lt;h2&gt;Bazzite (The Noob Gamer&apos;s Choice or HTPC)&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2026/bazzite.webp&quot; alt=&quot;bazzite&quot; /&gt;&lt;/p&gt;
&lt;p&gt;If you have ask, What distro should I use? Bazzite is a great answer if you are a gamer. It is consider an &quot;Atomic&quot; desktop where you can&apos;t change the system packages, but you can configure them. This is a perfect jumping off point for new Linux users who want to get into gaming on Linux. Bazzite has a large library of games available through its own store, and it also supports Steam and other popular gaming platforms.&lt;/p&gt;
&lt;p&gt;Unique commands and features of Bazzite:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ujust&lt;/code&gt; - Main cli command for installing and managing software packages. It is a user-friendly package manager that simplifies the process of installing and updating software on Bazzite.
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ujust --choose&lt;/code&gt; will show all commands&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bazaar&lt;/code&gt; - GUI tool for installing and managing flatpak software in Bazzite. Based on &lt;a href=&quot;https://github.com/bazaar-org/bazaar&quot;&gt;https://github.com/bazaar-org/bazaar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;brew&lt;/code&gt; - Homebrew modified for bazzite - &lt;a href=&quot;https://docs.bazzite.gg/Installing_and_Managing_Software/Homebrew/&quot;&gt;https://docs.bazzite.gg/Installing_and_Managing_Software/Homebrew/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Containers from &lt;code&gt;distrobox&lt;/code&gt; and &lt;code&gt;quadlet&lt;/code&gt; - Install anything inside of a container using any package manager - &lt;a href=&quot;https://docs.bazzite.gg/Installing_and_Managing_Software/Containers/&quot;&gt;https://docs.bazzite.gg/Installing_and_Managing_Software/Containers/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;CachyOS (The Power User&apos;s Choice)&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2026/cachyos.webp&quot; alt=&quot;cachyos&quot; /&gt;&lt;/p&gt;
&lt;p&gt;CachyOS is a great choice for power users who want a stable and customizable operating system. It is based on Arch Linux and comes with a lot of pre-installed software and tools for power users. CachyOS is designed to be fast and efficient, and it has a large community of users who contribute to its development. This distro is perfect for users who want to have complete control over their system and are willing to put in the effort to learn how to use it. If you want to tinker and be on the bleeding edge, CachyOS is a great choice.&lt;/p&gt;
&lt;p&gt;Unique features of CachyOS:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Massive customization and variety of installation options (All Desktop environments and Tiling Manager configurations)&lt;/li&gt;
&lt;li&gt;Optimized kernel and packages for modern PCs. (Bazzites kernels is heavily based off CachyOS) &lt;em&gt;Note: I personally use cachy repos on Arch because of this!&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Linux Mint (The Old Man I just want it to work Choice)&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2026/mint.webp&quot; alt=&quot;mint&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Linux Mint is a great choice for users who just want a stable and user-friendly operating system. It is based on Ubuntu and comes with a lot of pre-installed software and tools for everyday use. Linux Mint has a large community of users who contribute to its development, and it is known for its ease of use and stability. This distro is perfect for users who want a simple and reliable operating system that just works without needing to tinker with it.&lt;/p&gt;
&lt;p&gt;Unique features of Linux Mint:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Easy to use and user-friendly interface - Drop in replacement for most Windows users to get started and not overwhelmed&lt;/li&gt;
&lt;li&gt;Stability and reliability - Linux Mint is known for its stability and reliability, making it a great choice for users who want a system that just works without needing to tinker with it.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Arch Linux (For when you ascend and no longer need distros)&lt;/h2&gt;
&lt;p&gt;Arch Linux is when you truly elevate into the elites of the world. You have made it and you are making your own thing that no one else has or can achieve. You transend the mortal realm and become a god.&lt;/p&gt;
&lt;p&gt;This has been my home for over 2 years and I can&apos;t see myself using any other distro at this point. Sooo many projects are based on it and it is perfect for those that want the bleeding edge and really want to learn how Linux works. Arch is a great choice for users who want complete control over their system and are willing to put in the effort to learn how to use it. It has a large community of users who contribute to its development, and it is known for its simplicity and elegance.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Picking a distro is simply a starting spot, and you can change it to your needs. All the above distros are based on only 3 mainline distributions (Arch, Fedora, and Debian/Ubuntu) and you can change any of them to your needs. The distros listed above are all great choices for different types of users, whether you are a gamer, a power user, or just looking for a stable and user-friendly operating system. Ultimately, the best Linux distro for you will be the one you customize to your preferences and needs. You must figure out what you like about Linux and if it will suit your needs. If you just want to use Microsoft Office, Adobe PDF, and play games, use Windows.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/hnNjFysodRo&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Why You Should Avoid Pop!_OS 24.04 Right Now</title><link>https://christitus.com/stop-using-pop-os-cosmic/</link><guid isPermaLink="true">https://christitus.com/stop-using-pop-os-cosmic/</guid><description>&lt;p&gt;If you are looking for a Linux distro that is stable, predictable, and easy to recommend to normal people, Pop!_OS 24.04 is not it. The main reason is simple: System76 launched it with COSMIC in beta. That one decision turns what should have been a safe long-term support release into a moving target.&lt;/p&gt;
&lt;p&gt;For a lab machine, a spare laptop, or someone who enjoys testing unfinished software, that might be fine. For everyone else, especially new Linux users, that is a terrible trade. An LTS release is supposed to be the version you install when you want fewer surprises, not more.&lt;/p&gt;

&lt;h2&gt;The Real Problem&lt;/h2&gt;
&lt;p&gt;System76 has been building COSMIC as its own desktop environment, and on paper that sounds great. More competition in Linux desktop development is a good thing. The problem is not that COSMIC exists. The problem is that Pop!_OS 24.04 ships a beta desktop on top of an Ubuntu LTS base and then expects users to treat it like a dependable daily driver.&lt;/p&gt;
&lt;p&gt;That creates a mismatch in expectations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;People hear &quot;24.04&quot; and &quot;LTS&quot; and expect stability.&lt;/li&gt;
&lt;li&gt;People buy System76 hardware and expect the software to be polished.&lt;/li&gt;
&lt;li&gt;New Linux users hear Pop!_OS recommended and assume it is a safe starting point.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Right now, those assumptions are wrong.&lt;/p&gt;
&lt;h2&gt;Why A Beta Desktop On LTS Is A Bad Idea&lt;/h2&gt;
&lt;p&gt;Long-term support releases exist for one reason: reliability. You choose them because you want to install once and stop thinking about the desktop breaking every few days. If the desktop shell itself is still behaving like a public test build, the LTS label does not mean much to the end user.&lt;/p&gt;
&lt;p&gt;When the desktop environment is unstable, every basic task becomes suspect:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Logging in&lt;/li&gt;
&lt;li&gt;Managing windows and workspaces&lt;/li&gt;
&lt;li&gt;Resuming from sleep&lt;/li&gt;
&lt;li&gt;Audio controls&lt;/li&gt;
&lt;li&gt;GPU acceleration&lt;/li&gt;
&lt;li&gt;Multi-monitor behavior&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That is not a small issue. The desktop environment is the operating system experience for most users. If it leaks memory, crashes, or has broken display handling, then the distro does not feel reliable no matter how solid the base packages are underneath.&lt;/p&gt;
&lt;h2&gt;The Bugs Are Not Edge Cases&lt;/h2&gt;
&lt;p&gt;This is not just a complaint about a rough animation or a missing setting. The issue tracker has repeated reports of serious bugs that affect day-to-day use.&lt;/p&gt;
&lt;h3&gt;Memory Leaks And Stability Problems&lt;/h3&gt;
&lt;p&gt;There are multiple reports around runaway memory usage and general instability:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pop-os/cosmic-epoch/issues/2122&quot;&gt;https://github.com/pop-os/cosmic-epoch/issues/2122&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pop-os/cosmic-epoch/issues/3224&quot;&gt;https://github.com/pop-os/cosmic-epoch/issues/3224&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pop-os/cosmic-epoch/issues/2920&quot;&gt;https://github.com/pop-os/cosmic-epoch/issues/2920&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pop-os/cosmic-epoch/issues/2013&quot;&gt;https://github.com/pop-os/cosmic-epoch/issues/2013&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pop-os/cosmic-epoch/issues/1591&quot;&gt;https://github.com/pop-os/cosmic-epoch/issues/1591&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If your desktop session gradually eats RAM or becomes unstable over time, that is not a tiny annoyance. That is the kind of bug that makes a machine feel unreliable even when you are doing basic work like browsing, coding, or streaming.&lt;/p&gt;
&lt;h3&gt;GPU And Display Problems&lt;/h3&gt;
&lt;p&gt;Linux desktop success lives and dies on display handling. If monitors flicker, GPU acceleration breaks, or NVIDIA systems act up, many users are done immediately. There are active reports covering those areas too:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pop-os/cosmic-epoch/issues/3270&quot;&gt;https://github.com/pop-os/cosmic-epoch/issues/3270&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pop-os/cosmic-epoch/issues/3249&quot;&gt;https://github.com/pop-os/cosmic-epoch/issues/3249&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This matters because Pop!_OS has historically been recommended to people specifically because it handled hardware reasonably well. If the new desktop introduces display instability, that recommendation gets a lot harder to defend.&lt;/p&gt;
&lt;h3&gt;Audio And Volume Bugs&lt;/h3&gt;
&lt;p&gt;Audio problems are another instant deal-breaker for normal users. When volume controls misbehave or sound routing becomes inconsistent, people do not care that the desktop is &quot;still improving.&quot; They just think Linux is broken.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pop-os/cosmic-epoch/issues/3074&quot;&gt;https://github.com/pop-os/cosmic-epoch/issues/3074&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pop-os/cosmic-epoch/issues/3094&quot;&gt;https://github.com/pop-os/cosmic-epoch/issues/3094&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pop-os/cosmic-epoch/issues/3026&quot;&gt;https://github.com/pop-os/cosmic-epoch/issues/3026&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Again, this is the exact category of bug that should not be front and center on something positioned like a polished desktop OS.&lt;/p&gt;
&lt;h2&gt;Why This Is Worse For New Linux Users&lt;/h2&gt;
&lt;p&gt;Experienced Linux users can work around a lot. They can drop to a TTY, restart services, swap desktop environments, inspect logs, and recover from bad updates. New users cannot. They install a distro, hit three broken behaviors in a week, and conclude that Linux desktop is not ready.&lt;/p&gt;
&lt;p&gt;That is why I have a problem with Pop!_OS 24.04 in its current state. It is not just rough for enthusiasts. It is actively risky as a recommendation to beginners because beginners are the exact people who are most likely to trust the branding around an LTS release.&lt;/p&gt;
&lt;p&gt;If you hand a new user a distro with a beta desktop, you are not giving them a stable introduction to Linux. You are turning them into a tester whether they agreed to that or not.&lt;/p&gt;
&lt;h2&gt;Who Should Skip Pop!_OS 24.04&lt;/h2&gt;
&lt;p&gt;I would avoid Pop!_OS 24.04 right now if you are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;New to Linux&lt;/li&gt;
&lt;li&gt;Installing on your main work machine&lt;/li&gt;
&lt;li&gt;Using NVIDIA hardware and want the least drama possible&lt;/li&gt;
&lt;li&gt;Buying a laptop because you just want it to work&lt;/li&gt;
&lt;li&gt;Recommending a distro to friends or family&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In all of those cases, stability matters more than novelty.&lt;/p&gt;
&lt;h2&gt;Who Might Still Want It&lt;/h2&gt;
&lt;p&gt;There is still a small group of people who may want to run it anyway:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Users who specifically want to test COSMIC&lt;/li&gt;
&lt;li&gt;People filing bug reports and helping development&lt;/li&gt;
&lt;li&gt;Tinkerers with a backup machine&lt;/li&gt;
&lt;li&gt;Anyone who understands they are effectively running beta desktop software&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That is a valid use case. But that is a tester profile, not a mainstream recommendation.&lt;/p&gt;
&lt;h2&gt;Better Options Right Now&lt;/h2&gt;
&lt;p&gt;If your goal is a dependable Linux desktop in 2026, I would point most people somewhere else until COSMIC matures.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Linux Mint if you want conservative and easy&lt;/li&gt;
&lt;li&gt;Fedora if you want modern without chasing a beta desktop shell&lt;/li&gt;
&lt;li&gt;Ubuntu LTS if you want broad support and predictable behavior&lt;/li&gt;
&lt;li&gt;Bazzite if your focus is gaming and you want a more curated experience&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;None of these are perfect, but they are easier to recommend to normal users than a distro shipping a beta desktop as its headline feature.&lt;/p&gt;
&lt;h2&gt;Final Thoughts&lt;/h2&gt;
&lt;p&gt;System76 makes interesting hardware, and I want COSMIC to succeed eventually. But wanting a project to succeed is not the same thing as pretending it is ready.&lt;/p&gt;
&lt;p&gt;Pop!_OS 24.04 asks users to trust an LTS release while tying that release to a desktop environment that still shows beta-level problems. That is the wrong move for a distro that many people see as a safe recommendation.&lt;/p&gt;
&lt;p&gt;So the simple advice is this: if you want a stable Linux desktop today, skip Pop!_OS 24.04 for now. Revisit it later when COSMIC is out of beta, the major issues are ironed out, and the operating system earns the reliability that an LTS label is supposed to promise.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/MwZq2_J_lSY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 20 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;If you are looking for a Linux distro that is stable, predictable, and easy to recommend to normal people, Pop!_OS 24.04 is not it. The main reason is simple: System76 launched it with COSMIC in beta. That one decision turns what should have been a safe long-term support release into a moving target.&lt;/p&gt;
&lt;p&gt;For a lab machine, a spare laptop, or someone who enjoys testing unfinished software, that might be fine. For everyone else, especially new Linux users, that is a terrible trade. An LTS release is supposed to be the version you install when you want fewer surprises, not more.&lt;/p&gt;

&lt;h2&gt;The Real Problem&lt;/h2&gt;
&lt;p&gt;System76 has been building COSMIC as its own desktop environment, and on paper that sounds great. More competition in Linux desktop development is a good thing. The problem is not that COSMIC exists. The problem is that Pop!_OS 24.04 ships a beta desktop on top of an Ubuntu LTS base and then expects users to treat it like a dependable daily driver.&lt;/p&gt;
&lt;p&gt;That creates a mismatch in expectations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;People hear &quot;24.04&quot; and &quot;LTS&quot; and expect stability.&lt;/li&gt;
&lt;li&gt;People buy System76 hardware and expect the software to be polished.&lt;/li&gt;
&lt;li&gt;New Linux users hear Pop!_OS recommended and assume it is a safe starting point.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Right now, those assumptions are wrong.&lt;/p&gt;
&lt;h2&gt;Why A Beta Desktop On LTS Is A Bad Idea&lt;/h2&gt;
&lt;p&gt;Long-term support releases exist for one reason: reliability. You choose them because you want to install once and stop thinking about the desktop breaking every few days. If the desktop shell itself is still behaving like a public test build, the LTS label does not mean much to the end user.&lt;/p&gt;
&lt;p&gt;When the desktop environment is unstable, every basic task becomes suspect:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Logging in&lt;/li&gt;
&lt;li&gt;Managing windows and workspaces&lt;/li&gt;
&lt;li&gt;Resuming from sleep&lt;/li&gt;
&lt;li&gt;Audio controls&lt;/li&gt;
&lt;li&gt;GPU acceleration&lt;/li&gt;
&lt;li&gt;Multi-monitor behavior&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That is not a small issue. The desktop environment is the operating system experience for most users. If it leaks memory, crashes, or has broken display handling, then the distro does not feel reliable no matter how solid the base packages are underneath.&lt;/p&gt;
&lt;h2&gt;The Bugs Are Not Edge Cases&lt;/h2&gt;
&lt;p&gt;This is not just a complaint about a rough animation or a missing setting. The issue tracker has repeated reports of serious bugs that affect day-to-day use.&lt;/p&gt;
&lt;h3&gt;Memory Leaks And Stability Problems&lt;/h3&gt;
&lt;p&gt;There are multiple reports around runaway memory usage and general instability:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pop-os/cosmic-epoch/issues/2122&quot;&gt;https://github.com/pop-os/cosmic-epoch/issues/2122&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pop-os/cosmic-epoch/issues/3224&quot;&gt;https://github.com/pop-os/cosmic-epoch/issues/3224&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pop-os/cosmic-epoch/issues/2920&quot;&gt;https://github.com/pop-os/cosmic-epoch/issues/2920&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pop-os/cosmic-epoch/issues/2013&quot;&gt;https://github.com/pop-os/cosmic-epoch/issues/2013&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pop-os/cosmic-epoch/issues/1591&quot;&gt;https://github.com/pop-os/cosmic-epoch/issues/1591&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If your desktop session gradually eats RAM or becomes unstable over time, that is not a tiny annoyance. That is the kind of bug that makes a machine feel unreliable even when you are doing basic work like browsing, coding, or streaming.&lt;/p&gt;
&lt;h3&gt;GPU And Display Problems&lt;/h3&gt;
&lt;p&gt;Linux desktop success lives and dies on display handling. If monitors flicker, GPU acceleration breaks, or NVIDIA systems act up, many users are done immediately. There are active reports covering those areas too:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pop-os/cosmic-epoch/issues/3270&quot;&gt;https://github.com/pop-os/cosmic-epoch/issues/3270&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pop-os/cosmic-epoch/issues/3249&quot;&gt;https://github.com/pop-os/cosmic-epoch/issues/3249&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This matters because Pop!_OS has historically been recommended to people specifically because it handled hardware reasonably well. If the new desktop introduces display instability, that recommendation gets a lot harder to defend.&lt;/p&gt;
&lt;h3&gt;Audio And Volume Bugs&lt;/h3&gt;
&lt;p&gt;Audio problems are another instant deal-breaker for normal users. When volume controls misbehave or sound routing becomes inconsistent, people do not care that the desktop is &quot;still improving.&quot; They just think Linux is broken.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pop-os/cosmic-epoch/issues/3074&quot;&gt;https://github.com/pop-os/cosmic-epoch/issues/3074&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pop-os/cosmic-epoch/issues/3094&quot;&gt;https://github.com/pop-os/cosmic-epoch/issues/3094&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pop-os/cosmic-epoch/issues/3026&quot;&gt;https://github.com/pop-os/cosmic-epoch/issues/3026&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Again, this is the exact category of bug that should not be front and center on something positioned like a polished desktop OS.&lt;/p&gt;
&lt;h2&gt;Why This Is Worse For New Linux Users&lt;/h2&gt;
&lt;p&gt;Experienced Linux users can work around a lot. They can drop to a TTY, restart services, swap desktop environments, inspect logs, and recover from bad updates. New users cannot. They install a distro, hit three broken behaviors in a week, and conclude that Linux desktop is not ready.&lt;/p&gt;
&lt;p&gt;That is why I have a problem with Pop!_OS 24.04 in its current state. It is not just rough for enthusiasts. It is actively risky as a recommendation to beginners because beginners are the exact people who are most likely to trust the branding around an LTS release.&lt;/p&gt;
&lt;p&gt;If you hand a new user a distro with a beta desktop, you are not giving them a stable introduction to Linux. You are turning them into a tester whether they agreed to that or not.&lt;/p&gt;
&lt;h2&gt;Who Should Skip Pop!_OS 24.04&lt;/h2&gt;
&lt;p&gt;I would avoid Pop!_OS 24.04 right now if you are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;New to Linux&lt;/li&gt;
&lt;li&gt;Installing on your main work machine&lt;/li&gt;
&lt;li&gt;Using NVIDIA hardware and want the least drama possible&lt;/li&gt;
&lt;li&gt;Buying a laptop because you just want it to work&lt;/li&gt;
&lt;li&gt;Recommending a distro to friends or family&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In all of those cases, stability matters more than novelty.&lt;/p&gt;
&lt;h2&gt;Who Might Still Want It&lt;/h2&gt;
&lt;p&gt;There is still a small group of people who may want to run it anyway:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Users who specifically want to test COSMIC&lt;/li&gt;
&lt;li&gt;People filing bug reports and helping development&lt;/li&gt;
&lt;li&gt;Tinkerers with a backup machine&lt;/li&gt;
&lt;li&gt;Anyone who understands they are effectively running beta desktop software&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That is a valid use case. But that is a tester profile, not a mainstream recommendation.&lt;/p&gt;
&lt;h2&gt;Better Options Right Now&lt;/h2&gt;
&lt;p&gt;If your goal is a dependable Linux desktop in 2026, I would point most people somewhere else until COSMIC matures.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Linux Mint if you want conservative and easy&lt;/li&gt;
&lt;li&gt;Fedora if you want modern without chasing a beta desktop shell&lt;/li&gt;
&lt;li&gt;Ubuntu LTS if you want broad support and predictable behavior&lt;/li&gt;
&lt;li&gt;Bazzite if your focus is gaming and you want a more curated experience&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;None of these are perfect, but they are easier to recommend to normal users than a distro shipping a beta desktop as its headline feature.&lt;/p&gt;
&lt;h2&gt;Final Thoughts&lt;/h2&gt;
&lt;p&gt;System76 makes interesting hardware, and I want COSMIC to succeed eventually. But wanting a project to succeed is not the same thing as pretending it is ready.&lt;/p&gt;
&lt;p&gt;Pop!_OS 24.04 asks users to trust an LTS release while tying that release to a desktop environment that still shows beta-level problems. That is the wrong move for a distro that many people see as a safe recommendation.&lt;/p&gt;
&lt;p&gt;So the simple advice is this: if you want a stable Linux desktop today, skip Pop!_OS 24.04 for now. Revisit it later when COSMIC is out of beta, the major issues are ironed out, and the operating system earns the reliability that an LTS label is supposed to promise.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/MwZq2_J_lSY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Securing Your Network: A Comprehensive Guide to Checking and Enhancing Network Security</title><link>https://christitus.com/check-network-security/</link><guid isPermaLink="true">https://christitus.com/check-network-security/</guid><description>&lt;p&gt;This article explains how to check to see if your network is secure, and if you have any open ports or services that could be vulnerable to attack. It covers both Windows and Linux operating systems, and provides step-by-step instructions for using various tools to scan your network for vulnerabilities.&lt;/p&gt;

&lt;h2&gt;Basic Network Scan&lt;/h2&gt;
&lt;p&gt;To check your network you can use &lt;a href=&quot;http://grc.com&quot;&gt;grc.com&lt;/a&gt; to perform a basic network scan. It will show if you have any open ports or services that could be exposed to the internet. You can also use tools like Nmap or Wireshark to perform more in-depth scans and analysis of your network traffic.&lt;/p&gt;
&lt;p&gt;GRC&apos;s ShieldsUP! service is a popular tool for checking the security of your network. It tests for open ports and vulnerabilities that could be exploited by attackers. You can access it at &lt;a href=&quot;https://www.grc.com/shieldsup&quot;&gt;https://www.grc.com/shieldsup&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: You should see something like this below&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2026/grc.webp&quot; alt=&quot;grc&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Windows Scan&lt;/h3&gt;
&lt;p&gt;On Windows, you can use the built-in Command Prompt or PowerShell to check for open ports. The &lt;code&gt;netstat&lt;/code&gt; command is commonly used for this purpose. Open Command Prompt and run the following command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;netstat -an
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This will display a list of all active connections and listening ports on your system. Look for any entries that show &quot;LISTENING&quot; to identify open ports.&lt;/p&gt;
&lt;h3&gt;Linux Scan&lt;/h3&gt;
&lt;p&gt;On Linux, you can use the &lt;code&gt;netstat&lt;/code&gt; command as well, or you can use &lt;code&gt;ss&lt;/code&gt; which is a more modern tool. Open a terminal and run the following command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo netstat -tuln
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: netstat package is in the net-tools package, which may not be installed by default on some Linux distributions. You can install it using your package manager (e.g., &lt;code&gt;sudo apt install net-tools&lt;/code&gt; on Debian-based systems).&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Newer Systems use &lt;code&gt;ss&lt;/code&gt; instead of &lt;code&gt;netstat&lt;/code&gt;. You can run the following command to check for open ports:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo ss -tuln
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This will show you all the TCP and UDP ports that are currently listening on your system. Look for any entries that indicate open ports.&lt;/p&gt;
&lt;h3&gt;Check for Outside Addresses&lt;/h3&gt;
&lt;p&gt;From your netstat or ss output, you can identify any external IP addresses that are connected to your system. This can help you detect unauthorized access or potential security threats.&lt;/p&gt;
&lt;h3&gt;Find what is Running on the Open Ports&lt;/h3&gt;
&lt;p&gt;Windows:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# PowerShell — replace 8080 with your port
netstat -ano | findstr :8080

# Then look up the PID
tasklist | findstr &amp;lt;PID&amp;gt;

# PowerShell one-liner (shows process name directly)
Get-Process -Id (Get-NetTCPConnection -LocalPort 8080).OwningProcess
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Linux:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# ss (modern, preferred)
ss -tulnp | grep :8080

# netstat (older systems)
netstat -tulnp | grep :8080

# lsof — shows process name + PID
lsof -i :8080

# fuser — just the PID
fuser 8080/tcp
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Securing a Network&lt;/h2&gt;
&lt;h3&gt;Routers&lt;/h3&gt;
&lt;p&gt;If you are using a router your ISP provided, I&apos;d recommend getting something like a Ubiquiti unifi gateway or a pfSense box. These devices provide better security features and allow you to have more control over your network. You can set up firewalls, VPNs, and other security measures to protect your network from potential threats.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ubiquiti = easy to setup and manage but expensive&lt;/li&gt;
&lt;li&gt;pfSense = more complex to setup and manage but much cheaper with build your own hardware setups. Or buy a pre-built appliance from Netgate.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Other 3rd party routers like Asus, TP-Link, etc. can be decent but they often have security vulnerabilities and may not receive regular updates. They probably are better than the ISP provided router but I would recommend going with a more reputable brand if you want better security.&lt;/p&gt;
&lt;p&gt;Resources for pfSense:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/playlist?list=PLjGQNuuUzvmsuXCoj6g6vm1N-ZeLJso6o&quot;&gt;Lawerence PC Security&apos;s pfSense Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.netgate.com/pfsense/en/latest/&quot;&gt;Netgate&apos;s pfSense Documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Firewall&lt;/h3&gt;
&lt;p&gt;DO NOT buy a firewall or internet suite... they are terrible.&lt;/p&gt;
&lt;p&gt;Check your windows firewall with &lt;code&gt;wf.msc&lt;/code&gt; and make sure it is enabled and properly configured. You can create rules to block incoming connections on specific ports or from specific IP addresses.&lt;/p&gt;
&lt;p&gt;For linux I&apos;d recommned using &lt;code&gt;ufw&lt;/code&gt; (Uncomplicated Firewall) which is a user-friendly interface for managing iptables. You can enable it with the following commands:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;or configure with a gui like &lt;code&gt;gufw&lt;/code&gt; or &lt;code&gt;firewall-config&lt;/code&gt; depending on your linux distribution.&lt;/p&gt;
&lt;h4&gt;3rd Party Firewall Software&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;App&lt;/th&gt;
&lt;th&gt;Platform&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Link&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;simplewall&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://img.shields.io/badge/Windows-0078D4?logo=windows&amp;amp;logoColor=white&quot; alt=&quot;Windows&quot; /&gt;&lt;/td&gt;
&lt;td&gt;Lightweight WFP-based per-app firewall, no background service required&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/henrypp/simplewall&quot;&gt;github.com/henrypp/simplewall&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Windows Firewall Control (WFC)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://img.shields.io/badge/Windows-0078D4?logo=windows&amp;amp;logoColor=white&quot; alt=&quot;Windows&quot; /&gt;&lt;/td&gt;
&lt;td&gt;GUI front-end for the built-in Windows Firewall by Malwarebytes, free tier available&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://www.binisoft.org/wfc&quot;&gt;binisoft.org/wfc&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;TinyWall&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://img.shields.io/badge/Windows-0078D4?logo=windows&amp;amp;logoColor=white&quot; alt=&quot;Windows&quot; /&gt;&lt;/td&gt;
&lt;td&gt;Lightweight wrapper around Windows Firewall, whitelist-based, very low resource usage&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://tinywall.pados.hu&quot;&gt;tinywall.pados.hu&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;OpenSnitch&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://img.shields.io/badge/Linux-FCC624?logo=linux&amp;amp;logoColor=black&quot; alt=&quot;Linux&quot; /&gt; &lt;img src=&quot;https://img.shields.io/badge/Windows-0078D4?logo=windows&amp;amp;logoColor=white&quot; alt=&quot;Windows&quot; /&gt;&lt;/td&gt;
&lt;td&gt;Application-level outbound firewall, prompts on first connection per app&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/evilsocket/opensnitch&quot;&gt;github.com/evilsocket/opensnitch&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ufw / gufw&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://img.shields.io/badge/Linux-FCC624?logo=linux&amp;amp;logoColor=black&quot; alt=&quot;Linux&quot; /&gt;&lt;/td&gt;
&lt;td&gt;Uncomplicated Firewall with optional GUI, default on many distros&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://launchpad.net/ufw&quot;&gt;launchpad.net/ufw&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;firewalld&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://img.shields.io/badge/Linux-FCC624?logo=linux&amp;amp;logoColor=black&quot; alt=&quot;Linux&quot; /&gt;&lt;/td&gt;
&lt;td&gt;Dynamic firewall manager used on Fedora/RHEL/Arch, supports zones&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://firewalld.org&quot;&gt;firewalld.org&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;VPN&lt;/h3&gt;
&lt;p&gt;VPN is a bandaid and can fix some issues but it is not a replacement for proper network security. It can help protect your data from being intercepted by encrypting your internet traffic, but it does not protect you from vulnerabilities in your network or devices. If you have a VPN, make sure to use a reputable provider.&lt;/p&gt;
&lt;p&gt;All &quot;security&quot; influencers pushing VPNs are just trying to make a quick buck. A VPN can be useful in certain situations, but it is not a silver bullet for network security. Focus on securing your network and devices first, and use a VPN as an additional layer of protection if needed.&lt;/p&gt;
&lt;h2&gt;Check Devices on Your Network&lt;/h2&gt;
&lt;p&gt;You need to login to your router and check the list of connected devices. This will show you all the devices that are currently connected to your network, including their IP addresses and MAC addresses. Look for any devices that you do not recognize or that should not be on your network. If you find any suspicious devices, you can block them from accessing your network through your router&apos;s settings.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ABOVE IS ACTIVE PROTECTION AND YOU MUST KEEP DOING IT TO MAINTAIN SECURITY&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Other than above, you can use software like Angry IP Scanner or Advanced IP Scanner to scan your network for connected devices. These tools will show you all the devices that are currently connected to your network, along with their IP addresses and other information. You can use this information to identify any unauthorized devices and take action to secure your network.&lt;/p&gt;
&lt;p&gt;Links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://angryip.org/&quot;&gt;Angry IP Scanner&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.advanced-ip-scanner.com/&quot;&gt;Advanced IP Scanner&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Closing Thoughts&lt;/h2&gt;
&lt;p&gt;Security is a journey, not a destination. You need to continuously monitor and maintain your network security to protect yourself from potential threats. Regularly check for open ports, update your software and firmware, and be vigilant about any suspicious activity on your network. By taking these steps, you can help ensure that your network remains secure and protected from potential attacks.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/n7cjd5E_nsc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This article explains how to check to see if your network is secure, and if you have any open ports or services that could be vulnerable to attack. It covers both Windows and Linux operating systems, and provides step-by-step instructions for using various tools to scan your network for vulnerabilities.&lt;/p&gt;

&lt;h2&gt;Basic Network Scan&lt;/h2&gt;
&lt;p&gt;To check your network you can use &lt;a href=&quot;http://grc.com&quot;&gt;grc.com&lt;/a&gt; to perform a basic network scan. It will show if you have any open ports or services that could be exposed to the internet. You can also use tools like Nmap or Wireshark to perform more in-depth scans and analysis of your network traffic.&lt;/p&gt;
&lt;p&gt;GRC&apos;s ShieldsUP! service is a popular tool for checking the security of your network. It tests for open ports and vulnerabilities that could be exploited by attackers. You can access it at &lt;a href=&quot;https://www.grc.com/shieldsup&quot;&gt;https://www.grc.com/shieldsup&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: You should see something like this below&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2026/grc.webp&quot; alt=&quot;grc&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Windows Scan&lt;/h3&gt;
&lt;p&gt;On Windows, you can use the built-in Command Prompt or PowerShell to check for open ports. The &lt;code&gt;netstat&lt;/code&gt; command is commonly used for this purpose. Open Command Prompt and run the following command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;netstat -an
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This will display a list of all active connections and listening ports on your system. Look for any entries that show &quot;LISTENING&quot; to identify open ports.&lt;/p&gt;
&lt;h3&gt;Linux Scan&lt;/h3&gt;
&lt;p&gt;On Linux, you can use the &lt;code&gt;netstat&lt;/code&gt; command as well, or you can use &lt;code&gt;ss&lt;/code&gt; which is a more modern tool. Open a terminal and run the following command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo netstat -tuln
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: netstat package is in the net-tools package, which may not be installed by default on some Linux distributions. You can install it using your package manager (e.g., &lt;code&gt;sudo apt install net-tools&lt;/code&gt; on Debian-based systems).&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Newer Systems use &lt;code&gt;ss&lt;/code&gt; instead of &lt;code&gt;netstat&lt;/code&gt;. You can run the following command to check for open ports:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo ss -tuln
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This will show you all the TCP and UDP ports that are currently listening on your system. Look for any entries that indicate open ports.&lt;/p&gt;
&lt;h3&gt;Check for Outside Addresses&lt;/h3&gt;
&lt;p&gt;From your netstat or ss output, you can identify any external IP addresses that are connected to your system. This can help you detect unauthorized access or potential security threats.&lt;/p&gt;
&lt;h3&gt;Find what is Running on the Open Ports&lt;/h3&gt;
&lt;p&gt;Windows:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# PowerShell — replace 8080 with your port
netstat -ano | findstr :8080

# Then look up the PID
tasklist | findstr &amp;lt;PID&amp;gt;

# PowerShell one-liner (shows process name directly)
Get-Process -Id (Get-NetTCPConnection -LocalPort 8080).OwningProcess
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Linux:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# ss (modern, preferred)
ss -tulnp | grep :8080

# netstat (older systems)
netstat -tulnp | grep :8080

# lsof — shows process name + PID
lsof -i :8080

# fuser — just the PID
fuser 8080/tcp
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Securing a Network&lt;/h2&gt;
&lt;h3&gt;Routers&lt;/h3&gt;
&lt;p&gt;If you are using a router your ISP provided, I&apos;d recommend getting something like a Ubiquiti unifi gateway or a pfSense box. These devices provide better security features and allow you to have more control over your network. You can set up firewalls, VPNs, and other security measures to protect your network from potential threats.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ubiquiti = easy to setup and manage but expensive&lt;/li&gt;
&lt;li&gt;pfSense = more complex to setup and manage but much cheaper with build your own hardware setups. Or buy a pre-built appliance from Netgate.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Other 3rd party routers like Asus, TP-Link, etc. can be decent but they often have security vulnerabilities and may not receive regular updates. They probably are better than the ISP provided router but I would recommend going with a more reputable brand if you want better security.&lt;/p&gt;
&lt;p&gt;Resources for pfSense:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/playlist?list=PLjGQNuuUzvmsuXCoj6g6vm1N-ZeLJso6o&quot;&gt;Lawerence PC Security&apos;s pfSense Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.netgate.com/pfsense/en/latest/&quot;&gt;Netgate&apos;s pfSense Documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Firewall&lt;/h3&gt;
&lt;p&gt;DO NOT buy a firewall or internet suite... they are terrible.&lt;/p&gt;
&lt;p&gt;Check your windows firewall with &lt;code&gt;wf.msc&lt;/code&gt; and make sure it is enabled and properly configured. You can create rules to block incoming connections on specific ports or from specific IP addresses.&lt;/p&gt;
&lt;p&gt;For linux I&apos;d recommned using &lt;code&gt;ufw&lt;/code&gt; (Uncomplicated Firewall) which is a user-friendly interface for managing iptables. You can enable it with the following commands:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;or configure with a gui like &lt;code&gt;gufw&lt;/code&gt; or &lt;code&gt;firewall-config&lt;/code&gt; depending on your linux distribution.&lt;/p&gt;
&lt;h4&gt;3rd Party Firewall Software&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;App&lt;/th&gt;
&lt;th&gt;Platform&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Link&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;simplewall&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://img.shields.io/badge/Windows-0078D4?logo=windows&amp;amp;logoColor=white&quot; alt=&quot;Windows&quot; /&gt;&lt;/td&gt;
&lt;td&gt;Lightweight WFP-based per-app firewall, no background service required&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/henrypp/simplewall&quot;&gt;github.com/henrypp/simplewall&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Windows Firewall Control (WFC)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://img.shields.io/badge/Windows-0078D4?logo=windows&amp;amp;logoColor=white&quot; alt=&quot;Windows&quot; /&gt;&lt;/td&gt;
&lt;td&gt;GUI front-end for the built-in Windows Firewall by Malwarebytes, free tier available&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://www.binisoft.org/wfc&quot;&gt;binisoft.org/wfc&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;TinyWall&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://img.shields.io/badge/Windows-0078D4?logo=windows&amp;amp;logoColor=white&quot; alt=&quot;Windows&quot; /&gt;&lt;/td&gt;
&lt;td&gt;Lightweight wrapper around Windows Firewall, whitelist-based, very low resource usage&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://tinywall.pados.hu&quot;&gt;tinywall.pados.hu&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;OpenSnitch&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://img.shields.io/badge/Linux-FCC624?logo=linux&amp;amp;logoColor=black&quot; alt=&quot;Linux&quot; /&gt; &lt;img src=&quot;https://img.shields.io/badge/Windows-0078D4?logo=windows&amp;amp;logoColor=white&quot; alt=&quot;Windows&quot; /&gt;&lt;/td&gt;
&lt;td&gt;Application-level outbound firewall, prompts on first connection per app&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/evilsocket/opensnitch&quot;&gt;github.com/evilsocket/opensnitch&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ufw / gufw&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://img.shields.io/badge/Linux-FCC624?logo=linux&amp;amp;logoColor=black&quot; alt=&quot;Linux&quot; /&gt;&lt;/td&gt;
&lt;td&gt;Uncomplicated Firewall with optional GUI, default on many distros&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://launchpad.net/ufw&quot;&gt;launchpad.net/ufw&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;firewalld&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://img.shields.io/badge/Linux-FCC624?logo=linux&amp;amp;logoColor=black&quot; alt=&quot;Linux&quot; /&gt;&lt;/td&gt;
&lt;td&gt;Dynamic firewall manager used on Fedora/RHEL/Arch, supports zones&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://firewalld.org&quot;&gt;firewalld.org&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;VPN&lt;/h3&gt;
&lt;p&gt;VPN is a bandaid and can fix some issues but it is not a replacement for proper network security. It can help protect your data from being intercepted by encrypting your internet traffic, but it does not protect you from vulnerabilities in your network or devices. If you have a VPN, make sure to use a reputable provider.&lt;/p&gt;
&lt;p&gt;All &quot;security&quot; influencers pushing VPNs are just trying to make a quick buck. A VPN can be useful in certain situations, but it is not a silver bullet for network security. Focus on securing your network and devices first, and use a VPN as an additional layer of protection if needed.&lt;/p&gt;
&lt;h2&gt;Check Devices on Your Network&lt;/h2&gt;
&lt;p&gt;You need to login to your router and check the list of connected devices. This will show you all the devices that are currently connected to your network, including their IP addresses and MAC addresses. Look for any devices that you do not recognize or that should not be on your network. If you find any suspicious devices, you can block them from accessing your network through your router&apos;s settings.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ABOVE IS ACTIVE PROTECTION AND YOU MUST KEEP DOING IT TO MAINTAIN SECURITY&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Other than above, you can use software like Angry IP Scanner or Advanced IP Scanner to scan your network for connected devices. These tools will show you all the devices that are currently connected to your network, along with their IP addresses and other information. You can use this information to identify any unauthorized devices and take action to secure your network.&lt;/p&gt;
&lt;p&gt;Links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://angryip.org/&quot;&gt;Angry IP Scanner&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.advanced-ip-scanner.com/&quot;&gt;Advanced IP Scanner&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Closing Thoughts&lt;/h2&gt;
&lt;p&gt;Security is a journey, not a destination. You need to continuously monitor and maintain your network security to protect yourself from potential threats. Regularly check for open ports, update your software and firmware, and be vigilant about any suspicious activity on your network. By taking these steps, you can help ensure that your network remains secure and protected from potential attacks.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/n7cjd5E_nsc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Restore WMI after Corruption</title><link>https://christitus.com/restore-wmi-corruption/</link><guid isPermaLink="true">https://christitus.com/restore-wmi-corruption/</guid><description>&lt;p&gt;The WMI database can become corrupted, leading to various system issues. This article provides a step-by-step guide to restore WMI after corruption.&lt;/p&gt;

&lt;p&gt;Example of my WMI corruption (System Restore not supported from powershell)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2026/WMI-corruption.webp&quot; alt=&quot;WMI-corruption&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Also verify with this command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;winmgmt /verifyrepository
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note: You should see &lt;code&gt;wmi repository is consistent&lt;/code&gt; if the WMI repository is healthy. If you see &lt;code&gt;wmi repository is inconsistent&lt;/code&gt;, it indicates that the WMI repository is corrupted and needs to be repaired.&lt;/p&gt;
&lt;h2&gt;The Fix&lt;/h2&gt;
&lt;p&gt;First check if you can salvage the repository by running the following command in an elevated PowerShell:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;winmgmt /salvagerepository
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then proceed to reset the WMI repository by running the following command in an elevated PowerShell (if above failed):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Stop-Service winmgmt -Force
Remove-Item C:\Windows\System32\wbem\Repository -Recurse -Force
winmgmt /resetrepository
Start-Service winmgmt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then for my case to restore the System Restore part of the WMI I ran this command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mofcomp C:\Windows\System32\wbem\sr.mof
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then I tested it via the powershell commands Get-ComputerRestorePoint to pull existing restore points from system restore.&lt;/p&gt;
</description><pubDate>Mon, 16 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The WMI database can become corrupted, leading to various system issues. This article provides a step-by-step guide to restore WMI after corruption.&lt;/p&gt;

&lt;p&gt;Example of my WMI corruption (System Restore not supported from powershell)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2026/WMI-corruption.webp&quot; alt=&quot;WMI-corruption&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Also verify with this command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;winmgmt /verifyrepository
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note: You should see &lt;code&gt;wmi repository is consistent&lt;/code&gt; if the WMI repository is healthy. If you see &lt;code&gt;wmi repository is inconsistent&lt;/code&gt;, it indicates that the WMI repository is corrupted and needs to be repaired.&lt;/p&gt;
&lt;h2&gt;The Fix&lt;/h2&gt;
&lt;p&gt;First check if you can salvage the repository by running the following command in an elevated PowerShell:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;winmgmt /salvagerepository
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then proceed to reset the WMI repository by running the following command in an elevated PowerShell (if above failed):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Stop-Service winmgmt -Force
Remove-Item C:\Windows\System32\wbem\Repository -Recurse -Force
winmgmt /resetrepository
Start-Service winmgmt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then for my case to restore the System Restore part of the WMI I ran this command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mofcomp C:\Windows\System32\wbem\sr.mof
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then I tested it via the powershell commands Get-ComputerRestorePoint to pull existing restore points from system restore.&lt;/p&gt;
</content:encoded></item><item><title>Windows Utility in 2026 — Everything That&apos;s Changed</title><link>https://christitus.com/winutil-in-2026/</link><guid isPermaLink="true">https://christitus.com/winutil-in-2026/</guid><description>&lt;p&gt;After six years, 200+ contributors, and over &lt;strong&gt;30 million runs&lt;/strong&gt;, the Windows Utility continues to be one of the most widely used Windows optimization tools available. Here&apos;s a full breakdown of what it does, what&apos;s new, and what&apos;s coming next.&lt;/p&gt;

&lt;h2&gt;How to Run It&lt;/h2&gt;
&lt;p&gt;The easiest way to launch the utility is directly from your terminal:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Right-click the &lt;strong&gt;Start Menu&lt;/strong&gt; and open &lt;strong&gt;Terminal (Admin)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Run the following command:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;irm christitus.com/win | iex
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Prefer an offline or EXE option?&lt;/strong&gt; Head over to &lt;a href=&quot;https://cttstore.com&quot;&gt;cttstore.com&lt;/a&gt; to download the executable. The online version always pulls the latest release, while the offline executable is ideal for systems without internet access or for those who want a static version.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;The Four Tabs&lt;/h2&gt;
&lt;h3&gt;1. Install&lt;/h3&gt;
&lt;p&gt;The Install tab lets you select and install multiple programs in one go. It uses &lt;strong&gt;Winget&lt;/strong&gt; (and optionally Chocolatey) under the hood to handle everything automatically — no manual downloading or clicking through installers.&lt;/p&gt;
&lt;p&gt;Key improvements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Collapsible categories&lt;/strong&gt; make it easier to browse by type (browsers, utilities, media, etc.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Get Installed&lt;/strong&gt; button queries your current system and lists everything already installed&lt;/li&gt;
&lt;li&gt;Uninstalling is just as easy — uncheck what you don&apos;t want and hit &lt;strong&gt;Uninstall&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The goal has always been a curated, concise list of the most commonly used programs — not an overwhelming app store. After years of iteration, the balance feels right.&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;2. Tweaks&lt;/h3&gt;
&lt;p&gt;The Tweaks tab is where most of the optimization magic happens. There are four sections:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Standard Tweaks&lt;/strong&gt; — Recommended for all users. Safe, reversible, and based on sensible Windows 7-era defaults.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Advanced Tweaks&lt;/strong&gt; — For power users only. Includes things like blocking Razer Synapse from ever installing (useful if you&apos;re stuck with Razer hardware).&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;⚠️ &lt;strong&gt;Don&apos;t just check everything.&lt;/strong&gt; Advanced tweaks exist for specific use cases — they&apos;re labeled &quot;Advanced&quot; and &quot;Caution&quot; for a reason.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;Running Tweaks&lt;/h4&gt;
&lt;p&gt;When you click &lt;strong&gt;Run Tweaks&lt;/strong&gt;, the utility:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Creates a &lt;strong&gt;System Restore Point&lt;/strong&gt; automatically&lt;/li&gt;
&lt;li&gt;Applies all selected tweaks in the background&lt;/li&gt;
&lt;li&gt;Reduces running processes to around &lt;strong&gt;70–80&lt;/strong&gt;, cutting out AI bloat and unnecessary Microsoft services&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;Reverting Changes&lt;/h4&gt;
&lt;p&gt;Made a mistake? Two ways to undo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Undo Selected Tweaks&lt;/strong&gt; — Reverts only what you selected&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System Restore&lt;/strong&gt; — Roll back to the restore point created before tweaks were applied&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3&gt;3. Config&lt;/h3&gt;
&lt;p&gt;The Config tab is geared toward more experienced users, but there&apos;s plenty here that&apos;s useful for anyone who&apos;s been on their machine for a few years.&lt;/p&gt;
&lt;p&gt;Highlights:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Old-school Control Panel&lt;/strong&gt; — The Windows 7 control panel is still superior for many tasks&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Printer Panel&lt;/strong&gt; — More options than the modern Settings app&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Legacy Sound Settings&lt;/strong&gt; — Far better than Microsoft&apos;s current audio management&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Themed PowerShell&lt;/strong&gt; — Install a custom shell theme directly from here&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;.NET Frameworks&lt;/strong&gt; — Enable or install specific versions as needed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NFS Setup&lt;/strong&gt; — For those running NFS instead of SMB network drives&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Repair Tools&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;What It Does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Reset Network&lt;/td&gt;
&lt;td&gt;Runs &lt;code&gt;netsh int ip reset&lt;/code&gt; and &lt;code&gt;netsh winsock reset&lt;/code&gt; — restores network stack to defaults&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reset Windows Update&lt;/td&gt;
&lt;td&gt;Re-registers DLLs, restarts update services&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;System Corruption Scan&lt;/td&gt;
&lt;td&gt;Runs &lt;code&gt;sfc /scannow&lt;/code&gt; and &lt;code&gt;DISM /RestoreHealth&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Winget Repair&lt;/td&gt;
&lt;td&gt;Restores Winget health if installs/uninstalls start failing&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note on corruption scans:&lt;/strong&gt; These take a long time and rarely fix things. They&apos;re included as a last resort — a &quot;Hail Mary&quot; option. In most cases, a backup and clean reinstall is the better call.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h3&gt;4. Updates&lt;/h3&gt;
&lt;p&gt;For &lt;strong&gt;Windows Pro&lt;/strong&gt; users, this tab is essential. The recommended configuration:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Delay Feature Updates by 1 year&lt;/strong&gt; — Avoid being a beta tester for major OS changes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Delay Security Updates by 4 days&lt;/strong&gt; — Updates release on Tuesday; this installs them Saturday, giving Microsoft time to pull any bad patches before they hit your machine&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For &lt;strong&gt;Home users&lt;/strong&gt;, or when Microsoft ships a particularly bad update (like the NVMe drive issue from last year), there&apos;s an option to &lt;strong&gt;disable updates altogether&lt;/strong&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;⚠️ If you disable updates, re-enable them once the issue is patched. Leaving Windows unpatched indefinitely — even with antivirus installed — is not a safe strategy. A Mac or Linux switch is a better long-term solution than ignoring updates forever.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A &lt;strong&gt;Default Updates&lt;/strong&gt; button resets everything back to Windows defaults.&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;Win11 Creator&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Win11 Creator&lt;/strong&gt; takes a different approach from the old MicroWin:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Removes AI integrations, bloatware, and pre-installed apps from the Windows image&lt;/li&gt;
&lt;li&gt;Maintains &lt;strong&gt;full program compatibility&lt;/strong&gt; — nothing is stripped that would break normal software&lt;/li&gt;
&lt;li&gt;Produces a clean, privacy-respecting Windows install without the Microsoft cruft&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Other Alternatives for Creating a Custom Windows ISO&lt;/h3&gt;
&lt;p&gt;If you want a minimal or customized Windows install, here are additional tools:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/ntdevlabs/tiny11builder&quot;&gt;Tiny11 Builder&lt;/a&gt;&lt;/strong&gt; — By NTDEV (IntiDev), who has been creating Windows ISOs for 20+ years. Uses official Microsoft media.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.ntlite.com/&quot;&gt;NTLite&lt;/a&gt;&lt;/strong&gt; — A veteran tool dating back to Windows XP. Highly configurable ISO modification.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Stay in the Loop&lt;/h2&gt;
&lt;p&gt;Development is ongoing and moves fast. Catch live updates every &lt;strong&gt;Tuesday and Thursday&lt;/strong&gt; on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.youtube.com/@christitustech&quot;&gt;YouTube&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.twitch.tv/christitustech&quot;&gt;Twitch&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;Have thoughts on Win11 Creator or what you&apos;d like to see in the new .NET app? Drop a comment — feedback directly shapes where this project goes next.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/yKydZFJRzMk&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 16 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;After six years, 200+ contributors, and over &lt;strong&gt;30 million runs&lt;/strong&gt;, the Windows Utility continues to be one of the most widely used Windows optimization tools available. Here&apos;s a full breakdown of what it does, what&apos;s new, and what&apos;s coming next.&lt;/p&gt;

&lt;h2&gt;How to Run It&lt;/h2&gt;
&lt;p&gt;The easiest way to launch the utility is directly from your terminal:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Right-click the &lt;strong&gt;Start Menu&lt;/strong&gt; and open &lt;strong&gt;Terminal (Admin)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Run the following command:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;irm christitus.com/win | iex
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Prefer an offline or EXE option?&lt;/strong&gt; Head over to &lt;a href=&quot;https://cttstore.com&quot;&gt;cttstore.com&lt;/a&gt; to download the executable. The online version always pulls the latest release, while the offline executable is ideal for systems without internet access or for those who want a static version.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;The Four Tabs&lt;/h2&gt;
&lt;h3&gt;1. Install&lt;/h3&gt;
&lt;p&gt;The Install tab lets you select and install multiple programs in one go. It uses &lt;strong&gt;Winget&lt;/strong&gt; (and optionally Chocolatey) under the hood to handle everything automatically — no manual downloading or clicking through installers.&lt;/p&gt;
&lt;p&gt;Key improvements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Collapsible categories&lt;/strong&gt; make it easier to browse by type (browsers, utilities, media, etc.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Get Installed&lt;/strong&gt; button queries your current system and lists everything already installed&lt;/li&gt;
&lt;li&gt;Uninstalling is just as easy — uncheck what you don&apos;t want and hit &lt;strong&gt;Uninstall&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The goal has always been a curated, concise list of the most commonly used programs — not an overwhelming app store. After years of iteration, the balance feels right.&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;2. Tweaks&lt;/h3&gt;
&lt;p&gt;The Tweaks tab is where most of the optimization magic happens. There are four sections:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Standard Tweaks&lt;/strong&gt; — Recommended for all users. Safe, reversible, and based on sensible Windows 7-era defaults.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Advanced Tweaks&lt;/strong&gt; — For power users only. Includes things like blocking Razer Synapse from ever installing (useful if you&apos;re stuck with Razer hardware).&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;⚠️ &lt;strong&gt;Don&apos;t just check everything.&lt;/strong&gt; Advanced tweaks exist for specific use cases — they&apos;re labeled &quot;Advanced&quot; and &quot;Caution&quot; for a reason.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;Running Tweaks&lt;/h4&gt;
&lt;p&gt;When you click &lt;strong&gt;Run Tweaks&lt;/strong&gt;, the utility:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Creates a &lt;strong&gt;System Restore Point&lt;/strong&gt; automatically&lt;/li&gt;
&lt;li&gt;Applies all selected tweaks in the background&lt;/li&gt;
&lt;li&gt;Reduces running processes to around &lt;strong&gt;70–80&lt;/strong&gt;, cutting out AI bloat and unnecessary Microsoft services&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;Reverting Changes&lt;/h4&gt;
&lt;p&gt;Made a mistake? Two ways to undo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Undo Selected Tweaks&lt;/strong&gt; — Reverts only what you selected&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System Restore&lt;/strong&gt; — Roll back to the restore point created before tweaks were applied&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3&gt;3. Config&lt;/h3&gt;
&lt;p&gt;The Config tab is geared toward more experienced users, but there&apos;s plenty here that&apos;s useful for anyone who&apos;s been on their machine for a few years.&lt;/p&gt;
&lt;p&gt;Highlights:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Old-school Control Panel&lt;/strong&gt; — The Windows 7 control panel is still superior for many tasks&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Printer Panel&lt;/strong&gt; — More options than the modern Settings app&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Legacy Sound Settings&lt;/strong&gt; — Far better than Microsoft&apos;s current audio management&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Themed PowerShell&lt;/strong&gt; — Install a custom shell theme directly from here&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;.NET Frameworks&lt;/strong&gt; — Enable or install specific versions as needed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NFS Setup&lt;/strong&gt; — For those running NFS instead of SMB network drives&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Repair Tools&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;What It Does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Reset Network&lt;/td&gt;
&lt;td&gt;Runs &lt;code&gt;netsh int ip reset&lt;/code&gt; and &lt;code&gt;netsh winsock reset&lt;/code&gt; — restores network stack to defaults&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reset Windows Update&lt;/td&gt;
&lt;td&gt;Re-registers DLLs, restarts update services&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;System Corruption Scan&lt;/td&gt;
&lt;td&gt;Runs &lt;code&gt;sfc /scannow&lt;/code&gt; and &lt;code&gt;DISM /RestoreHealth&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Winget Repair&lt;/td&gt;
&lt;td&gt;Restores Winget health if installs/uninstalls start failing&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note on corruption scans:&lt;/strong&gt; These take a long time and rarely fix things. They&apos;re included as a last resort — a &quot;Hail Mary&quot; option. In most cases, a backup and clean reinstall is the better call.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h3&gt;4. Updates&lt;/h3&gt;
&lt;p&gt;For &lt;strong&gt;Windows Pro&lt;/strong&gt; users, this tab is essential. The recommended configuration:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Delay Feature Updates by 1 year&lt;/strong&gt; — Avoid being a beta tester for major OS changes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Delay Security Updates by 4 days&lt;/strong&gt; — Updates release on Tuesday; this installs them Saturday, giving Microsoft time to pull any bad patches before they hit your machine&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For &lt;strong&gt;Home users&lt;/strong&gt;, or when Microsoft ships a particularly bad update (like the NVMe drive issue from last year), there&apos;s an option to &lt;strong&gt;disable updates altogether&lt;/strong&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;⚠️ If you disable updates, re-enable them once the issue is patched. Leaving Windows unpatched indefinitely — even with antivirus installed — is not a safe strategy. A Mac or Linux switch is a better long-term solution than ignoring updates forever.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A &lt;strong&gt;Default Updates&lt;/strong&gt; button resets everything back to Windows defaults.&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;Win11 Creator&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Win11 Creator&lt;/strong&gt; takes a different approach from the old MicroWin:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Removes AI integrations, bloatware, and pre-installed apps from the Windows image&lt;/li&gt;
&lt;li&gt;Maintains &lt;strong&gt;full program compatibility&lt;/strong&gt; — nothing is stripped that would break normal software&lt;/li&gt;
&lt;li&gt;Produces a clean, privacy-respecting Windows install without the Microsoft cruft&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Other Alternatives for Creating a Custom Windows ISO&lt;/h3&gt;
&lt;p&gt;If you want a minimal or customized Windows install, here are additional tools:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/ntdevlabs/tiny11builder&quot;&gt;Tiny11 Builder&lt;/a&gt;&lt;/strong&gt; — By NTDEV (IntiDev), who has been creating Windows ISOs for 20+ years. Uses official Microsoft media.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.ntlite.com/&quot;&gt;NTLite&lt;/a&gt;&lt;/strong&gt; — A veteran tool dating back to Windows XP. Highly configurable ISO modification.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Stay in the Loop&lt;/h2&gt;
&lt;p&gt;Development is ongoing and moves fast. Catch live updates every &lt;strong&gt;Tuesday and Thursday&lt;/strong&gt; on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.youtube.com/@christitustech&quot;&gt;YouTube&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.twitch.tv/christitustech&quot;&gt;Twitch&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;Have thoughts on Win11 Creator or what you&apos;d like to see in the new .NET app? Drop a comment — feedback directly shapes where this project goes next.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/yKydZFJRzMk&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>How I Switched to Linux</title><link>https://christitus.com/how-i-use-linux/</link><guid isPermaLink="true">https://christitus.com/how-i-use-linux/</guid><description>&lt;p&gt;Over the past 8 years I have used Linux desktop as my primary daily use PC. Before then I used Windows since the 3.11 release back in the early 90s. As someone with over 10 professional Windows certifications and 20+ years as a Windows power user, the transition wasn&apos;t easy—but it was worth it.&lt;/p&gt;

&lt;h2&gt;The First Year&lt;/h2&gt;
&lt;p&gt;This was well documented on my youtube channel. I had various distro challenges that lasted 10-30 days, where I constantly distro-hopped between different Linux distributions trying to find the &quot;perfect&quot; setup.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/playlist?list=PLc7fktTRMBoxZMG1YlLdBI0oiJZ8iqIP5&quot;&gt;https://www.youtube.com/playlist?list=PLc7fktTRMBoxZMG1YlLdBI0oiJZ8iqIP5&lt;/a&gt; - Switching to Arch Linux first 10 days
&lt;a href=&quot;https://www.youtube.com/playlist?list=PLc7fktTRMBozmc1_9kEmgxYo0jIdsiz7w&quot;&gt;https://www.youtube.com/playlist?list=PLc7fktTRMBozmc1_9kEmgxYo0jIdsiz7w&lt;/a&gt; - Switching to Ubuntu first 30 days&lt;/p&gt;
&lt;p&gt;The TLDW of all those challenge and the problems I had:&lt;/p&gt;
&lt;h3&gt;Too Many Distros - Focus on Features Instead&lt;/h3&gt;
&lt;p&gt;The biggest mistake I made was choosing distributions based on aesthetics rather than functionality. I quickly learned that distributions don&apos;t matter nearly as much as the components you choose:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Desktop Environments&lt;/strong&gt; (Gnome, KDE, XFCE, etc) - These define the look and feel of your system, and you can swap them out without reinstalling your entire OS&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;File Managers&lt;/strong&gt; (Nautilus, Dolphin, Thunar, etc) - I discovered Thunar from XFCE and still use it today, even though I don&apos;t use XFCE as my desktop environment&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mix and Match Philosophy&lt;/strong&gt; - Linux allows you to cherry-pick components from different desktop environments. You&apos;re not locked into an ecosystem like Windows or Mac&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Using FOSS Programs vs Trying to Use WINE&lt;/h3&gt;
&lt;p&gt;One of my hardest lessons was accepting that not everything from Windows translates well to Linux:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Windows-Only Programs&lt;/strong&gt; - If you rely heavily on Adobe products or Microsoft Office professionally, Linux might not be your best choice. After years of experience, I can confidently say Mac or Windows serves these users better&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WINE Limitations&lt;/strong&gt; - While Wine and similar tools exist, trying to emulate Windows programs often leads to frustration and poor performance&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The Hard Truth&lt;/strong&gt; - Linux folks will tell you &quot;everything just works,&quot; but that&apos;s not reality. Accept what works natively and plan accordingly&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Gaming and Mods&lt;/h3&gt;
&lt;p&gt;Gaming on Linux has come a long way since 2018 when I started:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Steam Proton Revolution&lt;/strong&gt; - When I began in 2018, Steam was just launching Proton compatibility. Today, most games work out of the box&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mod Support Challenges&lt;/strong&gt; - Almost every game is made for Windows, so mods don&apos;t install the same way. You&apos;ll need Linux-specific tools and workarounds&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;My Gaming Evolution&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;2023: 65% Windows, 32% Steam Deck, 2% Linux&lt;/li&gt;
&lt;li&gt;2024: 78% Windows, 12% Steam Deck, 9% Linux&lt;/li&gt;
&lt;li&gt;2025: 80% Linux, 12% Steam Deck, 10% Windows&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The shift happened when I stopped playing heavily-modded games like Final Fantasy XI Online and games with desync issues on Linux. If you play older games or don&apos;t heavily mod, Linux in 2026 offers an excellent gaming experience.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Check ProtonDB&lt;/strong&gt; before switching to see your game compatibility: &lt;a href=&quot;https://www.protondb.com&quot;&gt;https://www.protondb.com&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;The Second Year and Beyond&lt;/h2&gt;
&lt;p&gt;After the initial learning curve, I focused on stability and simplicity rather than chasing the &quot;perfect&quot; distribution.&lt;/p&gt;
&lt;h3&gt;Making My &quot;Perfect Install&quot;&lt;/h3&gt;
&lt;p&gt;I radically simplified my setup by stripping away unnecessary components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;No Desktop Environments&lt;/strong&gt; - I removed bloated desktop environments entirely. My current window manager binary is only 116KB&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sticking to the Big 3&lt;/strong&gt; - I only use Fedora, Arch, or Debian-based distributions. No more distro hopping every week&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Window Managers Only&lt;/strong&gt; - I switched to lightweight window managers (i3wm, bspwm, dwm) that use minimal resources and rarely break during updates&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Terminal-Based Configuration&lt;/strong&gt; - Everything I need is configured through the terminal, eliminating dependency conflicts and compatibility issues&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;The Result&lt;/strong&gt;: My current Arch Linux installation has 628 days of uptime. By having less software installed, there&apos;s less that can break during updates. I can run system updates live on stream without worrying about breaking my system.&lt;/p&gt;
&lt;h3&gt;Understanding Linux File Structure&lt;/h3&gt;
&lt;p&gt;Linux&apos;s file organization is far more logical than Windows, where programs can install in Program Files, Program Files (x86), ProgramData, AppData Local, AppData Roaming, or scattered registry entries.&lt;/p&gt;
&lt;p&gt;Linux follows two simple rules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;User Configuration&lt;/strong&gt;: &lt;code&gt;/home/user/.config&lt;/code&gt; - All your personal settings and configurations live here&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System Configuration&lt;/strong&gt;: &lt;code&gt;/etc&lt;/code&gt; - All system-wide settings live here&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System Resources&lt;/strong&gt;: &lt;code&gt;/usr&lt;/code&gt; - System binaries and shared resources&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;User Files&lt;/strong&gt;: &lt;code&gt;/home&lt;/code&gt; - All your personal files and data&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This standardization means you always know where to find configurations, making troubleshooting and backups significantly easier. About 90% of all software follows this convention.&lt;/p&gt;
&lt;h3&gt;Dual Boot vs Virtual Machines vs WSL&lt;/h3&gt;
&lt;p&gt;After 8 years, here&apos;s what works best for different scenarios:&lt;/p&gt;
&lt;h4&gt;Dual Boot for Performance and Gaming&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Two Hard Drives Recommended&lt;/strong&gt; - Install Windows and Linux on separate drives to avoid bootloader conflicts&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Installation Order Matters&lt;/strong&gt; - Always install Windows first, then Linux second&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Windows Update Warning&lt;/strong&gt; - Windows updates can occasionally break your Linux bootloader. Separate drives minimize this risk&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Best For&lt;/strong&gt;: Gaming performance, professional work requiring Windows-specific software&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Virtual Machines for Windows Programs&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Highly Optimized on Linux&lt;/strong&gt; - Linux VMs can be incredibly performant, much more so than Windows-based VMs&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Seamless Integration&lt;/strong&gt; - I run Windows VMs so well that most viewers don&apos;t realize I&apos;m not on native Windows&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GPU Passthrough&lt;/strong&gt; - You can pass through hardware directly to VMs for near-native performance&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Best For&lt;/strong&gt;: Occasional Windows software use, development work, testing&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I use VMs extensively for my Windows utility development. Most people watching my content think I&apos;m a Windows user, but I&apos;m actually running everything in a highly optimized VM on Linux.&lt;/p&gt;
&lt;h4&gt;WSL for Linux on Windows&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Occasional Command Line Use&lt;/strong&gt; - Good for Windows users who need occasional Linux terminal access&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Not a Full Linux Experience&lt;/strong&gt; - Limited compared to native Linux or dual boot&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Best For&lt;/strong&gt;: Developers who primarily use Windows but need Linux tools&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Linux Hardware Matters&lt;/h3&gt;
&lt;p&gt;Hardware compatibility can make or break your Linux experience. Here&apos;s what you need to know:&lt;/p&gt;
&lt;h4&gt;NVIDIA vs AMD&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;AMD Graphics&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Drivers built directly into the Linux kernel&lt;/li&gt;
&lt;li&gt;No extra modules or installation required&lt;/li&gt;
&lt;li&gt;Better out-of-the-box experience for most users&lt;/li&gt;
&lt;li&gt;Fewer update-related issues&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Best for gamers&lt;/strong&gt; who want hassle-free compatibility&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;NVIDIA Graphics&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Requires proprietary kernel modules&lt;/li&gt;
&lt;li&gt;Installation needed (not built-in)&lt;/li&gt;
&lt;li&gt;Can break during kernel updates (system won&apos;t boot or no video output)&lt;/li&gt;
&lt;li&gt;Better performance for productivity work (DaVinci Resolve, AI/ML workloads)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Best for professionals&lt;/strong&gt; doing GPU-intensive work&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;The Bottom Line&lt;/strong&gt;: Both work, but AMD requires less maintenance and troubleshooting.&lt;/p&gt;
&lt;h4&gt;Monitor and Display Issues&lt;/h4&gt;
&lt;p&gt;Five years ago, most Linux systems used &lt;a href=&quot;http://X.org&quot;&gt;X.org&lt;/a&gt;, which had significant limitations:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://X.org&quot;&gt;X.org&lt;/a&gt; Limitations&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No native Variable Refresh Rate (VRR) support&lt;/li&gt;
&lt;li&gt;Poor 4K support&lt;/li&gt;
&lt;li&gt;Screen tearing (requires manual configuration to fix)&lt;/li&gt;
&lt;li&gt;Older technology but still very stable&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Wayland Advantages&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Native VRR support&lt;/li&gt;
&lt;li&gt;Excellent 4K and multi-monitor support&lt;/li&gt;
&lt;li&gt;No screen tearing by default&lt;/li&gt;
&lt;li&gt;Modern replacement for &lt;a href=&quot;http://X.org&quot;&gt;X.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Most new desktop environments default to Wayland (Hyperland, GNOME 40+, KDE Plasma 6)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I still use &lt;a href=&quot;http://X.org&quot;&gt;X.org&lt;/a&gt; personally because it works for my setup, but most users today should choose Wayland for modern display features.&lt;/p&gt;
&lt;h4&gt;Third-Party Hardware Compatibility&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Streaming Hardware&lt;/strong&gt; - Elgato capture cards and similar devices may have limited or no Linux support&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Webcams&lt;/strong&gt; - Most work, but advanced features may not&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Audio Interfaces&lt;/strong&gt; - Professional audio equipment varies in compatibility&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RGB Peripherals&lt;/strong&gt; - Software like OpenRGB helps, but not all devices supported&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Bleeding Edge Hardware Has Worse Support&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;Important Reality Check&lt;/strong&gt;: If you buy the latest GPU or CPU on release day:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Arch Linux&lt;/strong&gt; - Will probably work, but performance may be suboptimal initially&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;6 Months Later&lt;/strong&gt; - Support and optimization typically catches up&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Windows/Mac&lt;/strong&gt; - Always prioritized by hardware manufacturers&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Research First&lt;/strong&gt; - Check Linux compatibility before buying new hardware&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Linux hardware support is excellent for established hardware but lags behind for bleeding-edge releases. This is the trade-off for using an open-source ecosystem.&lt;/p&gt;
&lt;h2&gt;My Current Setup&lt;/h2&gt;
&lt;p&gt;After 8 years of refinement, here&apos;s what I&apos;ve settled on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Distribution&lt;/strong&gt;: Arch Linux with CachyOS kernel (optimized for desktop performance)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Window Manager&lt;/strong&gt;: DWM (116KB binary managing my entire GUI)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;File Manager&lt;/strong&gt;: Thunar (from XFCE)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Uptime&lt;/strong&gt;: 628 days on current install&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gaming&lt;/strong&gt;: 80% on Linux via Steam Proton&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Windows Work&lt;/strong&gt;: Optimized VM for utility development&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Update Frequency&lt;/strong&gt;: Weekly (sometimes monthly without issues)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The key to my stability is simplicity. Less software means fewer dependencies, fewer conflicts, and fewer things that can break during updates.&lt;/p&gt;
&lt;h2&gt;Final Thoughts&lt;/h2&gt;
&lt;p&gt;Linux isn&apos;t for everyone, and that&apos;s okay. If you:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rely on Adobe Creative Suite professionally&lt;/li&gt;
&lt;li&gt;Need Microsoft Office (not LibreOffice alternatives)&lt;/li&gt;
&lt;li&gt;Play games with kernel-level anti-cheat&lt;/li&gt;
&lt;li&gt;Heavily mod games like Skyrim with hundreds of mods&lt;/li&gt;
&lt;li&gt;Want bleeding-edge hardware support on day one&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then Windows or Mac might serve you better, and there&apos;s no shame in that.&lt;/p&gt;
&lt;p&gt;But if you:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Value system stability and control&lt;/li&gt;
&lt;li&gt;Enjoy learning and tinkering&lt;/li&gt;
&lt;li&gt;Play mostly older or Steam-verified games&lt;/li&gt;
&lt;li&gt;Use open-source software&lt;/li&gt;
&lt;li&gt;Want a system that respects your choices&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then Linux can provide an incredible experience that only gets better with time.&lt;/p&gt;
&lt;p&gt;My journey from Windows power user to Linux daily driver took patience, learning, and accepting limitations. But 628 days of uptime and counting? I wouldn&apos;t go back.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/EcKSdZ_ENeg&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Thu, 15 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Over the past 8 years I have used Linux desktop as my primary daily use PC. Before then I used Windows since the 3.11 release back in the early 90s. As someone with over 10 professional Windows certifications and 20+ years as a Windows power user, the transition wasn&apos;t easy—but it was worth it.&lt;/p&gt;

&lt;h2&gt;The First Year&lt;/h2&gt;
&lt;p&gt;This was well documented on my youtube channel. I had various distro challenges that lasted 10-30 days, where I constantly distro-hopped between different Linux distributions trying to find the &quot;perfect&quot; setup.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/playlist?list=PLc7fktTRMBoxZMG1YlLdBI0oiJZ8iqIP5&quot;&gt;https://www.youtube.com/playlist?list=PLc7fktTRMBoxZMG1YlLdBI0oiJZ8iqIP5&lt;/a&gt; - Switching to Arch Linux first 10 days
&lt;a href=&quot;https://www.youtube.com/playlist?list=PLc7fktTRMBozmc1_9kEmgxYo0jIdsiz7w&quot;&gt;https://www.youtube.com/playlist?list=PLc7fktTRMBozmc1_9kEmgxYo0jIdsiz7w&lt;/a&gt; - Switching to Ubuntu first 30 days&lt;/p&gt;
&lt;p&gt;The TLDW of all those challenge and the problems I had:&lt;/p&gt;
&lt;h3&gt;Too Many Distros - Focus on Features Instead&lt;/h3&gt;
&lt;p&gt;The biggest mistake I made was choosing distributions based on aesthetics rather than functionality. I quickly learned that distributions don&apos;t matter nearly as much as the components you choose:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Desktop Environments&lt;/strong&gt; (Gnome, KDE, XFCE, etc) - These define the look and feel of your system, and you can swap them out without reinstalling your entire OS&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;File Managers&lt;/strong&gt; (Nautilus, Dolphin, Thunar, etc) - I discovered Thunar from XFCE and still use it today, even though I don&apos;t use XFCE as my desktop environment&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mix and Match Philosophy&lt;/strong&gt; - Linux allows you to cherry-pick components from different desktop environments. You&apos;re not locked into an ecosystem like Windows or Mac&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Using FOSS Programs vs Trying to Use WINE&lt;/h3&gt;
&lt;p&gt;One of my hardest lessons was accepting that not everything from Windows translates well to Linux:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Windows-Only Programs&lt;/strong&gt; - If you rely heavily on Adobe products or Microsoft Office professionally, Linux might not be your best choice. After years of experience, I can confidently say Mac or Windows serves these users better&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WINE Limitations&lt;/strong&gt; - While Wine and similar tools exist, trying to emulate Windows programs often leads to frustration and poor performance&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The Hard Truth&lt;/strong&gt; - Linux folks will tell you &quot;everything just works,&quot; but that&apos;s not reality. Accept what works natively and plan accordingly&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Gaming and Mods&lt;/h3&gt;
&lt;p&gt;Gaming on Linux has come a long way since 2018 when I started:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Steam Proton Revolution&lt;/strong&gt; - When I began in 2018, Steam was just launching Proton compatibility. Today, most games work out of the box&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mod Support Challenges&lt;/strong&gt; - Almost every game is made for Windows, so mods don&apos;t install the same way. You&apos;ll need Linux-specific tools and workarounds&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;My Gaming Evolution&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;2023: 65% Windows, 32% Steam Deck, 2% Linux&lt;/li&gt;
&lt;li&gt;2024: 78% Windows, 12% Steam Deck, 9% Linux&lt;/li&gt;
&lt;li&gt;2025: 80% Linux, 12% Steam Deck, 10% Windows&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The shift happened when I stopped playing heavily-modded games like Final Fantasy XI Online and games with desync issues on Linux. If you play older games or don&apos;t heavily mod, Linux in 2026 offers an excellent gaming experience.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Check ProtonDB&lt;/strong&gt; before switching to see your game compatibility: &lt;a href=&quot;https://www.protondb.com&quot;&gt;https://www.protondb.com&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;The Second Year and Beyond&lt;/h2&gt;
&lt;p&gt;After the initial learning curve, I focused on stability and simplicity rather than chasing the &quot;perfect&quot; distribution.&lt;/p&gt;
&lt;h3&gt;Making My &quot;Perfect Install&quot;&lt;/h3&gt;
&lt;p&gt;I radically simplified my setup by stripping away unnecessary components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;No Desktop Environments&lt;/strong&gt; - I removed bloated desktop environments entirely. My current window manager binary is only 116KB&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sticking to the Big 3&lt;/strong&gt; - I only use Fedora, Arch, or Debian-based distributions. No more distro hopping every week&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Window Managers Only&lt;/strong&gt; - I switched to lightweight window managers (i3wm, bspwm, dwm) that use minimal resources and rarely break during updates&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Terminal-Based Configuration&lt;/strong&gt; - Everything I need is configured through the terminal, eliminating dependency conflicts and compatibility issues&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;The Result&lt;/strong&gt;: My current Arch Linux installation has 628 days of uptime. By having less software installed, there&apos;s less that can break during updates. I can run system updates live on stream without worrying about breaking my system.&lt;/p&gt;
&lt;h3&gt;Understanding Linux File Structure&lt;/h3&gt;
&lt;p&gt;Linux&apos;s file organization is far more logical than Windows, where programs can install in Program Files, Program Files (x86), ProgramData, AppData Local, AppData Roaming, or scattered registry entries.&lt;/p&gt;
&lt;p&gt;Linux follows two simple rules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;User Configuration&lt;/strong&gt;: &lt;code&gt;/home/user/.config&lt;/code&gt; - All your personal settings and configurations live here&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System Configuration&lt;/strong&gt;: &lt;code&gt;/etc&lt;/code&gt; - All system-wide settings live here&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System Resources&lt;/strong&gt;: &lt;code&gt;/usr&lt;/code&gt; - System binaries and shared resources&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;User Files&lt;/strong&gt;: &lt;code&gt;/home&lt;/code&gt; - All your personal files and data&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This standardization means you always know where to find configurations, making troubleshooting and backups significantly easier. About 90% of all software follows this convention.&lt;/p&gt;
&lt;h3&gt;Dual Boot vs Virtual Machines vs WSL&lt;/h3&gt;
&lt;p&gt;After 8 years, here&apos;s what works best for different scenarios:&lt;/p&gt;
&lt;h4&gt;Dual Boot for Performance and Gaming&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Two Hard Drives Recommended&lt;/strong&gt; - Install Windows and Linux on separate drives to avoid bootloader conflicts&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Installation Order Matters&lt;/strong&gt; - Always install Windows first, then Linux second&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Windows Update Warning&lt;/strong&gt; - Windows updates can occasionally break your Linux bootloader. Separate drives minimize this risk&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Best For&lt;/strong&gt;: Gaming performance, professional work requiring Windows-specific software&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Virtual Machines for Windows Programs&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Highly Optimized on Linux&lt;/strong&gt; - Linux VMs can be incredibly performant, much more so than Windows-based VMs&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Seamless Integration&lt;/strong&gt; - I run Windows VMs so well that most viewers don&apos;t realize I&apos;m not on native Windows&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GPU Passthrough&lt;/strong&gt; - You can pass through hardware directly to VMs for near-native performance&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Best For&lt;/strong&gt;: Occasional Windows software use, development work, testing&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I use VMs extensively for my Windows utility development. Most people watching my content think I&apos;m a Windows user, but I&apos;m actually running everything in a highly optimized VM on Linux.&lt;/p&gt;
&lt;h4&gt;WSL for Linux on Windows&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Occasional Command Line Use&lt;/strong&gt; - Good for Windows users who need occasional Linux terminal access&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Not a Full Linux Experience&lt;/strong&gt; - Limited compared to native Linux or dual boot&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Best For&lt;/strong&gt;: Developers who primarily use Windows but need Linux tools&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Linux Hardware Matters&lt;/h3&gt;
&lt;p&gt;Hardware compatibility can make or break your Linux experience. Here&apos;s what you need to know:&lt;/p&gt;
&lt;h4&gt;NVIDIA vs AMD&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;AMD Graphics&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Drivers built directly into the Linux kernel&lt;/li&gt;
&lt;li&gt;No extra modules or installation required&lt;/li&gt;
&lt;li&gt;Better out-of-the-box experience for most users&lt;/li&gt;
&lt;li&gt;Fewer update-related issues&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Best for gamers&lt;/strong&gt; who want hassle-free compatibility&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;NVIDIA Graphics&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Requires proprietary kernel modules&lt;/li&gt;
&lt;li&gt;Installation needed (not built-in)&lt;/li&gt;
&lt;li&gt;Can break during kernel updates (system won&apos;t boot or no video output)&lt;/li&gt;
&lt;li&gt;Better performance for productivity work (DaVinci Resolve, AI/ML workloads)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Best for professionals&lt;/strong&gt; doing GPU-intensive work&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;The Bottom Line&lt;/strong&gt;: Both work, but AMD requires less maintenance and troubleshooting.&lt;/p&gt;
&lt;h4&gt;Monitor and Display Issues&lt;/h4&gt;
&lt;p&gt;Five years ago, most Linux systems used &lt;a href=&quot;http://X.org&quot;&gt;X.org&lt;/a&gt;, which had significant limitations:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://X.org&quot;&gt;X.org&lt;/a&gt; Limitations&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No native Variable Refresh Rate (VRR) support&lt;/li&gt;
&lt;li&gt;Poor 4K support&lt;/li&gt;
&lt;li&gt;Screen tearing (requires manual configuration to fix)&lt;/li&gt;
&lt;li&gt;Older technology but still very stable&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Wayland Advantages&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Native VRR support&lt;/li&gt;
&lt;li&gt;Excellent 4K and multi-monitor support&lt;/li&gt;
&lt;li&gt;No screen tearing by default&lt;/li&gt;
&lt;li&gt;Modern replacement for &lt;a href=&quot;http://X.org&quot;&gt;X.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Most new desktop environments default to Wayland (Hyperland, GNOME 40+, KDE Plasma 6)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I still use &lt;a href=&quot;http://X.org&quot;&gt;X.org&lt;/a&gt; personally because it works for my setup, but most users today should choose Wayland for modern display features.&lt;/p&gt;
&lt;h4&gt;Third-Party Hardware Compatibility&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Streaming Hardware&lt;/strong&gt; - Elgato capture cards and similar devices may have limited or no Linux support&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Webcams&lt;/strong&gt; - Most work, but advanced features may not&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Audio Interfaces&lt;/strong&gt; - Professional audio equipment varies in compatibility&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RGB Peripherals&lt;/strong&gt; - Software like OpenRGB helps, but not all devices supported&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Bleeding Edge Hardware Has Worse Support&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;Important Reality Check&lt;/strong&gt;: If you buy the latest GPU or CPU on release day:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Arch Linux&lt;/strong&gt; - Will probably work, but performance may be suboptimal initially&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;6 Months Later&lt;/strong&gt; - Support and optimization typically catches up&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Windows/Mac&lt;/strong&gt; - Always prioritized by hardware manufacturers&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Research First&lt;/strong&gt; - Check Linux compatibility before buying new hardware&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Linux hardware support is excellent for established hardware but lags behind for bleeding-edge releases. This is the trade-off for using an open-source ecosystem.&lt;/p&gt;
&lt;h2&gt;My Current Setup&lt;/h2&gt;
&lt;p&gt;After 8 years of refinement, here&apos;s what I&apos;ve settled on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Distribution&lt;/strong&gt;: Arch Linux with CachyOS kernel (optimized for desktop performance)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Window Manager&lt;/strong&gt;: DWM (116KB binary managing my entire GUI)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;File Manager&lt;/strong&gt;: Thunar (from XFCE)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Uptime&lt;/strong&gt;: 628 days on current install&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gaming&lt;/strong&gt;: 80% on Linux via Steam Proton&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Windows Work&lt;/strong&gt;: Optimized VM for utility development&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Update Frequency&lt;/strong&gt;: Weekly (sometimes monthly without issues)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The key to my stability is simplicity. Less software means fewer dependencies, fewer conflicts, and fewer things that can break during updates.&lt;/p&gt;
&lt;h2&gt;Final Thoughts&lt;/h2&gt;
&lt;p&gt;Linux isn&apos;t for everyone, and that&apos;s okay. If you:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rely on Adobe Creative Suite professionally&lt;/li&gt;
&lt;li&gt;Need Microsoft Office (not LibreOffice alternatives)&lt;/li&gt;
&lt;li&gt;Play games with kernel-level anti-cheat&lt;/li&gt;
&lt;li&gt;Heavily mod games like Skyrim with hundreds of mods&lt;/li&gt;
&lt;li&gt;Want bleeding-edge hardware support on day one&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then Windows or Mac might serve you better, and there&apos;s no shame in that.&lt;/p&gt;
&lt;p&gt;But if you:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Value system stability and control&lt;/li&gt;
&lt;li&gt;Enjoy learning and tinkering&lt;/li&gt;
&lt;li&gt;Play mostly older or Steam-verified games&lt;/li&gt;
&lt;li&gt;Use open-source software&lt;/li&gt;
&lt;li&gt;Want a system that respects your choices&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then Linux can provide an incredible experience that only gets better with time.&lt;/p&gt;
&lt;p&gt;My journey from Windows power user to Linux daily driver took patience, learning, and accepting limitations. But 628 days of uptime and counting? I wouldn&apos;t go back.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/EcKSdZ_ENeg&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Enable Vrr Xorg</title><link>https://christitus.com/enable-vrr-xorg/</link><guid isPermaLink="true">https://christitus.com/enable-vrr-xorg/</guid><description>&lt;p&gt;This shows you how to enable VRR (Variable Refresh Rate) in Xorg on Linux. This is useful for gaming and reducing screen tearing.&lt;/p&gt;

&lt;h2&gt;Enable VRR Xorg Conf&lt;/h2&gt;
&lt;p&gt;Create a new file in &lt;code&gt;/etc/X11/xorg.conf.d/10-amdfreesync.conf&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Section &quot;OutputClass&quot; 
 Identifier &quot;AMD&quot; 
 MatchDriver &quot;amdgpu&quot; 
 Driver &quot;amdgpu&quot; 
 Option &quot;VariableRefresh&quot; &quot;true&quot; 
EndSection
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Reboot and you will have it enabled. You can verify your monitor supports VRR with this command: &lt;code&gt;xrandr --props | grep -i &quot;vrr&quot;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;You can then verify it is enabled through the log file at &lt;code&gt;/var/log/Xorg.0.log&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Example output:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;...
[     8.444] (II) Applying OutputClass &quot;AMD&quot; options to /dev/dri/card1
[     8.444] (**) modeset(0): Option &quot;VariableRefresh&quot; &quot;true&quot;
[     8.444] (==) modeset(0): RGB weight 888
[     8.444] (==) modeset(0): Default visual is TrueColor
[     8.444] (II) Loading sub module &quot;glamoregl&quot;
[     8.444] (II) LoadModule: &quot;glamoregl&quot;
[     8.444] (II) Loading /usr/lib/xorg/modules/libglamoregl.so
[     8.454] (II) Module glamoregl: vendor=&quot;X.Org Foundation&quot;
[     8.454]  compiled for 1.21.1.18, module version = 1.0.1
[     8.454]  ABI class: X.Org ANSI C Emulation, version 0.4
[     9.059] (II) modeset(0): glamor X acceleration enabled on AMD Radeon RX 7800 XT (radeonsi, navi32, LLVM 20.1.8, DRM 3.64, 6.16.4-114.bazzite.fc42.x86_64)
[     9.059] (II) modeset(0): glamor initialized
[     9.059] (**) modeset(0): VariableRefresh: enabled
[     9.059] (==) modeset(0): AsyncFlipSecondaries: disabled
[     9.059] (II) modeset(0): Output DP-1 has no monitor section
[     9.059] (II) modeset(0): Output DP-2 has no monitor section
[     9.059] (II) modeset(0): Output HDMI-1 has no monitor section
[     9.064] (II) modeset(0): Output HDMI-2 has no monitor section
...
&lt;/code&gt;&lt;/pre&gt;
</description><pubDate>Tue, 07 Oct 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This shows you how to enable VRR (Variable Refresh Rate) in Xorg on Linux. This is useful for gaming and reducing screen tearing.&lt;/p&gt;

&lt;h2&gt;Enable VRR Xorg Conf&lt;/h2&gt;
&lt;p&gt;Create a new file in &lt;code&gt;/etc/X11/xorg.conf.d/10-amdfreesync.conf&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Section &quot;OutputClass&quot; 
 Identifier &quot;AMD&quot; 
 MatchDriver &quot;amdgpu&quot; 
 Driver &quot;amdgpu&quot; 
 Option &quot;VariableRefresh&quot; &quot;true&quot; 
EndSection
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Reboot and you will have it enabled. You can verify your monitor supports VRR with this command: &lt;code&gt;xrandr --props | grep -i &quot;vrr&quot;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;You can then verify it is enabled through the log file at &lt;code&gt;/var/log/Xorg.0.log&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Example output:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;...
[     8.444] (II) Applying OutputClass &quot;AMD&quot; options to /dev/dri/card1
[     8.444] (**) modeset(0): Option &quot;VariableRefresh&quot; &quot;true&quot;
[     8.444] (==) modeset(0): RGB weight 888
[     8.444] (==) modeset(0): Default visual is TrueColor
[     8.444] (II) Loading sub module &quot;glamoregl&quot;
[     8.444] (II) LoadModule: &quot;glamoregl&quot;
[     8.444] (II) Loading /usr/lib/xorg/modules/libglamoregl.so
[     8.454] (II) Module glamoregl: vendor=&quot;X.Org Foundation&quot;
[     8.454]  compiled for 1.21.1.18, module version = 1.0.1
[     8.454]  ABI class: X.Org ANSI C Emulation, version 0.4
[     9.059] (II) modeset(0): glamor X acceleration enabled on AMD Radeon RX 7800 XT (radeonsi, navi32, LLVM 20.1.8, DRM 3.64, 6.16.4-114.bazzite.fc42.x86_64)
[     9.059] (II) modeset(0): glamor initialized
[     9.059] (**) modeset(0): VariableRefresh: enabled
[     9.059] (==) modeset(0): AsyncFlipSecondaries: disabled
[     9.059] (II) modeset(0): Output DP-1 has no monitor section
[     9.059] (II) modeset(0): Output DP-2 has no monitor section
[     9.059] (II) modeset(0): Output HDMI-1 has no monitor section
[     9.064] (II) modeset(0): Output HDMI-2 has no monitor section
...
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Prioritize Ipv4 Over Ipv6 Linux</title><link>https://christitus.com/prioritize-ipv4-over-ipv6-linux/</link><guid isPermaLink="true">https://christitus.com/prioritize-ipv4-over-ipv6-linux/</guid><description>&lt;p&gt;On many Linux systems, IPv6 is prioritized over IPv4 by default. This can lead to connectivity issues if the network or services you are trying to reach are not fully compatible with IPv6. To prioritize IPv4 over IPv6, you can modify the system&apos;s address selection policy.&lt;/p&gt;

&lt;h2&gt;Setting /etc/gai.conf&lt;/h2&gt;
&lt;p&gt;gai.conf is the best and in my opinion, the ONLY method you should use for pushing ipv4 ahead of ipv6. Most methods online show &lt;code&gt;sysctl&lt;/code&gt; which DISABLES ipv6 and not a recommended way because ipv6 is so integrated in to many networks these days.&lt;/p&gt;
&lt;p&gt;Instead change the following file by editing &lt;code&gt;/etc/gai.conf&lt;/code&gt; and no restart or systemctl restart commands are needed.&lt;/p&gt;
&lt;p&gt;Here is the line to uncomment&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;precedence ::ffff:0:0/96  100
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That&apos;s it! Your system will now using ipv4 when it is availible, but can use ipv6 if it isn&apos;t.&lt;/p&gt;
&lt;h2&gt;Verify ipv4 priority&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;getent ahosts google.com
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;or simply &lt;code&gt;ping google.com&lt;/code&gt; and you will see that ipv4 is shown instead of a ipv6 address at the top. &lt;code&gt;getent&lt;/code&gt; is a nice way of verifying that it will default back to ipv6 as it will show ipv6 addresses towards the bottom.&lt;/p&gt;
</description><pubDate>Fri, 03 Oct 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;On many Linux systems, IPv6 is prioritized over IPv4 by default. This can lead to connectivity issues if the network or services you are trying to reach are not fully compatible with IPv6. To prioritize IPv4 over IPv6, you can modify the system&apos;s address selection policy.&lt;/p&gt;

&lt;h2&gt;Setting /etc/gai.conf&lt;/h2&gt;
&lt;p&gt;gai.conf is the best and in my opinion, the ONLY method you should use for pushing ipv4 ahead of ipv6. Most methods online show &lt;code&gt;sysctl&lt;/code&gt; which DISABLES ipv6 and not a recommended way because ipv6 is so integrated in to many networks these days.&lt;/p&gt;
&lt;p&gt;Instead change the following file by editing &lt;code&gt;/etc/gai.conf&lt;/code&gt; and no restart or systemctl restart commands are needed.&lt;/p&gt;
&lt;p&gt;Here is the line to uncomment&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;precedence ::ffff:0:0/96  100
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That&apos;s it! Your system will now using ipv4 when it is availible, but can use ipv6 if it isn&apos;t.&lt;/p&gt;
&lt;h2&gt;Verify ipv4 priority&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;getent ahosts google.com
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;or simply &lt;code&gt;ping google.com&lt;/code&gt; and you will see that ipv4 is shown instead of a ipv6 address at the top. &lt;code&gt;getent&lt;/code&gt; is a nice way of verifying that it will default back to ipv6 as it will show ipv6 addresses towards the bottom.&lt;/p&gt;
</content:encoded></item><item><title>Track Changes Word Author Macro</title><link>https://christitus.com/track-changes-word-author-macro/</link><guid isPermaLink="true">https://christitus.com/track-changes-word-author-macro/</guid><description>&lt;p&gt;This is a method for changing ALL the authors in Microsoft Word to a single author for comments and revisions.&lt;/p&gt;

&lt;h2&gt;Who is this for?&lt;/h2&gt;
&lt;p&gt;Businesses and Law Firms that need to change the author before sending changes to a client.&lt;/p&gt;
&lt;h2&gt;The Macro and How to Use&lt;/h2&gt;
&lt;p&gt;Open a New Module in Visual Basic in Word (Alt + F11)&lt;/p&gt;
&lt;p&gt;From VB Editor, Create a new Module (Right-click Normal -&amp;gt; Insert -&amp;gt; Module)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2025/word-macro.webp&quot; alt=&quot;word-macro&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Paste the following code into the Normal-Module1 (Code) Window &lt;em&gt;Note: Big window on the right&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Sub AcceptAndRecreateWorkingVersion()
    Dim doc As Document
    Dim rev As Revision
    Dim com As Comment
    Dim originalTrackChanges As Boolean
    Dim revCount As Long
    Dim response As VbMsgBoxResult
    Dim authors As Collection
    Dim author As Variant
    Dim sOldAuthor As String
    Dim sNewAuthor As String
    Dim sec As Section
    Dim hf As HeaderFooter
    Dim sWOOXML As String
    Dim sFindAuthor As String
    Dim sReplaceAuthor As String
    Dim hasChanges As Boolean
    Dim newAuthor As String
  
    &apos;Set Author Name Here
    newAuthor = &quot;New Author&quot;
    
    On Error GoTo ErrorHandler
    Set doc = ActiveDocument
    revCount = doc.Revisions.Count
    
    If revCount = 0 Then
        MsgBox &quot;No tracked changes found.&quot;, vbInformation, &quot;No Revisions&quot;
        Exit Sub
    End If
    
    response = MsgBox(&quot;Set all tracked changes to &apos;&quot; &amp;amp; newAuthor &amp;amp; &quot;&apos; as author?&quot; &amp;amp; vbNewLine &amp;amp; _
                     &quot;Processes via XML for all types.&quot;, vbYesNo + vbQuestion, &quot;Confirm&quot;)
    If response = vbNo Then Exit Sub
    
    &apos; Store settings
    originalTrackChanges = doc.TrackRevisions
    Application.ScreenUpdating = False
    
    &apos; Collect unique authors excluding newAuthor
    Set authors = New Collection
    hasChanges = False
    For Each rev In doc.Revisions
        If rev.author &amp;lt;&amp;gt; newAuthor Then
            On Error Resume Next
            authors.Add rev.author, rev.author
            If Err.Number = 0 Then hasChanges = True
            On Error GoTo ErrorHandler
        End If
    Next rev
    For Each com In doc.Comments
        If com.author &amp;lt;&amp;gt; newAuthor Then
            On Error Resume Next
            authors.Add com.author, com.author
            If Err.Number = 0 Then hasChanges = True
            On Error GoTo ErrorHandler
        End If
    Next com
    
    If Not hasChanges Then
        MsgBox &quot;No changes to process.&quot;, vbInformation, &quot;Complete&quot;
        GoTo CleanUp
    End If
    
    &apos; Turn off track revisions
    doc.TrackRevisions = False
    
    sNewAuthor = newAuthor
    
    &apos; Process each unique author
    For Each author In authors
        sOldAuthor = author
        sFindAuthor = &quot;w:author=&quot;&quot;&quot; &amp;amp; sOldAuthor &amp;amp; &quot;&quot;&quot;&quot;
        sReplaceAuthor = &quot;w:author=&quot;&quot;&quot; &amp;amp; sNewAuthor &amp;amp; &quot;&quot;&quot;&quot;
        
        &apos; Main content
        sWOOXML = doc.Content.WordOpenXML
        sWOOXML = Replace(sWOOXML, sFindAuthor, sReplaceAuthor)
        doc.Content.InsertXML sWOOXML
        
        &apos; Headers and footers
        For Each sec In doc.Sections
            For Each hf In sec.Headers
                sWOOXML = hf.Range.WordOpenXML
                sWOOXML = Replace(sWOOXML, sFindAuthor, sReplaceAuthor)
                hf.Range.InsertXML sWOOXML
            Next hf
            For Each hf In sec.Footers
                sWOOXML = hf.Range.WordOpenXML
                sWOOXML = Replace(sWOOXML, sFindAuthor, sReplaceAuthor)
                hf.Range.InsertXML sWOOXML
            Next hf
        Next sec
    Next author
    
    doc.Save  &apos; Save to register changes
    
CleanUp:
    doc.TrackRevisions = originalTrackChanges
    Application.ScreenUpdating = True
    Application.StatusBar = &quot;&quot;
    
    MsgBox &quot;Processed all changes. Remaining revisions: &quot; &amp;amp; doc.Revisions.Count, vbInformation, &quot;Complete&quot;
    Exit Sub

ErrorHandler:
    MsgBox &quot;Error: &quot; &amp;amp; Err.Description, vbCritical, &quot;Error&quot;
    Resume CleanUp
End Sub
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Save and Return to Word&lt;/p&gt;
&lt;p&gt;Open the document you want to apply this to and run the macro with Alt+F8&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: You can also bind this to a button on your ribbon/taskbar&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;Just swaping authors with NO timestamp reset&lt;/h3&gt;
&lt;p&gt;This way is not as comprehensive but it does not reset the timestamp on the changes.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Sub ChangeCommentCreator()
    Dim I As Long
    Dim Novo As String
    Dim Corto As String
    If Selection.Comments.Count = 0 Then
        MsgBox &quot;No comments in your selection!&quot;, vbInformation, &quot;Alerta&quot;
        Exit Sub
    End If
    Novo = InputBox(&quot;New author name?&quot;, &quot;Alerta&quot;)
    Corto = InputBox(&quot;New author initials?&quot;, &quot;Alerta&quot;)
    If Novo = &quot;&quot; Or Corto = &quot;&quot; Then
        MsgBox &quot;The author name/initials can’t be empty.&quot;, vbInformation, &quot;Alerta&quot;
        Exit Sub
    End If
    With Selection
        For I = 1 To .Comments.Count
            .Comments(I).Author = Novo
            .Comments(I).Initial = Corto
        Next I
    End With
End Sub
&lt;/code&gt;&lt;/pre&gt;
</description><pubDate>Wed, 17 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This is a method for changing ALL the authors in Microsoft Word to a single author for comments and revisions.&lt;/p&gt;

&lt;h2&gt;Who is this for?&lt;/h2&gt;
&lt;p&gt;Businesses and Law Firms that need to change the author before sending changes to a client.&lt;/p&gt;
&lt;h2&gt;The Macro and How to Use&lt;/h2&gt;
&lt;p&gt;Open a New Module in Visual Basic in Word (Alt + F11)&lt;/p&gt;
&lt;p&gt;From VB Editor, Create a new Module (Right-click Normal -&amp;gt; Insert -&amp;gt; Module)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2025/word-macro.webp&quot; alt=&quot;word-macro&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Paste the following code into the Normal-Module1 (Code) Window &lt;em&gt;Note: Big window on the right&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Sub AcceptAndRecreateWorkingVersion()
    Dim doc As Document
    Dim rev As Revision
    Dim com As Comment
    Dim originalTrackChanges As Boolean
    Dim revCount As Long
    Dim response As VbMsgBoxResult
    Dim authors As Collection
    Dim author As Variant
    Dim sOldAuthor As String
    Dim sNewAuthor As String
    Dim sec As Section
    Dim hf As HeaderFooter
    Dim sWOOXML As String
    Dim sFindAuthor As String
    Dim sReplaceAuthor As String
    Dim hasChanges As Boolean
    Dim newAuthor As String
  
    &apos;Set Author Name Here
    newAuthor = &quot;New Author&quot;
    
    On Error GoTo ErrorHandler
    Set doc = ActiveDocument
    revCount = doc.Revisions.Count
    
    If revCount = 0 Then
        MsgBox &quot;No tracked changes found.&quot;, vbInformation, &quot;No Revisions&quot;
        Exit Sub
    End If
    
    response = MsgBox(&quot;Set all tracked changes to &apos;&quot; &amp;amp; newAuthor &amp;amp; &quot;&apos; as author?&quot; &amp;amp; vbNewLine &amp;amp; _
                     &quot;Processes via XML for all types.&quot;, vbYesNo + vbQuestion, &quot;Confirm&quot;)
    If response = vbNo Then Exit Sub
    
    &apos; Store settings
    originalTrackChanges = doc.TrackRevisions
    Application.ScreenUpdating = False
    
    &apos; Collect unique authors excluding newAuthor
    Set authors = New Collection
    hasChanges = False
    For Each rev In doc.Revisions
        If rev.author &amp;lt;&amp;gt; newAuthor Then
            On Error Resume Next
            authors.Add rev.author, rev.author
            If Err.Number = 0 Then hasChanges = True
            On Error GoTo ErrorHandler
        End If
    Next rev
    For Each com In doc.Comments
        If com.author &amp;lt;&amp;gt; newAuthor Then
            On Error Resume Next
            authors.Add com.author, com.author
            If Err.Number = 0 Then hasChanges = True
            On Error GoTo ErrorHandler
        End If
    Next com
    
    If Not hasChanges Then
        MsgBox &quot;No changes to process.&quot;, vbInformation, &quot;Complete&quot;
        GoTo CleanUp
    End If
    
    &apos; Turn off track revisions
    doc.TrackRevisions = False
    
    sNewAuthor = newAuthor
    
    &apos; Process each unique author
    For Each author In authors
        sOldAuthor = author
        sFindAuthor = &quot;w:author=&quot;&quot;&quot; &amp;amp; sOldAuthor &amp;amp; &quot;&quot;&quot;&quot;
        sReplaceAuthor = &quot;w:author=&quot;&quot;&quot; &amp;amp; sNewAuthor &amp;amp; &quot;&quot;&quot;&quot;
        
        &apos; Main content
        sWOOXML = doc.Content.WordOpenXML
        sWOOXML = Replace(sWOOXML, sFindAuthor, sReplaceAuthor)
        doc.Content.InsertXML sWOOXML
        
        &apos; Headers and footers
        For Each sec In doc.Sections
            For Each hf In sec.Headers
                sWOOXML = hf.Range.WordOpenXML
                sWOOXML = Replace(sWOOXML, sFindAuthor, sReplaceAuthor)
                hf.Range.InsertXML sWOOXML
            Next hf
            For Each hf In sec.Footers
                sWOOXML = hf.Range.WordOpenXML
                sWOOXML = Replace(sWOOXML, sFindAuthor, sReplaceAuthor)
                hf.Range.InsertXML sWOOXML
            Next hf
        Next sec
    Next author
    
    doc.Save  &apos; Save to register changes
    
CleanUp:
    doc.TrackRevisions = originalTrackChanges
    Application.ScreenUpdating = True
    Application.StatusBar = &quot;&quot;
    
    MsgBox &quot;Processed all changes. Remaining revisions: &quot; &amp;amp; doc.Revisions.Count, vbInformation, &quot;Complete&quot;
    Exit Sub

ErrorHandler:
    MsgBox &quot;Error: &quot; &amp;amp; Err.Description, vbCritical, &quot;Error&quot;
    Resume CleanUp
End Sub
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Save and Return to Word&lt;/p&gt;
&lt;p&gt;Open the document you want to apply this to and run the macro with Alt+F8&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: You can also bind this to a button on your ribbon/taskbar&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;Just swaping authors with NO timestamp reset&lt;/h3&gt;
&lt;p&gt;This way is not as comprehensive but it does not reset the timestamp on the changes.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Sub ChangeCommentCreator()
    Dim I As Long
    Dim Novo As String
    Dim Corto As String
    If Selection.Comments.Count = 0 Then
        MsgBox &quot;No comments in your selection!&quot;, vbInformation, &quot;Alerta&quot;
        Exit Sub
    End If
    Novo = InputBox(&quot;New author name?&quot;, &quot;Alerta&quot;)
    Corto = InputBox(&quot;New author initials?&quot;, &quot;Alerta&quot;)
    If Novo = &quot;&quot; Or Corto = &quot;&quot; Then
        MsgBox &quot;The author name/initials can’t be empty.&quot;, vbInformation, &quot;Alerta&quot;
        Exit Sub
    End If
    With Selection
        For I = 1 To .Comments.Count
            .Comments(I).Author = Novo
            .Comments(I).Initial = Corto
        Next I
    End With
End Sub
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>How Vulnerable Windows Users Are by Update</title><link>https://christitus.com/how-vulnerable-windows-users-are-by-update/</link><guid isPermaLink="true">https://christitus.com/how-vulnerable-windows-users-are-by-update/</guid><description>&lt;p&gt;Here is how vulnerable Windows users are by update. When you disable updates, how long you go without updating your system determines how vulnerable you become.&lt;/p&gt;

&lt;h2&gt;Determining your Windows version&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2025/winver.webp&quot; alt=&quot;winver&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Here is how you determine the windows verison and BUILD Number.&lt;/p&gt;
&lt;p&gt;You can also see it display in &lt;code&gt;systeminfo&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2025/systeminfo.webp&quot; alt=&quot;systeminfo&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Checking how many vulnerabilities your version has&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2025/24H2-1742-exploits.webp&quot; alt=&quot;24H2-1742-exploits&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://www.cvedetails.com/version/1824209/Microsoft-Windows-11-24H2-10.0.26100.1742.html&quot;&gt;https://www.cvedetails.com/version/1824209/Microsoft-Windows-11-24H2-10.0.26100.1742.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Check the website &lt;a href=&quot;https://www.cvedetails.com/product-search.php?vendor_id=0&amp;amp;search=Windows&quot;&gt;https://www.cvedetails.com/product-search.php?vendor_id=0&amp;amp;search=Windows&lt;/a&gt; and look up your version of windows.&lt;/p&gt;
&lt;p&gt;You will see that typically the older a version the more exploits it will have. Not all exploits worry me, but the notiable columns to pay attention to are Code Execution and Privilege escalation.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Instead of a blanket statement of &quot;Update or you get are a security risk&quot;, you can now look at your version and determine how big or small of risk you are taking. \&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/WVQ_2hN_zzs&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Sat, 06 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Here is how vulnerable Windows users are by update. When you disable updates, how long you go without updating your system determines how vulnerable you become.&lt;/p&gt;

&lt;h2&gt;Determining your Windows version&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2025/winver.webp&quot; alt=&quot;winver&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Here is how you determine the windows verison and BUILD Number.&lt;/p&gt;
&lt;p&gt;You can also see it display in &lt;code&gt;systeminfo&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2025/systeminfo.webp&quot; alt=&quot;systeminfo&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Checking how many vulnerabilities your version has&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2025/24H2-1742-exploits.webp&quot; alt=&quot;24H2-1742-exploits&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://www.cvedetails.com/version/1824209/Microsoft-Windows-11-24H2-10.0.26100.1742.html&quot;&gt;https://www.cvedetails.com/version/1824209/Microsoft-Windows-11-24H2-10.0.26100.1742.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Check the website &lt;a href=&quot;https://www.cvedetails.com/product-search.php?vendor_id=0&amp;amp;search=Windows&quot;&gt;https://www.cvedetails.com/product-search.php?vendor_id=0&amp;amp;search=Windows&lt;/a&gt; and look up your version of windows.&lt;/p&gt;
&lt;p&gt;You will see that typically the older a version the more exploits it will have. Not all exploits worry me, but the notiable columns to pay attention to are Code Execution and Privilege escalation.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Instead of a blanket statement of &quot;Update or you get are a security risk&quot;, you can now look at your version and determine how big or small of risk you are taking. \&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/WVQ_2hN_zzs&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Patching Programs From Forks</title><link>https://christitus.com/patching-programs-from-forks/</link><guid isPermaLink="true">https://christitus.com/patching-programs-from-forks/</guid><description>&lt;p&gt;This article explains how to patch programs from forks using Git. It covers the steps to clone a forked repository, create a patch file, and apply it to the original repository.&lt;/p&gt;

&lt;h2&gt;Creating Patch Files&lt;/h2&gt;
&lt;p&gt;Go to the repo that is ahead of the project that you want patched.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git format-patch -1 &amp;lt;COMMITSHA&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Git commit sha located at:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2025/git-sha.webp&quot; alt=&quot;git-sha&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Patching the Original Repo&lt;/h2&gt;
&lt;p&gt;Check the stats and if there will be any rejects from patching&lt;/p&gt;
&lt;p&gt;Stats:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git apply --stat &amp;lt;PATCHFILE&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Check for rejects:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git apply --check &amp;lt;PATCHFILE&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Apply a clean patch:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git am &amp;lt;PATCHFILE&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Apply a patch with rejects:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git am --reject &amp;lt;PATCHFILE&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note: You may need to resolve conflicts manually if there are rejects. Look in the directory for any &lt;code&gt;*.rej&lt;/code&gt; and manually fix the lines that did NOT get applied!&lt;/p&gt;
</description><pubDate>Mon, 01 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This article explains how to patch programs from forks using Git. It covers the steps to clone a forked repository, create a patch file, and apply it to the original repository.&lt;/p&gt;

&lt;h2&gt;Creating Patch Files&lt;/h2&gt;
&lt;p&gt;Go to the repo that is ahead of the project that you want patched.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git format-patch -1 &amp;lt;COMMITSHA&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Git commit sha located at:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2025/git-sha.webp&quot; alt=&quot;git-sha&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Patching the Original Repo&lt;/h2&gt;
&lt;p&gt;Check the stats and if there will be any rejects from patching&lt;/p&gt;
&lt;p&gt;Stats:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git apply --stat &amp;lt;PATCHFILE&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Check for rejects:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git apply --check &amp;lt;PATCHFILE&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Apply a clean patch:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git am &amp;lt;PATCHFILE&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Apply a patch with rejects:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git am --reject &amp;lt;PATCHFILE&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note: You may need to resolve conflicts manually if there are rejects. Look in the directory for any &lt;code&gt;*.rej&lt;/code&gt; and manually fix the lines that did NOT get applied!&lt;/p&gt;
</content:encoded></item><item><title>Setting Up Reshade on Linux with vkBasalt</title><link>https://christitus.com/setting-up-reshade-on-linux/</link><guid isPermaLink="true">https://christitus.com/setting-up-reshade-on-linux/</guid><description>&lt;p&gt;vkBasalt is a Vulkan post-processing layer that brings ReShade-like capabilities to Linux. It allows you to apply various visual effects to Vulkan-based games and applications, enhancing the overall graphical experience.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: This does NOT work with OpenGL games!&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;Setting up vkBasalt&lt;/h2&gt;
&lt;p&gt;Requires 2 packages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;vkBasalt &lt;a href=&quot;https://github.com/DadSchoorse/vkBasalt&quot;&gt;https://github.com/DadSchoorse/vkBasalt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Reshade Shaders/Textures &lt;a href=&quot;https://github.com/crosire/reshade-shaders&quot;&gt;https://github.com/crosire/reshade-shaders&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Arch Installation&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;yay -S vkbasalt lib32-vkbasalt reshade-shaders-git
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Debian/Fedora Installs&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install vkbasalt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;or&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo dnf install vkbasalt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Manually download and extract reshade-shaders pack&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo git clone https://github.com/crosire/reshade-shaders.git /opt/reshade
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Configuartion&lt;/h2&gt;
&lt;p&gt;Install my vkbasalt configuartion with:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone https://github.com/ChrisTitusTech/vkbasalt-conf ~/.config/vkbasalt
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Configuration Explained&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;#effects is a colon seperated list of effect to use
#e.g.: effects = fxaa:cas
#effects will be run in order from left to right
#one effect can be run multiple times e.g. smaa:smaa:cas
#cas    - Contrast Adaptive Sharpening
#dls    - Denoised Luma Sharpening
#fxaa   - Fast Approximate Anti-Aliasing
#smaa   - Enhanced Subpixel Morphological Antialiasing
#lut    - Color LookUp Table
effects = cas

reshadeTexturePath = &quot;/path/to/reshade-shaders/Textures&quot;
reshadeIncludePath = &quot;/path/to/reshade-shaders/Shaders&quot;
depthCapture = off

#toggleKey toggles the effects on/off
toggleKey = Home

#enableOnLaunch sets if the effects are enabled when started
enableOnLaunch = True

#casSharpness specifies the amount of sharpning in the CAS shader.
#0.0 less sharp, less artefacts, but not off
#1.0 maximum sharp more artefacts
#Everything in between is possible
#negative values sharpen even less, up to -1.0 make a visible difference
casSharpness = 0.4

#dlsSharpness specifies the amount of sharpening in the Denoised Luma Sharpening shader.
#Increase to sharpen details within the image.
#0.0 less sharp, less artefacts, but not off
#1.0 maximum sharp more artefacts
dlsSharpness = 0.5

#dlsDenoise specifies the amount of denoising in the Denoised Luma Sharpening shader.
#Increase to limit how intensely film grain within the image gets sharpened.
#0.0 min
#1.0 max
dlsDenoise = 0.17

#fxaaQualitySubpix can effect sharpness.
#1.00 - upper limit (softer)
#0.75 - default amount of filtering
#0.50 - lower limit (sharper, less sub-pixel aliasing removal)
#0.25 - almost off
#0.00 - completely off
fxaaQualitySubpix = 0.75

#fxaaQualityEdgeThreshold is the minimum amount of local contrast required to apply algorithm.
#0.333 - too little (faster)
#0.250 - low quality
#0.166 - default
#0.125 - high quality 
#0.063 - overkill (slower)
fxaaQualityEdgeThreshold = 0.125

#fxaaQualityEdgeThresholdMin trims the algorithm from processing darks.
#0.0833 - upper limit (default, the start of visible unfiltered edges)
#0.0625 - high quality (faster)
#0.0312 - visible limit (slower)
#Special notes: due to the current implementation you
#Likely want to set this to zero.
#As colors that are mostly not-green
#will appear very dark in the green channel!
#Tune by looking at mostly non-green content,
#then start at zero and increase until aliasing is a problem.
fxaaQualityEdgeThresholdMin = 0.0312

#smaaEdgeDetection changes the edge detection shader
#luma  - default
#color - might catch more edges, but is more expensive
smaaEdgeDetection = luma

#smaaThreshold specifies the threshold or sensitivity to edges
#Lowering this value you will be able to detect more edges at the expense of performance.
#Range: [0, 0.5]
#0.1 is a reasonable value, and allows to catch most visible edges.
#0.05 is a rather overkill value, that allows to catch &apos;em all.
smaaThreshold = 0.05

#smaaMaxSearchSteps specifies the maximum steps performed in the horizontal/vertical pattern searches
#Range: [0, 112]
#4  - low
#8  - medium
#16 - high
#32 - ultra
smaaMaxSearchSteps = 32

#smaaMaxSearchStepsDiag specifies the maximum steps performed in the diagonal pattern searches
#Range: [0, 20]
#0  - low, medium
#8  - high
#16 - ultra
smaaMaxSearchStepsDiag = 16

#smaaCornerRounding specifies how much sharp corners will be rounded
#Range: [0, 100]
#25 is a reasonable value
smaaCornerRounding = 25

#lutFile is the path to the LUT file that will be used
#supported are .CUBE files and .png with width == height * height
lutFile = &quot;/path/to/lut&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/l6h24cjmNyk&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Tue, 26 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;vkBasalt is a Vulkan post-processing layer that brings ReShade-like capabilities to Linux. It allows you to apply various visual effects to Vulkan-based games and applications, enhancing the overall graphical experience.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: This does NOT work with OpenGL games!&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;Setting up vkBasalt&lt;/h2&gt;
&lt;p&gt;Requires 2 packages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;vkBasalt &lt;a href=&quot;https://github.com/DadSchoorse/vkBasalt&quot;&gt;https://github.com/DadSchoorse/vkBasalt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Reshade Shaders/Textures &lt;a href=&quot;https://github.com/crosire/reshade-shaders&quot;&gt;https://github.com/crosire/reshade-shaders&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Arch Installation&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;yay -S vkbasalt lib32-vkbasalt reshade-shaders-git
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Debian/Fedora Installs&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install vkbasalt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;or&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo dnf install vkbasalt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Manually download and extract reshade-shaders pack&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo git clone https://github.com/crosire/reshade-shaders.git /opt/reshade
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Configuartion&lt;/h2&gt;
&lt;p&gt;Install my vkbasalt configuartion with:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone https://github.com/ChrisTitusTech/vkbasalt-conf ~/.config/vkbasalt
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Configuration Explained&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;#effects is a colon seperated list of effect to use
#e.g.: effects = fxaa:cas
#effects will be run in order from left to right
#one effect can be run multiple times e.g. smaa:smaa:cas
#cas    - Contrast Adaptive Sharpening
#dls    - Denoised Luma Sharpening
#fxaa   - Fast Approximate Anti-Aliasing
#smaa   - Enhanced Subpixel Morphological Antialiasing
#lut    - Color LookUp Table
effects = cas

reshadeTexturePath = &quot;/path/to/reshade-shaders/Textures&quot;
reshadeIncludePath = &quot;/path/to/reshade-shaders/Shaders&quot;
depthCapture = off

#toggleKey toggles the effects on/off
toggleKey = Home

#enableOnLaunch sets if the effects are enabled when started
enableOnLaunch = True

#casSharpness specifies the amount of sharpning in the CAS shader.
#0.0 less sharp, less artefacts, but not off
#1.0 maximum sharp more artefacts
#Everything in between is possible
#negative values sharpen even less, up to -1.0 make a visible difference
casSharpness = 0.4

#dlsSharpness specifies the amount of sharpening in the Denoised Luma Sharpening shader.
#Increase to sharpen details within the image.
#0.0 less sharp, less artefacts, but not off
#1.0 maximum sharp more artefacts
dlsSharpness = 0.5

#dlsDenoise specifies the amount of denoising in the Denoised Luma Sharpening shader.
#Increase to limit how intensely film grain within the image gets sharpened.
#0.0 min
#1.0 max
dlsDenoise = 0.17

#fxaaQualitySubpix can effect sharpness.
#1.00 - upper limit (softer)
#0.75 - default amount of filtering
#0.50 - lower limit (sharper, less sub-pixel aliasing removal)
#0.25 - almost off
#0.00 - completely off
fxaaQualitySubpix = 0.75

#fxaaQualityEdgeThreshold is the minimum amount of local contrast required to apply algorithm.
#0.333 - too little (faster)
#0.250 - low quality
#0.166 - default
#0.125 - high quality 
#0.063 - overkill (slower)
fxaaQualityEdgeThreshold = 0.125

#fxaaQualityEdgeThresholdMin trims the algorithm from processing darks.
#0.0833 - upper limit (default, the start of visible unfiltered edges)
#0.0625 - high quality (faster)
#0.0312 - visible limit (slower)
#Special notes: due to the current implementation you
#Likely want to set this to zero.
#As colors that are mostly not-green
#will appear very dark in the green channel!
#Tune by looking at mostly non-green content,
#then start at zero and increase until aliasing is a problem.
fxaaQualityEdgeThresholdMin = 0.0312

#smaaEdgeDetection changes the edge detection shader
#luma  - default
#color - might catch more edges, but is more expensive
smaaEdgeDetection = luma

#smaaThreshold specifies the threshold or sensitivity to edges
#Lowering this value you will be able to detect more edges at the expense of performance.
#Range: [0, 0.5]
#0.1 is a reasonable value, and allows to catch most visible edges.
#0.05 is a rather overkill value, that allows to catch &apos;em all.
smaaThreshold = 0.05

#smaaMaxSearchSteps specifies the maximum steps performed in the horizontal/vertical pattern searches
#Range: [0, 112]
#4  - low
#8  - medium
#16 - high
#32 - ultra
smaaMaxSearchSteps = 32

#smaaMaxSearchStepsDiag specifies the maximum steps performed in the diagonal pattern searches
#Range: [0, 20]
#0  - low, medium
#8  - high
#16 - ultra
smaaMaxSearchStepsDiag = 16

#smaaCornerRounding specifies how much sharp corners will be rounded
#Range: [0, 100]
#25 is a reasonable value
smaaCornerRounding = 25

#lutFile is the path to the LUT file that will be used
#supported are .CUBE files and .png with width == height * height
lutFile = &quot;/path/to/lut&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/l6h24cjmNyk&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Hyprland Monitor Config</title><link>https://christitus.com/hyprland-monitor-config/</link><guid isPermaLink="true">https://christitus.com/hyprland-monitor-config/</guid><description>&lt;p&gt;Configuring Monitors in Hyprland is amazing! You can specify monitors by type AND serial numbers.&lt;/p&gt;
&lt;h2&gt;List Monitor details&lt;/h2&gt;
&lt;p&gt;Here is a screenshot of &lt;code&gt;hyprctl monitors&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2025/hyprctl-monitors.webp&quot; alt=&quot;hyprctl&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Add to hyprland.conf&lt;/h2&gt;
&lt;p&gt;Syntax for adding specific monitors with configuration looks like this:
&lt;code&gt;monitor=desc:MONITOR_DESCRIPTION,resolution,position,scale&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Examples:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;################
### MONITORS ###
################

# See https://wiki.hyprland.org/Configuring/Monitors/
# Studio PC Config
monitor=desc:AOP 27HC5R 1207043ED3W01,preferred,auto,1

# KFocus Laptop Config with Work Docking station
monitor=eDP-1,preferred,0x0,1
monitor=desc:Acer Technologies XV271U M3 140400A3B3LIJ,preferred,-2560x0,1
monitor=desc:Acer Technologies XV271U M3 140400DA63LIJ,preferred,-5120x0,1

# Inside PC Monitor Config
monitor=desc:HP Inc. OMEN 27i IPS 6CM10907V6,preferred,0x0,1
monitor=desc:Samsung Electric Company C24F390 HTQH906703,preferred,0x-1080,1
monitor=desc:IDI Elgato Prom. 0x01348D27,preferred,2560x0,1
&lt;/code&gt;&lt;/pre&gt;
</description><pubDate>Thu, 31 Jul 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Configuring Monitors in Hyprland is amazing! You can specify monitors by type AND serial numbers.&lt;/p&gt;
&lt;h2&gt;List Monitor details&lt;/h2&gt;
&lt;p&gt;Here is a screenshot of &lt;code&gt;hyprctl monitors&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2025/hyprctl-monitors.webp&quot; alt=&quot;hyprctl&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Add to hyprland.conf&lt;/h2&gt;
&lt;p&gt;Syntax for adding specific monitors with configuration looks like this:
&lt;code&gt;monitor=desc:MONITOR_DESCRIPTION,resolution,position,scale&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Examples:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;################
### MONITORS ###
################

# See https://wiki.hyprland.org/Configuring/Monitors/
# Studio PC Config
monitor=desc:AOP 27HC5R 1207043ED3W01,preferred,auto,1

# KFocus Laptop Config with Work Docking station
monitor=eDP-1,preferred,0x0,1
monitor=desc:Acer Technologies XV271U M3 140400A3B3LIJ,preferred,-2560x0,1
monitor=desc:Acer Technologies XV271U M3 140400DA63LIJ,preferred,-5120x0,1

# Inside PC Monitor Config
monitor=desc:HP Inc. OMEN 27i IPS 6CM10907V6,preferred,0x0,1
monitor=desc:Samsung Electric Company C24F390 HTQH906703,preferred,0x-1080,1
monitor=desc:IDI Elgato Prom. 0x01348D27,preferred,2560x0,1
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>The Ai Problem</title><link>https://christitus.com/the-ai-problem/</link><guid isPermaLink="true">https://christitus.com/the-ai-problem/</guid><description>&lt;p&gt;Do we really need Google Gemini, Apple Intelligence, or Microsoft CoPilot?&lt;/p&gt;

&lt;h2&gt;A Solution without a Problem&lt;/h2&gt;
&lt;p&gt;Big Tech (Google, Microsoft, and Apple) are pushing these AI assistants down our throat. They don&apos;t really solve anything that we have a problem with. It should also be noted that they understand how bad the optics of these AI assistants are, so they are very adamant at pointing out that the data gathered does NOT get uploaded to their servers. However, they are very vague on what they actually do with our data... other than it is always watching and keeping track of EVERYTHING we do on our devices. They have also never explicitly said that it doesn&apos;t create profiles of our usage, nor have they said they can NOT remotely access it.&lt;/p&gt;
&lt;p&gt;The other issue is it ingesting all your data to &quot;improve&quot; AI. This has a variety of benefits for these large companies as they can use these profiles for advertising packages to sell to other companies. Companies like Roomba have even leaked the screenshots its vacuum took of a woman on the toilet back in 2020. &lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://www.technologyreview.com/2022/12/19/1065306/roomba-irobot-robot-vacuums-artificial-intelligence-training-data-privacy/&quot;&gt;https://www.technologyreview.com/2022/12/19/1065306/roomba-irobot-robot-vacuums-artificial-intelligence-training-data-privacy/&lt;/a&gt; Do we really want to trust Microsoft, Apple, or Google with all our sensitive information? If the AI vacuum company did this... Think about everything you have ever done on your Phone or PC being looked at by &quot;AI&quot;.&lt;/p&gt;
&lt;p&gt;They also use this data to improve &quot;AI&quot; and that data is ours. They are taking it without asking nor are they upfront about how its able to learn by ONLY using OUR DATA!&lt;/p&gt;
&lt;h2&gt;AI can be good&lt;/h2&gt;
&lt;p&gt;Things like programming can be wonderful. GPT, Claude and many other LLMs are fantastic, but are isolated use cases. Most of what people call AI isn&apos;t AI at all. They are ways to extract more money with minimal investment out of their users. They slap &quot;AI Powered&quot; on the side and are able to move more software or retail boxes of that product without anything else being done. Most of the AI products like Gemini, Copilot or Apple AI are surveillance software to extract advertising information or profile users for their own means while giving very little value to the end user. Where &quot;AI&quot; is beneficial is when it is used like an auto-correct on steroids. Photos, Programming, Correcting mistakes, and much more, but giving access to your entire system is a bridge too far and it must remain isolated or you give up your privacy, independence, and hard work.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/Bzgt2HKWmHY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Tue, 01 Jul 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Do we really need Google Gemini, Apple Intelligence, or Microsoft CoPilot?&lt;/p&gt;

&lt;h2&gt;A Solution without a Problem&lt;/h2&gt;
&lt;p&gt;Big Tech (Google, Microsoft, and Apple) are pushing these AI assistants down our throat. They don&apos;t really solve anything that we have a problem with. It should also be noted that they understand how bad the optics of these AI assistants are, so they are very adamant at pointing out that the data gathered does NOT get uploaded to their servers. However, they are very vague on what they actually do with our data... other than it is always watching and keeping track of EVERYTHING we do on our devices. They have also never explicitly said that it doesn&apos;t create profiles of our usage, nor have they said they can NOT remotely access it.&lt;/p&gt;
&lt;p&gt;The other issue is it ingesting all your data to &quot;improve&quot; AI. This has a variety of benefits for these large companies as they can use these profiles for advertising packages to sell to other companies. Companies like Roomba have even leaked the screenshots its vacuum took of a woman on the toilet back in 2020. &lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://www.technologyreview.com/2022/12/19/1065306/roomba-irobot-robot-vacuums-artificial-intelligence-training-data-privacy/&quot;&gt;https://www.technologyreview.com/2022/12/19/1065306/roomba-irobot-robot-vacuums-artificial-intelligence-training-data-privacy/&lt;/a&gt; Do we really want to trust Microsoft, Apple, or Google with all our sensitive information? If the AI vacuum company did this... Think about everything you have ever done on your Phone or PC being looked at by &quot;AI&quot;.&lt;/p&gt;
&lt;p&gt;They also use this data to improve &quot;AI&quot; and that data is ours. They are taking it without asking nor are they upfront about how its able to learn by ONLY using OUR DATA!&lt;/p&gt;
&lt;h2&gt;AI can be good&lt;/h2&gt;
&lt;p&gt;Things like programming can be wonderful. GPT, Claude and many other LLMs are fantastic, but are isolated use cases. Most of what people call AI isn&apos;t AI at all. They are ways to extract more money with minimal investment out of their users. They slap &quot;AI Powered&quot; on the side and are able to move more software or retail boxes of that product without anything else being done. Most of the AI products like Gemini, Copilot or Apple AI are surveillance software to extract advertising information or profile users for their own means while giving very little value to the end user. Where &quot;AI&quot; is beneficial is when it is used like an auto-correct on steroids. Photos, Programming, Correcting mistakes, and much more, but giving access to your entire system is a bridge too far and it must remain isolated or you give up your privacy, independence, and hard work.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/Bzgt2HKWmHY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Cleaning Arch Linux</title><link>https://christitus.com/cleaning-arch-linux/</link><guid isPermaLink="true">https://christitus.com/cleaning-arch-linux/</guid><description>&lt;p&gt;I&apos;ve officially been on Arch Linux for 366 days and have DONE EVERYTHING I can do to break it.&lt;/p&gt;

&lt;p&gt;Not only has it stood the test of time, updates, and my shenanigans, but it is just as good or BETTER than when I started. THE POWER OF LINUX!&lt;/p&gt;
&lt;h2&gt;It SHOULD of Broke&lt;/h2&gt;
&lt;p&gt;Here is a list of things I&apos;ve tried and many on live streams while working. These things I do not recommend doing ever, but I wanted to see how much it could withstand.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PCI Passthrough (Difficult, but it worked great after some tinkering)&lt;/li&gt;
&lt;li&gt;Shrinking and Growing all the partitions on the system drive. Root, Boot, and Home partitions all changed AFTER install.&lt;/li&gt;
&lt;li&gt;Custom Kernels (Zen, Bazzite, lts, etc.) - All were done WITH an nVidia 4070 Super, sometimes with DKMS modules and other times without.&lt;/li&gt;
&lt;li&gt;Multiple DE installs and Window Managers. Hyperland, Sway, i3, KDE, etc. (Some packages are still there and others were purged)&lt;/li&gt;
&lt;li&gt;Changing Display Manager multiple times... currently I don&apos;t have one.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The Bloat of Time&lt;/h2&gt;
&lt;p&gt;With any operating system there is bloat from added programs, packages, and general usage over time. On Windows you are reloading and nuking your OS every couple years or sooner. With Linux you have the power to clean out anything that doesn&apos;t work for you. So you have all the functionality without any of the bloat. &lt;strong&gt;However&lt;/strong&gt;, You must do the debloat and keep things running top notch. Here are a few areas I expanded and cleaned on my Arch Linux install.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cleanup Flatpaks &lt;code&gt;flatpak uninstall --unused&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Find bloat in Root &lt;code&gt;ncdu / --exclude /media --exclude /run/timeshift&lt;/code&gt; Note: My 100GB Root drive filled and ncdu found a bunch of files from ollama and running local LLMs&lt;/li&gt;
&lt;li&gt;Manually installed programs in &lt;code&gt;/opt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Clear pacman cache &lt;code&gt;yay -Scc&lt;/code&gt; Note: Cache needs to be cleared every so often as it does eat disk space&lt;/li&gt;
&lt;li&gt;Old timeshift backups Note: Always backup everything, but prune the crap that is old. I also recommend doing this from Timeshifts GUI!&lt;/li&gt;
&lt;li&gt;Check Partition usage: &lt;code&gt;df -h&lt;/code&gt; to see free space and &lt;code&gt;lsblk&lt;/code&gt; to see mount points on which device&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/4RxaQbb6KV4&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 28 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;ve officially been on Arch Linux for 366 days and have DONE EVERYTHING I can do to break it.&lt;/p&gt;

&lt;p&gt;Not only has it stood the test of time, updates, and my shenanigans, but it is just as good or BETTER than when I started. THE POWER OF LINUX!&lt;/p&gt;
&lt;h2&gt;It SHOULD of Broke&lt;/h2&gt;
&lt;p&gt;Here is a list of things I&apos;ve tried and many on live streams while working. These things I do not recommend doing ever, but I wanted to see how much it could withstand.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PCI Passthrough (Difficult, but it worked great after some tinkering)&lt;/li&gt;
&lt;li&gt;Shrinking and Growing all the partitions on the system drive. Root, Boot, and Home partitions all changed AFTER install.&lt;/li&gt;
&lt;li&gt;Custom Kernels (Zen, Bazzite, lts, etc.) - All were done WITH an nVidia 4070 Super, sometimes with DKMS modules and other times without.&lt;/li&gt;
&lt;li&gt;Multiple DE installs and Window Managers. Hyperland, Sway, i3, KDE, etc. (Some packages are still there and others were purged)&lt;/li&gt;
&lt;li&gt;Changing Display Manager multiple times... currently I don&apos;t have one.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The Bloat of Time&lt;/h2&gt;
&lt;p&gt;With any operating system there is bloat from added programs, packages, and general usage over time. On Windows you are reloading and nuking your OS every couple years or sooner. With Linux you have the power to clean out anything that doesn&apos;t work for you. So you have all the functionality without any of the bloat. &lt;strong&gt;However&lt;/strong&gt;, You must do the debloat and keep things running top notch. Here are a few areas I expanded and cleaned on my Arch Linux install.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cleanup Flatpaks &lt;code&gt;flatpak uninstall --unused&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Find bloat in Root &lt;code&gt;ncdu / --exclude /media --exclude /run/timeshift&lt;/code&gt; Note: My 100GB Root drive filled and ncdu found a bunch of files from ollama and running local LLMs&lt;/li&gt;
&lt;li&gt;Manually installed programs in &lt;code&gt;/opt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Clear pacman cache &lt;code&gt;yay -Scc&lt;/code&gt; Note: Cache needs to be cleared every so often as it does eat disk space&lt;/li&gt;
&lt;li&gt;Old timeshift backups Note: Always backup everything, but prune the crap that is old. I also recommend doing this from Timeshifts GUI!&lt;/li&gt;
&lt;li&gt;Check Partition usage: &lt;code&gt;df -h&lt;/code&gt; to see free space and &lt;code&gt;lsblk&lt;/code&gt; to see mount points on which device&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/4RxaQbb6KV4&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>iSCSI on Boot</title><link>https://christitus.com/iscsi-on-boot/</link><guid isPermaLink="true">https://christitus.com/iscsi-on-boot/</guid><description>&lt;p&gt;This shows how to setup iSCSI on Boot in Linux&lt;/p&gt;

&lt;h2&gt;Installing iSCSI packages&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo pacman -S open-iscsi
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Enable iSCSI to be used&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl enable iscsid.service --now
sudo systemctl enable iscsi.service
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Finding iSCSI Targets&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo iscsiadm -m discovery -t sendtargets -p &amp;lt;target-ip&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Example Usage:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;192.168.1.100:3260,1 iqn.2023-01.com.example:storage.target1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: the iqn from the output you will need that!&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Discover already discovered targets&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo iscsiadm -m session
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Login to Target&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo iscsiadm -m node -T &amp;lt;target-iqn&amp;gt; -p &amp;lt;target-ip&amp;gt; --login
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Set Auto-Login on Boot&lt;/h3&gt;
&lt;p&gt;First setup Automatic Discovery of Target&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo iscsiadm -m node -T &amp;lt;target-iqn&amp;gt; -p &amp;lt;target-ip&amp;gt; --op update -n node.startup -v automatic
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Second grab the UUID from blkid&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo blkid
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Third Auto Mount with &lt;code&gt;/etc/fstab&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;UUID=&amp;lt;UUID from blkid&amp;gt; /mountpoint  &amp;lt;ext4/ntfs/btrfs&amp;gt;  x-systemd.after=network-online.target,x-systemd.automount,x-systemd.mount-timeout=90,_netdev 0 0
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Remove Auto-Login on Boot&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo iscsiadm -m node -u
sudo iscsiadm -m node -o delete -T &amp;lt;target_name&amp;gt; -p &amp;lt;ip_address&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: Also remove any added entries from &lt;code&gt;/etc/fstab&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;p&gt;Too Niche for a video. Let me know in the comments if you&apos;d like to see this.&lt;/p&gt;
</description><pubDate>Mon, 28 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This shows how to setup iSCSI on Boot in Linux&lt;/p&gt;

&lt;h2&gt;Installing iSCSI packages&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo pacman -S open-iscsi
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Enable iSCSI to be used&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl enable iscsid.service --now
sudo systemctl enable iscsi.service
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Finding iSCSI Targets&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo iscsiadm -m discovery -t sendtargets -p &amp;lt;target-ip&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Example Usage:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;192.168.1.100:3260,1 iqn.2023-01.com.example:storage.target1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: the iqn from the output you will need that!&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Discover already discovered targets&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo iscsiadm -m session
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Login to Target&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo iscsiadm -m node -T &amp;lt;target-iqn&amp;gt; -p &amp;lt;target-ip&amp;gt; --login
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Set Auto-Login on Boot&lt;/h3&gt;
&lt;p&gt;First setup Automatic Discovery of Target&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo iscsiadm -m node -T &amp;lt;target-iqn&amp;gt; -p &amp;lt;target-ip&amp;gt; --op update -n node.startup -v automatic
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Second grab the UUID from blkid&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo blkid
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Third Auto Mount with &lt;code&gt;/etc/fstab&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;UUID=&amp;lt;UUID from blkid&amp;gt; /mountpoint  &amp;lt;ext4/ntfs/btrfs&amp;gt;  x-systemd.after=network-online.target,x-systemd.automount,x-systemd.mount-timeout=90,_netdev 0 0
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Remove Auto-Login on Boot&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo iscsiadm -m node -u
sudo iscsiadm -m node -o delete -T &amp;lt;target_name&amp;gt; -p &amp;lt;ip_address&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: Also remove any added entries from &lt;code&gt;/etc/fstab&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;p&gt;Too Niche for a video. Let me know in the comments if you&apos;d like to see this.&lt;/p&gt;
</content:encoded></item><item><title>Jakoolit Hyprland</title><link>https://christitus.com/jakoolit-hyprland/</link><guid isPermaLink="true">https://christitus.com/jakoolit-hyprland/</guid><description>&lt;p&gt;Hyprland has always been an elusive setup to a functional desktop that I enjoy. However, I recently explored JaKoolit and it has been a game changer. This is a guide on how to setup JaKoolit Hyprland on your system.&lt;/p&gt;

&lt;h2&gt;What systems are compatile with JaKoolit Hyprland?&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/JaKooLit&quot;&gt;JaKoolit Hyprland&lt;/a&gt; is compatible with the following systems:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ubuntu 24.04&lt;/li&gt;
&lt;li&gt;Ubuntu 24.10&lt;/li&gt;
&lt;li&gt;Arch Linux&lt;/li&gt;
&lt;li&gt;Fedora&lt;/li&gt;
&lt;li&gt;NixOS&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;He also created basic scripts for each distro repository to install his version of hyprland.&lt;/p&gt;
&lt;h2&gt;How to install JaKoolit Hyprland&lt;/h2&gt;
&lt;p&gt;You can follow his direct instructions, but I wanted to make it easier for people, so I made his scripts directly integrated into &lt;a href=&quot;https://github.com/ChrisTitusTech/linutil&quot;&gt;Linutil&lt;/a&gt;. This way you can install JaKoolit Hyprland with a single command.&lt;/p&gt;
&lt;p&gt;The best part of this is Linutil will auto-detect which distro you are on and install the correct version of JaKoolit Hyprland.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -fsSL christitus.com/linux | sh 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Look under System setup and you&apos;ll see the option to install JaKoolit Hyprland.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2025/jakoolit-hyprland/linutil-hyprland.webp&quot; alt=&quot;Linutil Hyprland&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/83ZZp8wJ-UY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 10 Feb 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Hyprland has always been an elusive setup to a functional desktop that I enjoy. However, I recently explored JaKoolit and it has been a game changer. This is a guide on how to setup JaKoolit Hyprland on your system.&lt;/p&gt;

&lt;h2&gt;What systems are compatile with JaKoolit Hyprland?&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/JaKooLit&quot;&gt;JaKoolit Hyprland&lt;/a&gt; is compatible with the following systems:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ubuntu 24.04&lt;/li&gt;
&lt;li&gt;Ubuntu 24.10&lt;/li&gt;
&lt;li&gt;Arch Linux&lt;/li&gt;
&lt;li&gt;Fedora&lt;/li&gt;
&lt;li&gt;NixOS&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;He also created basic scripts for each distro repository to install his version of hyprland.&lt;/p&gt;
&lt;h2&gt;How to install JaKoolit Hyprland&lt;/h2&gt;
&lt;p&gt;You can follow his direct instructions, but I wanted to make it easier for people, so I made his scripts directly integrated into &lt;a href=&quot;https://github.com/ChrisTitusTech/linutil&quot;&gt;Linutil&lt;/a&gt;. This way you can install JaKoolit Hyprland with a single command.&lt;/p&gt;
&lt;p&gt;The best part of this is Linutil will auto-detect which distro you are on and install the correct version of JaKoolit Hyprland.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -fsSL christitus.com/linux | sh 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Look under System setup and you&apos;ll see the option to install JaKoolit Hyprland.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2025/jakoolit-hyprland/linutil-hyprland.webp&quot; alt=&quot;Linutil Hyprland&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/83ZZp8wJ-UY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Why I Use Linux</title><link>https://christitus.com/why-i-use-linux/</link><guid isPermaLink="true">https://christitus.com/why-i-use-linux/</guid><description>&lt;p&gt;I use EVERY operating system, but I use Linux for my main machine. Its not for security, its not for privacy, its not for speed, and its not for stability.&lt;/p&gt;

&lt;h2&gt;Windows Shortcomings&lt;/h2&gt;
&lt;p&gt;Windows has been my main OS since the 90s and I&apos;ve used it for everything. I&apos;ve used it for gaming, coding, and everything in between. However, in recent years from forced updates and telemetry there is a lot of problems that have come up. I&apos;d even go as far as to say that Windows is the reason most people use Linux, at least initially. Linux is not attractive, but compared to many of the improvements in Windows over the past 10 years, it is makes Linux look like a rockstar. With last years Recall debacle, it is clear that Microsoft is not looking out for the user. However, this isn&apos;t my main reason for using Linux anymore, but it was my main reason for starting to use Linux.&lt;/p&gt;
&lt;h2&gt;MacOS isn&apos;t for me&lt;/h2&gt;
&lt;p&gt;MacOS is also another refuge for Windows users, but I find the lack of customization and lack of control to be a bit much. I&apos;ve used it for a few years, but I don&apos;t like it as much as Linux. I enjoy customizing my system and I have the same fears that Apple is going to start forcing updates and telemetry like Windows or even worse, start to limit what I can do with my system.&lt;/p&gt;
&lt;h2&gt;Linux is the best of all worlds&lt;/h2&gt;
&lt;p&gt;Most Linux virgins will tell you its more secure, private, or stable than Windows. Security can be achieved with Qubes and other security specialized distros with compartmentalization but frankly it sucks. It causes WAY too much friction and is not worth the security or privacy benefits for me. Stability is another thing, I&apos;ve had more stability issues with Linux than Windows. I&apos;ve had to reinstall my OS more times on Linux than Windows. I don&apos;t say this to bash Linux, I love Linux, but I&apos;m just being honest. Most of these stability issues were from either trying to make obscure hardware/software work under Linux or relying on desktop environments and a GUI to do too much. Linux can be VERY stable, but it can also be VERY unstable.&lt;/p&gt;
&lt;p&gt;So Why Linux?&lt;/p&gt;
&lt;p&gt;Simply put, I get more done. I am able to develop more software, I am more creative for YouTube videos, and I am able explore an endless world of possibilities in Linux. No one knows everything about Linux and I do mean NO ONE! Not even the most experienced Linux users knows everything about Linux. There is always something new to learn and I love it because of this. In Mac or Windows there is no mystery for me other than tracking down and fixing things Apple or Microsoft screwed up in recent years, but beyond that its rather boring.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/7-UCkYlTr50&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Sun, 02 Feb 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I use EVERY operating system, but I use Linux for my main machine. Its not for security, its not for privacy, its not for speed, and its not for stability.&lt;/p&gt;

&lt;h2&gt;Windows Shortcomings&lt;/h2&gt;
&lt;p&gt;Windows has been my main OS since the 90s and I&apos;ve used it for everything. I&apos;ve used it for gaming, coding, and everything in between. However, in recent years from forced updates and telemetry there is a lot of problems that have come up. I&apos;d even go as far as to say that Windows is the reason most people use Linux, at least initially. Linux is not attractive, but compared to many of the improvements in Windows over the past 10 years, it is makes Linux look like a rockstar. With last years Recall debacle, it is clear that Microsoft is not looking out for the user. However, this isn&apos;t my main reason for using Linux anymore, but it was my main reason for starting to use Linux.&lt;/p&gt;
&lt;h2&gt;MacOS isn&apos;t for me&lt;/h2&gt;
&lt;p&gt;MacOS is also another refuge for Windows users, but I find the lack of customization and lack of control to be a bit much. I&apos;ve used it for a few years, but I don&apos;t like it as much as Linux. I enjoy customizing my system and I have the same fears that Apple is going to start forcing updates and telemetry like Windows or even worse, start to limit what I can do with my system.&lt;/p&gt;
&lt;h2&gt;Linux is the best of all worlds&lt;/h2&gt;
&lt;p&gt;Most Linux virgins will tell you its more secure, private, or stable than Windows. Security can be achieved with Qubes and other security specialized distros with compartmentalization but frankly it sucks. It causes WAY too much friction and is not worth the security or privacy benefits for me. Stability is another thing, I&apos;ve had more stability issues with Linux than Windows. I&apos;ve had to reinstall my OS more times on Linux than Windows. I don&apos;t say this to bash Linux, I love Linux, but I&apos;m just being honest. Most of these stability issues were from either trying to make obscure hardware/software work under Linux or relying on desktop environments and a GUI to do too much. Linux can be VERY stable, but it can also be VERY unstable.&lt;/p&gt;
&lt;p&gt;So Why Linux?&lt;/p&gt;
&lt;p&gt;Simply put, I get more done. I am able to develop more software, I am more creative for YouTube videos, and I am able explore an endless world of possibilities in Linux. No one knows everything about Linux and I do mean NO ONE! Not even the most experienced Linux users knows everything about Linux. There is always something new to learn and I love it because of this. In Mac or Windows there is no mystery for me other than tracking down and fixing things Apple or Microsoft screwed up in recent years, but beyond that its rather boring.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/7-UCkYlTr50&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Windows to Linux for Powerusers</title><link>https://christitus.com/windows-to-linux/</link><guid isPermaLink="true">https://christitus.com/windows-to-linux/</guid><description>&lt;p&gt;Windows to Linux is a hard transition for many users. I find this especially true for advanced Windows users. Here are all the things I wish I knew before trying to switch to Linux after using Windows for 20+ years.&lt;/p&gt;

&lt;h2&gt;Qualify Yourself and Expectations&lt;/h2&gt;
&lt;p&gt;Understand that Linux is NOT Windows and they work differently. Figure out the shortcomings of Linux in your current workflow and be flexible in learning alternatives or be comfortable dual booting.&lt;/p&gt;
&lt;p&gt;Think about program alternatives and incompatibilities&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Microsoft Office&lt;/li&gt;
&lt;li&gt;Adobe Products&lt;/li&gt;
&lt;li&gt;Gaming Titles that use Anti-Cheat (check &lt;a href=&quot;https://protondb.com&quot;&gt;https://protondb.com&lt;/a&gt; for compatibility)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Why do you want to switch? For me, I was tired of Windows and their update cycle.&lt;/p&gt;
&lt;h2&gt;Setup a Test Environment&lt;/h2&gt;
&lt;p&gt;Before you nuke your Windows and install Linux, you need to understand what you are getting yourself into. The best way is to setup a test environment using either a Virtual Machine or even another PC. I personally recommend using a raspberry pi to cut your teeth in Linux and understanding terminal.&lt;/p&gt;
&lt;h3&gt;Choosing your Distribution&lt;/h3&gt;
&lt;p&gt;There are two types of distributions in Linux, Rolling and Stable A.K.A. LTS (Long Term Service). There is a scale of bleeding edge to really stable, but old packages.&lt;/p&gt;
&lt;p&gt;Most other tutorials will tell you to install ubuntu or mint at this point, but I want you to understand what Linux is capable of and building your own distribution is the best way to learn. There are so many distributions how do you pick one? Let me simplify this decision... Install Debian. Its the most common and easiest to find guides on. Arch Linux is a second choice as it is very friendly on installing any package. Third, would be Fedora as it is a good middle ground between Arch and Debian.&lt;/p&gt;
&lt;p&gt;What about the 100 or so other distributions? Most of these are just the same thing with a few different options that don&apos;t matter or just look different. Once you figure out how to change Linux to your liking you won&apos;t care which one you pick.&lt;/p&gt;
&lt;h4&gt;Rolling Releases&lt;/h4&gt;
&lt;p&gt;Arch Linux is probably the most well known rolling release that has the most up to date packages, but the more of these you install, the more unstable the system will become. It is not uncommon to run into a bad update and have the system start acting up. I don&apos;t recommend this type of distribution, but understand the appeal. Honorable mentions in this space are OpenSUSE tumbleweed, but is more obscure for newbies to the Linux space.&lt;/p&gt;
&lt;h4&gt;Stable Releases&lt;/h4&gt;
&lt;p&gt;These packages can be relatively modern, but not as bleeding edge as Arch or rolling releases. There are three distributions I&apos;d recommend.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fedora (13-month release cycle) - Most modern packages of many stable releases&lt;/li&gt;
&lt;li&gt;Debian (24-month release cycle) - Most common distribution out of all of Linux with most things based on it and My MAIN recommendation.&lt;/li&gt;
&lt;li&gt;Red Hat Enterprise Linux - Rocky (10 year support) - Mostly used in business or areas where nothing will change for a long time. Very old packages and mainly used in server environments.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Understanding Linux&lt;/h3&gt;
&lt;p&gt;Distributions are just pre-packaged components making up Linux. Unlike Windows or Mac, you can choose different options for bootloader, init systems, display rendering, display managers, desktop environments or window managers. Which are the basic components every system has, once on the desktop you can pickup your own file browser, start menu, bars, configuration tools and utilities.&lt;/p&gt;
&lt;p&gt;Linux can be changed in any way you want. Where a pre-packaged system like Windows or Mac all these decisions are made for you and can&apos;t be removed.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You don&apos;t like how the system boots? Change the bootloader from grub to systemd&lt;/li&gt;
&lt;li&gt;Don&apos;t like the way Xorg handles displays? Change to Wayland&lt;/li&gt;
&lt;li&gt;Want a completely different workflow from the GNOME Desktop Environment? Switch to KDE&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Notable Differences from Windows&lt;/h4&gt;
&lt;p&gt;Here is a short list of things you need to know:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Drivers are baked into the Kernel and adding new &quot;drivers&quot; relies on a kernel module that needs to be rebuilt every time the kernel changes. These modules rely on dkms and linux-headers a lot of the time.&lt;/li&gt;
&lt;li&gt;Control Panel and GUI system applications are generally an after thought. System configuration is done in the &lt;code&gt;/etc&lt;/code&gt; folder and User configuration is done in the &lt;code&gt;/home/user/.config&lt;/code&gt; folder. Windows can spread config files everywhere and Linux doesn&apos;t and puts them in these folders depending on if it is systemwide or user based.&lt;/li&gt;
&lt;li&gt;Terminal is needed. Linux try hards always say you can do anything in the GUI and generally don&apos;t use Windows or Mac and don&apos;t know how bad the Linux GUI experience is in comparison. You will need to get comfortable with the terminal. Linux is built for the CLI experience in mind FIRST and the GUI ALWAYS is second or not at all in some cases.&lt;/li&gt;
&lt;li&gt;EVERYTHING can be customized!&lt;/li&gt;
&lt;li&gt;Linux will NOT protect you from yourself. You can do anything you want and break your system.&lt;/li&gt;
&lt;li&gt;Linux FOSS applications are generally less polished, but then again they are FREE!&lt;/li&gt;
&lt;li&gt;Browser-based app alternatives are a way to get around the limitations of FOSS offerings&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;How Programs are Installed&lt;/h4&gt;
&lt;p&gt;The biggest thing a specific distribution gives you is a Package Manager. How it installs programs is something that doesn&apos;t change very much.&lt;/p&gt;
&lt;p&gt;Here are some examples so you don&apos;t go look dumb trying to install packages on a different distribution with a different package manager:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo apt install name&lt;/code&gt; - Debian, Ubuntu, and a TON of Linux distributions use &lt;code&gt;apt&lt;/code&gt; as the package manager.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sudo pacman -Sy name&lt;/code&gt; - Arch-based also uses &lt;code&gt;yay&lt;/code&gt; or &lt;code&gt;paru&lt;/code&gt; to expand this to include almost any Linux package in existence.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sudo dnf install name&lt;/code&gt; - RHEL-based distros like Fedora use this package manager. It used to be &lt;code&gt;yum&lt;/code&gt; instead, but was changed in recent years to dnf.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are a ton of others for different distros, like &lt;code&gt;zypper&lt;/code&gt; for OpenSUSE or &lt;code&gt;swupd&lt;/code&gt; for Clear Linux, but these are pretty niche and you shouldn&apos;t concern yourself with them.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Packages for ALL Distributions&lt;/em&gt; are made using Flatpak, AppImage, Flatpak, and even installing a secondary package manager like homebrew or nix. Everything I just listed works on all distributions and are containerized for the most part.&lt;/p&gt;
&lt;h4&gt;Typical Distribution&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Common alternatives in parenthesis&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bootloader = GRUB (Systemd-boot)&lt;/li&gt;
&lt;li&gt;Init System = Systemd&lt;/li&gt;
&lt;li&gt;Display Render = Wayland (Xorg - Common on Older Distros)&lt;/li&gt;
&lt;li&gt;Display Manager = GDM, SDDM, or LightDM (This is the Login Manager)&lt;/li&gt;
&lt;li&gt;Desktop Environments = KDE, Gnome, Cinnamon, XFCE, Mate, and LXQT (These have gui tool suite to help with system configuration)&lt;/li&gt;
&lt;li&gt;Window Managers (Desktop Environment Alternative)
&lt;ul&gt;
&lt;li&gt;Wayland Based = Sway and Hyprland (riverwm, dwl, and other are still being developed)&lt;/li&gt;
&lt;li&gt;Xorg = BSPWM, DWM, i3, qTile, XMonad, awesomewm, and many others.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example Configuration&lt;/p&gt;
&lt;p&gt;Ubuntu&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bootloader - Grub&lt;/li&gt;
&lt;li&gt;Init System - Systemd&lt;/li&gt;
&lt;li&gt;Display Render - Wayland&lt;/li&gt;
&lt;li&gt;Display Manager - GDM&lt;/li&gt;
&lt;li&gt;Desktop Environment - GNOME&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;First Installation&lt;/h3&gt;
&lt;p&gt;Grab a debian ISO here: &lt;a href=&quot;https://www.debian.org/download&quot;&gt;https://www.debian.org/download&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The basic netinst is fine for now. We just want a sample system to build up and learn on.&lt;/p&gt;
&lt;h3&gt;Second Installation&lt;/h3&gt;
&lt;p&gt;Use Arch Linux here: &lt;a href=&quot;https://archlinux.org/download/&quot;&gt;https://archlinux.org/download/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Instead of using a wizard included with Arch, I recommend walking through all the steps @ &lt;a href=&quot;https://wiki.archlinux.org/title/Installation_guide&quot;&gt;https://wiki.archlinux.org/title/Installation_guide&lt;/a&gt; and learning about what goes into the setup process. Arch does a fantastic job of breaking down each step and I highly recommend their wiki as a resource even when NOT using arch.&lt;/p&gt;
&lt;h3&gt;Third Installation&lt;/h3&gt;
&lt;p&gt;Start messing around with window managers and configuring the system from a command line interface (CLI). This will make you more comfortable with Linux as a whole. After this is done, decide which way you enjoy the most.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/vlN5koqNY5U&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 29 Jan 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Windows to Linux is a hard transition for many users. I find this especially true for advanced Windows users. Here are all the things I wish I knew before trying to switch to Linux after using Windows for 20+ years.&lt;/p&gt;

&lt;h2&gt;Qualify Yourself and Expectations&lt;/h2&gt;
&lt;p&gt;Understand that Linux is NOT Windows and they work differently. Figure out the shortcomings of Linux in your current workflow and be flexible in learning alternatives or be comfortable dual booting.&lt;/p&gt;
&lt;p&gt;Think about program alternatives and incompatibilities&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Microsoft Office&lt;/li&gt;
&lt;li&gt;Adobe Products&lt;/li&gt;
&lt;li&gt;Gaming Titles that use Anti-Cheat (check &lt;a href=&quot;https://protondb.com&quot;&gt;https://protondb.com&lt;/a&gt; for compatibility)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Why do you want to switch? For me, I was tired of Windows and their update cycle.&lt;/p&gt;
&lt;h2&gt;Setup a Test Environment&lt;/h2&gt;
&lt;p&gt;Before you nuke your Windows and install Linux, you need to understand what you are getting yourself into. The best way is to setup a test environment using either a Virtual Machine or even another PC. I personally recommend using a raspberry pi to cut your teeth in Linux and understanding terminal.&lt;/p&gt;
&lt;h3&gt;Choosing your Distribution&lt;/h3&gt;
&lt;p&gt;There are two types of distributions in Linux, Rolling and Stable A.K.A. LTS (Long Term Service). There is a scale of bleeding edge to really stable, but old packages.&lt;/p&gt;
&lt;p&gt;Most other tutorials will tell you to install ubuntu or mint at this point, but I want you to understand what Linux is capable of and building your own distribution is the best way to learn. There are so many distributions how do you pick one? Let me simplify this decision... Install Debian. Its the most common and easiest to find guides on. Arch Linux is a second choice as it is very friendly on installing any package. Third, would be Fedora as it is a good middle ground between Arch and Debian.&lt;/p&gt;
&lt;p&gt;What about the 100 or so other distributions? Most of these are just the same thing with a few different options that don&apos;t matter or just look different. Once you figure out how to change Linux to your liking you won&apos;t care which one you pick.&lt;/p&gt;
&lt;h4&gt;Rolling Releases&lt;/h4&gt;
&lt;p&gt;Arch Linux is probably the most well known rolling release that has the most up to date packages, but the more of these you install, the more unstable the system will become. It is not uncommon to run into a bad update and have the system start acting up. I don&apos;t recommend this type of distribution, but understand the appeal. Honorable mentions in this space are OpenSUSE tumbleweed, but is more obscure for newbies to the Linux space.&lt;/p&gt;
&lt;h4&gt;Stable Releases&lt;/h4&gt;
&lt;p&gt;These packages can be relatively modern, but not as bleeding edge as Arch or rolling releases. There are three distributions I&apos;d recommend.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fedora (13-month release cycle) - Most modern packages of many stable releases&lt;/li&gt;
&lt;li&gt;Debian (24-month release cycle) - Most common distribution out of all of Linux with most things based on it and My MAIN recommendation.&lt;/li&gt;
&lt;li&gt;Red Hat Enterprise Linux - Rocky (10 year support) - Mostly used in business or areas where nothing will change for a long time. Very old packages and mainly used in server environments.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Understanding Linux&lt;/h3&gt;
&lt;p&gt;Distributions are just pre-packaged components making up Linux. Unlike Windows or Mac, you can choose different options for bootloader, init systems, display rendering, display managers, desktop environments or window managers. Which are the basic components every system has, once on the desktop you can pickup your own file browser, start menu, bars, configuration tools and utilities.&lt;/p&gt;
&lt;p&gt;Linux can be changed in any way you want. Where a pre-packaged system like Windows or Mac all these decisions are made for you and can&apos;t be removed.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You don&apos;t like how the system boots? Change the bootloader from grub to systemd&lt;/li&gt;
&lt;li&gt;Don&apos;t like the way Xorg handles displays? Change to Wayland&lt;/li&gt;
&lt;li&gt;Want a completely different workflow from the GNOME Desktop Environment? Switch to KDE&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Notable Differences from Windows&lt;/h4&gt;
&lt;p&gt;Here is a short list of things you need to know:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Drivers are baked into the Kernel and adding new &quot;drivers&quot; relies on a kernel module that needs to be rebuilt every time the kernel changes. These modules rely on dkms and linux-headers a lot of the time.&lt;/li&gt;
&lt;li&gt;Control Panel and GUI system applications are generally an after thought. System configuration is done in the &lt;code&gt;/etc&lt;/code&gt; folder and User configuration is done in the &lt;code&gt;/home/user/.config&lt;/code&gt; folder. Windows can spread config files everywhere and Linux doesn&apos;t and puts them in these folders depending on if it is systemwide or user based.&lt;/li&gt;
&lt;li&gt;Terminal is needed. Linux try hards always say you can do anything in the GUI and generally don&apos;t use Windows or Mac and don&apos;t know how bad the Linux GUI experience is in comparison. You will need to get comfortable with the terminal. Linux is built for the CLI experience in mind FIRST and the GUI ALWAYS is second or not at all in some cases.&lt;/li&gt;
&lt;li&gt;EVERYTHING can be customized!&lt;/li&gt;
&lt;li&gt;Linux will NOT protect you from yourself. You can do anything you want and break your system.&lt;/li&gt;
&lt;li&gt;Linux FOSS applications are generally less polished, but then again they are FREE!&lt;/li&gt;
&lt;li&gt;Browser-based app alternatives are a way to get around the limitations of FOSS offerings&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;How Programs are Installed&lt;/h4&gt;
&lt;p&gt;The biggest thing a specific distribution gives you is a Package Manager. How it installs programs is something that doesn&apos;t change very much.&lt;/p&gt;
&lt;p&gt;Here are some examples so you don&apos;t go look dumb trying to install packages on a different distribution with a different package manager:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo apt install name&lt;/code&gt; - Debian, Ubuntu, and a TON of Linux distributions use &lt;code&gt;apt&lt;/code&gt; as the package manager.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sudo pacman -Sy name&lt;/code&gt; - Arch-based also uses &lt;code&gt;yay&lt;/code&gt; or &lt;code&gt;paru&lt;/code&gt; to expand this to include almost any Linux package in existence.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sudo dnf install name&lt;/code&gt; - RHEL-based distros like Fedora use this package manager. It used to be &lt;code&gt;yum&lt;/code&gt; instead, but was changed in recent years to dnf.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are a ton of others for different distros, like &lt;code&gt;zypper&lt;/code&gt; for OpenSUSE or &lt;code&gt;swupd&lt;/code&gt; for Clear Linux, but these are pretty niche and you shouldn&apos;t concern yourself with them.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Packages for ALL Distributions&lt;/em&gt; are made using Flatpak, AppImage, Flatpak, and even installing a secondary package manager like homebrew or nix. Everything I just listed works on all distributions and are containerized for the most part.&lt;/p&gt;
&lt;h4&gt;Typical Distribution&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Common alternatives in parenthesis&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bootloader = GRUB (Systemd-boot)&lt;/li&gt;
&lt;li&gt;Init System = Systemd&lt;/li&gt;
&lt;li&gt;Display Render = Wayland (Xorg - Common on Older Distros)&lt;/li&gt;
&lt;li&gt;Display Manager = GDM, SDDM, or LightDM (This is the Login Manager)&lt;/li&gt;
&lt;li&gt;Desktop Environments = KDE, Gnome, Cinnamon, XFCE, Mate, and LXQT (These have gui tool suite to help with system configuration)&lt;/li&gt;
&lt;li&gt;Window Managers (Desktop Environment Alternative)
&lt;ul&gt;
&lt;li&gt;Wayland Based = Sway and Hyprland (riverwm, dwl, and other are still being developed)&lt;/li&gt;
&lt;li&gt;Xorg = BSPWM, DWM, i3, qTile, XMonad, awesomewm, and many others.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example Configuration&lt;/p&gt;
&lt;p&gt;Ubuntu&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bootloader - Grub&lt;/li&gt;
&lt;li&gt;Init System - Systemd&lt;/li&gt;
&lt;li&gt;Display Render - Wayland&lt;/li&gt;
&lt;li&gt;Display Manager - GDM&lt;/li&gt;
&lt;li&gt;Desktop Environment - GNOME&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;First Installation&lt;/h3&gt;
&lt;p&gt;Grab a debian ISO here: &lt;a href=&quot;https://www.debian.org/download&quot;&gt;https://www.debian.org/download&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The basic netinst is fine for now. We just want a sample system to build up and learn on.&lt;/p&gt;
&lt;h3&gt;Second Installation&lt;/h3&gt;
&lt;p&gt;Use Arch Linux here: &lt;a href=&quot;https://archlinux.org/download/&quot;&gt;https://archlinux.org/download/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Instead of using a wizard included with Arch, I recommend walking through all the steps @ &lt;a href=&quot;https://wiki.archlinux.org/title/Installation_guide&quot;&gt;https://wiki.archlinux.org/title/Installation_guide&lt;/a&gt; and learning about what goes into the setup process. Arch does a fantastic job of breaking down each step and I highly recommend their wiki as a resource even when NOT using arch.&lt;/p&gt;
&lt;h3&gt;Third Installation&lt;/h3&gt;
&lt;p&gt;Start messing around with window managers and configuring the system from a command line interface (CLI). This will make you more comfortable with Linux as a whole. After this is done, decide which way you enjoy the most.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/vlN5koqNY5U&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>The State of Linux Gaming</title><link>https://christitus.com/the-state-of-linux-gaming/</link><guid isPermaLink="true">https://christitus.com/the-state-of-linux-gaming/</guid><description>&lt;p&gt;SteamOS 3.0 may NEVER get a widespread release. However, what valve is doing and what others in the space are doing are more important.&lt;/p&gt;

&lt;h2&gt;SteamOS never getting general release&lt;/h2&gt;
&lt;p&gt;This is a real possibility after the disaster that was SteamOS 2.0. The problem non-technical people do NOT understand is that Linux is not an everything platform when it comes to gaming. You need to be specific in your hardware and I would NOT install Linux on every piece of hardware I own, because of compatibility issues. Valve realized this with the last release and I doubt they want to support all the different configurations of Linux which is frankly impossible.&lt;/p&gt;
&lt;p&gt;Why is it impossible? Lets walk through a bunch of scenarios to illustrate this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Xorg vs Wayland - Which renderer are they using? The entire linux desktop ecosystem is still split.&lt;/li&gt;
&lt;li&gt;nVidia issues - Tackling the nVidia problems and integrations in Linux is rarely done well, but valve would have to deal with this headache as well. Drivers do NOT work the same way on Linux and are baked in to the kernel instead of tacked on additions like in Windows. Right now, Valve only is working with AMD since their drivers are open source and nVidia&apos;s open source driver is very young and not nearly as good.&lt;/li&gt;
&lt;li&gt;Desktop Environment choices - Each desktop environment has its own configuration and varying levels of customizations. Could you imagine trying to support that? SteamOS right now only runs KDE in desktop mode and SteamOS gaming mode.&lt;/li&gt;
&lt;li&gt;Incompatible Hardware - There is a variety of hardware that does NOT work. Specifically, NEW hardware is a massive problem in Linux. A brand new AMD card usually has a lot of issues on launch day if it works at all. Then there is obscure hardware people use that requires firmware that can also lead to issues.&lt;/li&gt;
&lt;li&gt;Games and Hardware are BUILT with Windows or MacOS in mind. This will ALWAYS mean Linux has to be behind these platforms. Windows will ALWAYS be the leader while the games are built for it and the Hardware will always be tested for it because of this. This isn&apos;t changing anytime soon, but maybe in the distant future.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can expand these issues in to their own sub-categories, but you get the idea. It is NOT in Valves interest to release SteamOS 3.0 for any desktop. Could you imagine walking through your friend on any of the issues I laid out above. Valve also needs to develop support for other launchers like Epic or bundle Heroic Launcher in... which will be a cold day in hell when that happens.&lt;/p&gt;
&lt;h2&gt;SteamOS Future&lt;/h2&gt;
&lt;p&gt;Expanding the hardware support for select handhelds is happening beyond Valve&apos;s product offering. This will be massive for everyone. It increases adoption and gives a reliable experience. The beauty of SteamOS is people do NOT need to know they are in Linux. It offers the plug and play experience that is better than Windows when it works. The marketshare will keep increasing and is becoming something that game makers can NOT ignore. However, the weak spots of Linux are always present, but keep getting better each passing year. The main issues are modding games, non-steam games, and anti-cheat competitive games. These issues I do not think will ever get solved completely or de-throne Windows as the Gaming powerhouse it is.&lt;/p&gt;
&lt;p&gt;It also can NOT be understated that the contributions of Valve to the Linux gaming community are immeasurable with Proton, dealing with publishers, and the general push for overall Linux adoption! This is why we will never see a general release of SteamOS, but it won&apos;t matter as these contributions keep pushing the community forward.&lt;/p&gt;
&lt;h2&gt;SteamOS Alternatives&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Bazzite - This universal blue spin is a lot like SteamOS, but a lot more flexible. It&apos;s team is working hard to implement the things valve will not and never will. Universal launcher support, nVidia support, and many others. While it isn&apos;t a perfect experience you&apos;d have to be woefully ignorant to choose SteamOS over a Bazzite install.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are others mentioned around the web in other youtuber videos like HoloISO (End of Life as of April of 2024), Chimera, WinesapOS (Portable SteamOS), but Bazzite is the standout with its consistency and team behind it. The structure being built in an Atomic system strikes an amazing balance of flexibility and stability that is needed in a desktop system. Check out that video here:&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/0toWysEA3vs&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Tue, 07 Jan 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;SteamOS 3.0 may NEVER get a widespread release. However, what valve is doing and what others in the space are doing are more important.&lt;/p&gt;

&lt;h2&gt;SteamOS never getting general release&lt;/h2&gt;
&lt;p&gt;This is a real possibility after the disaster that was SteamOS 2.0. The problem non-technical people do NOT understand is that Linux is not an everything platform when it comes to gaming. You need to be specific in your hardware and I would NOT install Linux on every piece of hardware I own, because of compatibility issues. Valve realized this with the last release and I doubt they want to support all the different configurations of Linux which is frankly impossible.&lt;/p&gt;
&lt;p&gt;Why is it impossible? Lets walk through a bunch of scenarios to illustrate this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Xorg vs Wayland - Which renderer are they using? The entire linux desktop ecosystem is still split.&lt;/li&gt;
&lt;li&gt;nVidia issues - Tackling the nVidia problems and integrations in Linux is rarely done well, but valve would have to deal with this headache as well. Drivers do NOT work the same way on Linux and are baked in to the kernel instead of tacked on additions like in Windows. Right now, Valve only is working with AMD since their drivers are open source and nVidia&apos;s open source driver is very young and not nearly as good.&lt;/li&gt;
&lt;li&gt;Desktop Environment choices - Each desktop environment has its own configuration and varying levels of customizations. Could you imagine trying to support that? SteamOS right now only runs KDE in desktop mode and SteamOS gaming mode.&lt;/li&gt;
&lt;li&gt;Incompatible Hardware - There is a variety of hardware that does NOT work. Specifically, NEW hardware is a massive problem in Linux. A brand new AMD card usually has a lot of issues on launch day if it works at all. Then there is obscure hardware people use that requires firmware that can also lead to issues.&lt;/li&gt;
&lt;li&gt;Games and Hardware are BUILT with Windows or MacOS in mind. This will ALWAYS mean Linux has to be behind these platforms. Windows will ALWAYS be the leader while the games are built for it and the Hardware will always be tested for it because of this. This isn&apos;t changing anytime soon, but maybe in the distant future.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can expand these issues in to their own sub-categories, but you get the idea. It is NOT in Valves interest to release SteamOS 3.0 for any desktop. Could you imagine walking through your friend on any of the issues I laid out above. Valve also needs to develop support for other launchers like Epic or bundle Heroic Launcher in... which will be a cold day in hell when that happens.&lt;/p&gt;
&lt;h2&gt;SteamOS Future&lt;/h2&gt;
&lt;p&gt;Expanding the hardware support for select handhelds is happening beyond Valve&apos;s product offering. This will be massive for everyone. It increases adoption and gives a reliable experience. The beauty of SteamOS is people do NOT need to know they are in Linux. It offers the plug and play experience that is better than Windows when it works. The marketshare will keep increasing and is becoming something that game makers can NOT ignore. However, the weak spots of Linux are always present, but keep getting better each passing year. The main issues are modding games, non-steam games, and anti-cheat competitive games. These issues I do not think will ever get solved completely or de-throne Windows as the Gaming powerhouse it is.&lt;/p&gt;
&lt;p&gt;It also can NOT be understated that the contributions of Valve to the Linux gaming community are immeasurable with Proton, dealing with publishers, and the general push for overall Linux adoption! This is why we will never see a general release of SteamOS, but it won&apos;t matter as these contributions keep pushing the community forward.&lt;/p&gt;
&lt;h2&gt;SteamOS Alternatives&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Bazzite - This universal blue spin is a lot like SteamOS, but a lot more flexible. It&apos;s team is working hard to implement the things valve will not and never will. Universal launcher support, nVidia support, and many others. While it isn&apos;t a perfect experience you&apos;d have to be woefully ignorant to choose SteamOS over a Bazzite install.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are others mentioned around the web in other youtuber videos like HoloISO (End of Life as of April of 2024), Chimera, WinesapOS (Portable SteamOS), but Bazzite is the standout with its consistency and team behind it. The structure being built in an Atomic system strikes an amazing balance of flexibility and stability that is needed in a desktop system. Check out that video here:&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/0toWysEA3vs&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Enhanced Linux in Windows</title><link>https://christitus.com/enhanced-linux-in-windows/</link><guid isPermaLink="true">https://christitus.com/enhanced-linux-in-windows/</guid><description>&lt;p&gt;Using WSL is great for a lot of things, but often I find it limiting or quirky bugs that don&apos;t happen on HyperV.&lt;/p&gt;

&lt;h2&gt;What is a Enhanced HyperV Session in Windows?&lt;/h2&gt;
&lt;p&gt;This allows full 3D acceleration, large resolutions, audio passthrough, and shared clipboard. There are many other things that this can do, but these are main benefits. I was using WSLg and constantly found little problems about moving around or compiling taking a long time and other issues.&lt;/p&gt;
&lt;p&gt;The biggest problem with WSL is it isn&apos;t Linux. It feels like a bolted on system that I have a hard time programming in.&lt;/p&gt;
&lt;p&gt;Enter HyperV!&lt;/p&gt;
&lt;p&gt;HyperV with Enhanced Session feels like Linux and it is FAST! I can go full screen and using it like a Linux desktop forgetting I am in Windows. The startup is only a few seconds and a fantastic alternative than doing a dual boot.&lt;/p&gt;
&lt;h2&gt;Enabling Enhanced Session&lt;/h2&gt;
&lt;p&gt;Arch Dependencies inside VM&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;yay -S xrdp xorgxrdp
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Windows Configuration (PowerShell)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Set-VMhost -EnableEnhancedSessionMode $True
Set-VM -VMName &quot;NameVM&quot; -EnhancedSessionTransportType HvSocket
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Configuration Script (install script)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash

#
# This script is for Arch Linux to configure XRDP for enhanced session mode
#
# The configuration is adapted from the Ubuntu 16.04 script.
#

if [ &quot;$(id -u)&quot; -ne 0 ]; then
    echo &apos;This script must be run with root privileges&apos; &amp;gt;&amp;amp;2
    exit 1
fi

# Use Qi to check for exact package name
if ! pacman -Qi xrdp &amp;gt; /dev/null ; then
    echo &apos;xrdp not installed. Run makepkg.sh first to install xrdp.&apos; &amp;gt;&amp;amp;2
    exit 1
fi

# Use Qs to allow xorgxrdp-devel-git
if ! pacman -Qs xorgxrdp &amp;gt; /dev/null ; then
    echo &apos;xorgxrdp not installed. Run makepkg.sh first to install xorgxrdp.&apos; &amp;gt;&amp;amp;2
    exit 1
fi

###############################################################################
# Configure XRDP
#
systemctl enable xrdp
systemctl enable xrdp-sesman

# Configure the installed XRDP ini files.
# use vsock transport.
sed -i_orig -e &apos;s/port=3389/port=vsock:\/\/-1:3389/g&apos; /etc/xrdp/xrdp.ini
# use rdp security.
sed -i_orig -e &apos;s/security_layer=negotiate/security_layer=rdp/g&apos; /etc/xrdp/xrdp.ini
# remove encryption validation.
sed -i_orig -e &apos;s/crypt_level=high/crypt_level=none/g&apos; /etc/xrdp/xrdp.ini
# disable bitmap compression since its local its much faster
sed -i_orig -e &apos;s/bitmap_compression=true/bitmap_compression=false/g&apos; /etc/xrdp/xrdp.ini
#
# sed -n -e &apos;s/max_bpp=32/max_bpp=24/g&apos; /etc/xrdp/xrdp.ini

# use the default lightdm x display
# sed -i_orig -e &apos;s/X11DisplayOffset=10/X11DisplayOffset=0/g&apos; /etc/xrdp/sesman.ini
# rename the redirected drives to &apos;shared-drives&apos;
sed -i_orig -e &apos;s/FuseMountName=thinclient_drives/FuseMountName=shared-drives/g&apos; /etc/xrdp/sesman.ini

# Change the allowed_users
echo &quot;allowed_users=anybody&quot; &amp;gt; /etc/X11/Xwrapper.config


#Ensure hv_sock gets loaded
if [ ! -e /etc/modules-load.d/hv_sock.conf ]; then
 echo &quot;hv_sock&quot; &amp;gt; /etc/modules-load.d/hv_sock.conf
fi

# Configure the policy xrdp session
cat &amp;gt; /etc/polkit-1/rules.d/02-allow-colord.rules &amp;lt;&amp;lt;EOF
polkit.addRule(function(action, subject) {
    if ((action.id == &quot;org.freedesktop.color-manager.create-device&quot; ||
         action.id == &quot;org.freedesktop.color-manager.modify-profile&quot; ||
         action.id == &quot;org.freedesktop.color-manager.delete-device&quot; ||
         action.id == &quot;org.freedesktop.color-manager.create-profile&quot; ||
         action.id == &quot;org.freedesktop.color-manager.modify-profile&quot; ||
         action.id == &quot;org.freedesktop.color-manager.delete-profile&quot;) &amp;amp;&amp;amp;
        subject.isInGroup(&quot;users&quot;))
    {
        return polkit.Result.YES;
    }
});
EOF

# Adapt the xrdp pam config
cat &amp;gt; /etc/pam.d/xrdp-sesman &amp;lt;&amp;lt;EOF
#%PAM-1.0
auth        include     system-remote-login
account     include     system-remote-login
password    include     system-remote-login
session     include     system-remote-login
EOF


###############################################################################
# .xinitrc has to be modified manually.
#
echo &quot;You will have to configure .xinitrc to start your windows manager, see https://wiki.archlinux.org/index.php/Xinit&quot;
echo &quot;Reboot your machine to begin using XRDP.&quot;
echo &quot;Example: nano ~/.xinitrc&quot; and launch your desktop environment or window manager. Enter &quot;exec dwm&quot; to launch dwm. 

&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Audio Issues&lt;/h2&gt;
&lt;p&gt;Depending on your audio setup you may run into issues. Currently, pulseaudio-module-xrdp is not working on the AUR for Arch. I have been unsuccessful in getting pipewire working with xrdp.&lt;/p&gt;
&lt;p&gt;Check &lt;a href=&quot;https://github.com/neutrinolabs/pulseaudio-module-xrdp&quot;&gt;https://github.com/neutrinolabs/pulseaudio-module-xrdp&lt;/a&gt; for more information.&lt;/p&gt;
&lt;p&gt;Alternatively, you should be able to use pipewire with xrdp at &lt;a href=&quot;https://github.com/neutrinolabs/pipewire-module-xrdp&quot;&gt;https://github.com/neutrinolabs/pipewire-module-xrdp&lt;/a&gt;. However, at the time of this writing it has not seen an update in 9 months. So this method will probably only work with fedora or debian based systems.&lt;/p&gt;
</description><pubDate>Tue, 31 Dec 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Using WSL is great for a lot of things, but often I find it limiting or quirky bugs that don&apos;t happen on HyperV.&lt;/p&gt;

&lt;h2&gt;What is a Enhanced HyperV Session in Windows?&lt;/h2&gt;
&lt;p&gt;This allows full 3D acceleration, large resolutions, audio passthrough, and shared clipboard. There are many other things that this can do, but these are main benefits. I was using WSLg and constantly found little problems about moving around or compiling taking a long time and other issues.&lt;/p&gt;
&lt;p&gt;The biggest problem with WSL is it isn&apos;t Linux. It feels like a bolted on system that I have a hard time programming in.&lt;/p&gt;
&lt;p&gt;Enter HyperV!&lt;/p&gt;
&lt;p&gt;HyperV with Enhanced Session feels like Linux and it is FAST! I can go full screen and using it like a Linux desktop forgetting I am in Windows. The startup is only a few seconds and a fantastic alternative than doing a dual boot.&lt;/p&gt;
&lt;h2&gt;Enabling Enhanced Session&lt;/h2&gt;
&lt;p&gt;Arch Dependencies inside VM&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;yay -S xrdp xorgxrdp
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Windows Configuration (PowerShell)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Set-VMhost -EnableEnhancedSessionMode $True
Set-VM -VMName &quot;NameVM&quot; -EnhancedSessionTransportType HvSocket
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Configuration Script (install script)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash

#
# This script is for Arch Linux to configure XRDP for enhanced session mode
#
# The configuration is adapted from the Ubuntu 16.04 script.
#

if [ &quot;$(id -u)&quot; -ne 0 ]; then
    echo &apos;This script must be run with root privileges&apos; &amp;gt;&amp;amp;2
    exit 1
fi

# Use Qi to check for exact package name
if ! pacman -Qi xrdp &amp;gt; /dev/null ; then
    echo &apos;xrdp not installed. Run makepkg.sh first to install xrdp.&apos; &amp;gt;&amp;amp;2
    exit 1
fi

# Use Qs to allow xorgxrdp-devel-git
if ! pacman -Qs xorgxrdp &amp;gt; /dev/null ; then
    echo &apos;xorgxrdp not installed. Run makepkg.sh first to install xorgxrdp.&apos; &amp;gt;&amp;amp;2
    exit 1
fi

###############################################################################
# Configure XRDP
#
systemctl enable xrdp
systemctl enable xrdp-sesman

# Configure the installed XRDP ini files.
# use vsock transport.
sed -i_orig -e &apos;s/port=3389/port=vsock:\/\/-1:3389/g&apos; /etc/xrdp/xrdp.ini
# use rdp security.
sed -i_orig -e &apos;s/security_layer=negotiate/security_layer=rdp/g&apos; /etc/xrdp/xrdp.ini
# remove encryption validation.
sed -i_orig -e &apos;s/crypt_level=high/crypt_level=none/g&apos; /etc/xrdp/xrdp.ini
# disable bitmap compression since its local its much faster
sed -i_orig -e &apos;s/bitmap_compression=true/bitmap_compression=false/g&apos; /etc/xrdp/xrdp.ini
#
# sed -n -e &apos;s/max_bpp=32/max_bpp=24/g&apos; /etc/xrdp/xrdp.ini

# use the default lightdm x display
# sed -i_orig -e &apos;s/X11DisplayOffset=10/X11DisplayOffset=0/g&apos; /etc/xrdp/sesman.ini
# rename the redirected drives to &apos;shared-drives&apos;
sed -i_orig -e &apos;s/FuseMountName=thinclient_drives/FuseMountName=shared-drives/g&apos; /etc/xrdp/sesman.ini

# Change the allowed_users
echo &quot;allowed_users=anybody&quot; &amp;gt; /etc/X11/Xwrapper.config


#Ensure hv_sock gets loaded
if [ ! -e /etc/modules-load.d/hv_sock.conf ]; then
 echo &quot;hv_sock&quot; &amp;gt; /etc/modules-load.d/hv_sock.conf
fi

# Configure the policy xrdp session
cat &amp;gt; /etc/polkit-1/rules.d/02-allow-colord.rules &amp;lt;&amp;lt;EOF
polkit.addRule(function(action, subject) {
    if ((action.id == &quot;org.freedesktop.color-manager.create-device&quot; ||
         action.id == &quot;org.freedesktop.color-manager.modify-profile&quot; ||
         action.id == &quot;org.freedesktop.color-manager.delete-device&quot; ||
         action.id == &quot;org.freedesktop.color-manager.create-profile&quot; ||
         action.id == &quot;org.freedesktop.color-manager.modify-profile&quot; ||
         action.id == &quot;org.freedesktop.color-manager.delete-profile&quot;) &amp;amp;&amp;amp;
        subject.isInGroup(&quot;users&quot;))
    {
        return polkit.Result.YES;
    }
});
EOF

# Adapt the xrdp pam config
cat &amp;gt; /etc/pam.d/xrdp-sesman &amp;lt;&amp;lt;EOF
#%PAM-1.0
auth        include     system-remote-login
account     include     system-remote-login
password    include     system-remote-login
session     include     system-remote-login
EOF


###############################################################################
# .xinitrc has to be modified manually.
#
echo &quot;You will have to configure .xinitrc to start your windows manager, see https://wiki.archlinux.org/index.php/Xinit&quot;
echo &quot;Reboot your machine to begin using XRDP.&quot;
echo &quot;Example: nano ~/.xinitrc&quot; and launch your desktop environment or window manager. Enter &quot;exec dwm&quot; to launch dwm. 

&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Audio Issues&lt;/h2&gt;
&lt;p&gt;Depending on your audio setup you may run into issues. Currently, pulseaudio-module-xrdp is not working on the AUR for Arch. I have been unsuccessful in getting pipewire working with xrdp.&lt;/p&gt;
&lt;p&gt;Check &lt;a href=&quot;https://github.com/neutrinolabs/pulseaudio-module-xrdp&quot;&gt;https://github.com/neutrinolabs/pulseaudio-module-xrdp&lt;/a&gt; for more information.&lt;/p&gt;
&lt;p&gt;Alternatively, you should be able to use pipewire with xrdp at &lt;a href=&quot;https://github.com/neutrinolabs/pipewire-module-xrdp&quot;&gt;https://github.com/neutrinolabs/pipewire-module-xrdp&lt;/a&gt;. However, at the time of this writing it has not seen an update in 9 months. So this method will probably only work with fedora or debian based systems.&lt;/p&gt;
</content:encoded></item><item><title>Removing SystemD from Linux</title><link>https://christitus.com/removing-systemd/</link><guid isPermaLink="true">https://christitus.com/removing-systemd/</guid><description>&lt;p&gt;Systemd is great for standardization, but it is insanely bloated. Boot times average around 20 seconds when removing it and using a minimal init system will result in a boot time of only a few seconds. This is a guide on switching to OpenRC.&lt;/p&gt;

&lt;h2&gt;What do I lose?&lt;/h2&gt;
&lt;p&gt;Systemd has a LOT of functions and can do the following, but often we swap out to alternatives anyways.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bootloader (Grub is the alternative)&lt;/li&gt;
&lt;li&gt;Timers (cronie is still widely used instead)&lt;/li&gt;
&lt;li&gt;Networkd (NetworkManager is almost universally used - same goes for resolved for dns resolution)&lt;/li&gt;
&lt;li&gt;Auto mount (A few distros use this but often &lt;code&gt;/etc/fstab&lt;/code&gt; is used instead)&lt;/li&gt;
&lt;li&gt;journald (This I will miss... it is a fantastic system log tool)&lt;/li&gt;
&lt;li&gt;logind (Alternative is elogind - You NEED a login daemon because without it you have to run Xorg as ROOT which only a crazy person would do.)&lt;/li&gt;
&lt;li&gt;timedated ( universal date and time management)&lt;/li&gt;
&lt;li&gt;udev (device manager and very useful for using rules to manage device without elevation. Ex. Managing backlight on a laptop)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Switch to OpenRC&lt;/h2&gt;
&lt;p&gt;The switch is very easy&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install openrc sysvinit-core
sudo reboot
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After restart process is complete install the following packages to fill in any gaps missing with systemd no longer on the system:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install elogind libpam-elogind orphan-sysvinit-scripts systemctl procps
sudo reboot
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://lecorbeausvault.wordpress.com/2022/02/07/debian-switching-init-system-easily-openrc-sysvinit-runit/&quot;&gt;https://lecorbeausvault.wordpress.com/2022/02/07/debian-switching-init-system-easily-openrc-sysvinit-runit/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Prevent Systemd from reinstalling&lt;/h2&gt;
&lt;p&gt;Create &lt;code&gt;/etc/apt/preferences.d/systemd&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Package: systemd
Pin: release *
Pin-Priority: -1
 
Package: *systemd*
Pin: release *
Pin-Priority: -1
 
Package: systemd:i386
Pin: release *
Pin-Priority: -1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;APT-Mark holds&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-mark hold libsystemd0
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Systemd vs OpenRC Commands&lt;/h2&gt;
&lt;p&gt;This is a comparison of the different init systems and run commands.&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://wiki.archlinux.org/title/OpenRC#Usage&quot;&gt;https://wiki.archlinux.org/title/OpenRC#Usage&lt;/a&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;SystemD&lt;/th&gt;
&lt;th&gt;SysVinit&lt;/th&gt;
&lt;th&gt;OpenRC&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;systemctl list-units&lt;/td&gt;
&lt;td&gt;rc.d list&lt;/td&gt;
&lt;td&gt;rc-status&lt;/td&gt;
&lt;td&gt;List running services status&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;systemctl --failed&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;rc-status --crashed&lt;/td&gt;
&lt;td&gt;Check failed services&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;systemctl --all&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;rc-update -v show&lt;/td&gt;
&lt;td&gt;Display all available services.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;systemctl (start, stop, restart, status) daemon.service&lt;/td&gt;
&lt;td&gt;rc.d (start, stop, restart) daemon&lt;/td&gt;
&lt;td&gt;rc-service daemon (start, stop, restart, status)&lt;/td&gt;
&lt;td&gt;Change service state.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;systemctl (enable, disable) daemon.service&lt;/td&gt;
&lt;td&gt;chkconfig daemon (on, off)&lt;/td&gt;
&lt;td&gt;rc-update (add, del) daemon&lt;/td&gt;
&lt;td&gt;Turn service on or off.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;systemctl daemon-reload&lt;/td&gt;
&lt;td&gt;chkconfig daemon --add&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Create or modify configuration.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Creating an OpenRC Service/Daemon&lt;/h2&gt;
&lt;p&gt;Official Manual page: &lt;a href=&quot;https://github.com/OpenRC/openrc/blob/master/service-script-guide.md&quot;&gt;https://github.com/OpenRC/openrc/blob/master/service-script-guide.md&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Create a service script here: &lt;code&gt;/etc/init.d/mydaemon&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/sbin/openrc-run

command=&quot;/usr/sbin/mydaemon&quot;
command_args=&quot;-c /etc/mydaemon.conf&quot;
command_user=&quot;user:group&quot;
description=&quot;super essential service&quot;
pidfile=&quot;/var/run/mydaemon.pid&quot;

depend() {
  need localmount
  use logger
}

checkconfig() {
  ...
}

start_pre() {
  # Prevent of double check
  if [ &quot;${RC_CMD}&quot; != &quot;restart&quot; ] ; then
    checkconfig || return $?
  fi
}

stop_pre() {
  if [ &quot;${RC_CMD}&quot; = &quot;restart&quot; ] ; then
    checkconfig || return $?
  fi
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;No Video Planned&lt;/h2&gt;
&lt;p&gt;Let me know below if you would like a video on this topic.&lt;/p&gt;
</description><pubDate>Tue, 31 Dec 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Systemd is great for standardization, but it is insanely bloated. Boot times average around 20 seconds when removing it and using a minimal init system will result in a boot time of only a few seconds. This is a guide on switching to OpenRC.&lt;/p&gt;

&lt;h2&gt;What do I lose?&lt;/h2&gt;
&lt;p&gt;Systemd has a LOT of functions and can do the following, but often we swap out to alternatives anyways.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bootloader (Grub is the alternative)&lt;/li&gt;
&lt;li&gt;Timers (cronie is still widely used instead)&lt;/li&gt;
&lt;li&gt;Networkd (NetworkManager is almost universally used - same goes for resolved for dns resolution)&lt;/li&gt;
&lt;li&gt;Auto mount (A few distros use this but often &lt;code&gt;/etc/fstab&lt;/code&gt; is used instead)&lt;/li&gt;
&lt;li&gt;journald (This I will miss... it is a fantastic system log tool)&lt;/li&gt;
&lt;li&gt;logind (Alternative is elogind - You NEED a login daemon because without it you have to run Xorg as ROOT which only a crazy person would do.)&lt;/li&gt;
&lt;li&gt;timedated ( universal date and time management)&lt;/li&gt;
&lt;li&gt;udev (device manager and very useful for using rules to manage device without elevation. Ex. Managing backlight on a laptop)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Switch to OpenRC&lt;/h2&gt;
&lt;p&gt;The switch is very easy&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install openrc sysvinit-core
sudo reboot
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After restart process is complete install the following packages to fill in any gaps missing with systemd no longer on the system:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install elogind libpam-elogind orphan-sysvinit-scripts systemctl procps
sudo reboot
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://lecorbeausvault.wordpress.com/2022/02/07/debian-switching-init-system-easily-openrc-sysvinit-runit/&quot;&gt;https://lecorbeausvault.wordpress.com/2022/02/07/debian-switching-init-system-easily-openrc-sysvinit-runit/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Prevent Systemd from reinstalling&lt;/h2&gt;
&lt;p&gt;Create &lt;code&gt;/etc/apt/preferences.d/systemd&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Package: systemd
Pin: release *
Pin-Priority: -1
 
Package: *systemd*
Pin: release *
Pin-Priority: -1
 
Package: systemd:i386
Pin: release *
Pin-Priority: -1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;APT-Mark holds&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-mark hold libsystemd0
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Systemd vs OpenRC Commands&lt;/h2&gt;
&lt;p&gt;This is a comparison of the different init systems and run commands.&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://wiki.archlinux.org/title/OpenRC#Usage&quot;&gt;https://wiki.archlinux.org/title/OpenRC#Usage&lt;/a&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;SystemD&lt;/th&gt;
&lt;th&gt;SysVinit&lt;/th&gt;
&lt;th&gt;OpenRC&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;systemctl list-units&lt;/td&gt;
&lt;td&gt;rc.d list&lt;/td&gt;
&lt;td&gt;rc-status&lt;/td&gt;
&lt;td&gt;List running services status&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;systemctl --failed&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;rc-status --crashed&lt;/td&gt;
&lt;td&gt;Check failed services&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;systemctl --all&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;rc-update -v show&lt;/td&gt;
&lt;td&gt;Display all available services.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;systemctl (start, stop, restart, status) daemon.service&lt;/td&gt;
&lt;td&gt;rc.d (start, stop, restart) daemon&lt;/td&gt;
&lt;td&gt;rc-service daemon (start, stop, restart, status)&lt;/td&gt;
&lt;td&gt;Change service state.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;systemctl (enable, disable) daemon.service&lt;/td&gt;
&lt;td&gt;chkconfig daemon (on, off)&lt;/td&gt;
&lt;td&gt;rc-update (add, del) daemon&lt;/td&gt;
&lt;td&gt;Turn service on or off.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;systemctl daemon-reload&lt;/td&gt;
&lt;td&gt;chkconfig daemon --add&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Create or modify configuration.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Creating an OpenRC Service/Daemon&lt;/h2&gt;
&lt;p&gt;Official Manual page: &lt;a href=&quot;https://github.com/OpenRC/openrc/blob/master/service-script-guide.md&quot;&gt;https://github.com/OpenRC/openrc/blob/master/service-script-guide.md&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Create a service script here: &lt;code&gt;/etc/init.d/mydaemon&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/sbin/openrc-run

command=&quot;/usr/sbin/mydaemon&quot;
command_args=&quot;-c /etc/mydaemon.conf&quot;
command_user=&quot;user:group&quot;
description=&quot;super essential service&quot;
pidfile=&quot;/var/run/mydaemon.pid&quot;

depend() {
  need localmount
  use logger
}

checkconfig() {
  ...
}

start_pre() {
  # Prevent of double check
  if [ &quot;${RC_CMD}&quot; != &quot;restart&quot; ] ; then
    checkconfig || return $?
  fi
}

stop_pre() {
  if [ &quot;${RC_CMD}&quot; = &quot;restart&quot; ] ; then
    checkconfig || return $?
  fi
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;No Video Planned&lt;/h2&gt;
&lt;p&gt;Let me know below if you would like a video on this topic.&lt;/p&gt;
</content:encoded></item><item><title>The Microsoft Recall Situation</title><link>https://christitus.com/microsoft-recall-situation/</link><guid isPermaLink="true">https://christitus.com/microsoft-recall-situation/</guid><description>&lt;p&gt;The Microsoft Recall situation is a serious issue as the feature has been spotted in all systems that are updated in 24H2. Let&apos;s go over what this feature is and how it is implemented depending on your system.&lt;/p&gt;

&lt;h2&gt;What is Recall&lt;/h2&gt;
&lt;p&gt;Microsoft Recall is a feature that takes screenshots every 5 seconds and OCR&apos;s what is on your screen so it can &quot;recall&quot; anything you have done on your PC. This feature is a serious privacy concern as it can capture sensitive information. Microsoft has promised that it only stores this data locally and does not send it to their servers.&lt;/p&gt;
&lt;h2&gt;Recall on 24H2&lt;/h2&gt;
&lt;p&gt;This feature was initially said to only work with ARM-based CPUs with a Copilot+ chip or NPU chip. However, it has been spotted on all systems that have been updated to 24H2. What is it doing and is it active on all these x86 systems?&lt;/p&gt;
&lt;h2&gt;How to Check or Disable Recall Feature&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;DISM /Online /Get-FeatureInfo /FeatureName:Recall
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Disable Recall&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;DISM /Online /Disable-Feature /FeatureName:Recall
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: removing recall feature from an offline image breaks the new file explorer reverting its look to the old one.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Source files referenced in Feature located in &lt;code&gt;C:\Windows\SystemApps\MicrosoftWindows.Client.AIX_cw5n1h2txyewy&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2024/microsoft-recall-situation/recall-aix-files.png&quot; alt=&quot;Recall Aix Files&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Recall Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A Copilot+ PC
&lt;ul&gt;
&lt;li&gt;Qualcomm&apos;s Snapdragon X Elite processors&lt;/li&gt;
&lt;li&gt;Intel&apos;s Core Ultra processors&lt;/li&gt;
&lt;li&gt;AMD&apos;s AI 300 Series processors&lt;/li&gt;
&lt;li&gt;Besides the Copilot+ Certification, it maybe possible with any CPU with a NPU chip.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Windows 24H2&lt;/li&gt;
&lt;li&gt;16 GB RAM&lt;/li&gt;
&lt;li&gt;8 logical processors&lt;/li&gt;
&lt;li&gt;256 GB storage capacity
&lt;ul&gt;
&lt;li&gt;To enable Recall, you need at least 50 GB of space free&lt;/li&gt;
&lt;li&gt;Snapshot capture automatically pauses once the device has less than 25 GB of disk space available&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Explorer Recall Problems&lt;/h2&gt;
&lt;p&gt;If you remove Recall from an offline image, the new file explorer will break and revert to the old one. This is was originally thought to be from the removal of the Recall feature, but it is actually due to the removal of the AIX package which in turn removes the &lt;code&gt;Microsoft.WindowsAppRuntime.CBS_cw5n1h2txyewy&lt;/code&gt; package.&lt;/p&gt;
&lt;p&gt;This CBS package is a library responsible for the new file explorer and removing it will revert the file explorer to the old one.&lt;/p&gt;
&lt;p&gt;So why did this happen? The AIX package (AKA Recall) manifest references the CBS package, so when you remove the AIX package, it removes the CBS package as well. MicrosoftWindows.Client.FileExp_cw5n1h2txyewy (File Explorer) is dependent on the Microsoft.WindowsAppRuntime.CBS_cw5n1h2txyewy package but it is not referenced in the File Explorer manifest.&lt;/p&gt;
&lt;p&gt;This would cause the new file explorer to break and revert to the old one because that package is a library that gives the new look to explorer with tabs.&lt;/p&gt;
&lt;h3&gt;The Explorer Fix in Offline Images&lt;/h3&gt;
&lt;p&gt;To fix the new file explorer in offline images, you need to add the &lt;code&gt;Microsoft.WindowsAppRuntime.CBS_cw5n1h2txyewy&lt;/code&gt; package back to the image. This can be done by adding the package back to the image using the following command:&lt;/p&gt;
&lt;p&gt;This was done in pull request #2947 Source: &lt;a href=&quot;https://github.com/ChrisTitusTech/winutil/pull/2947/files&quot;&gt;https://github.com/ChrisTitusTech/winutil/pull/2947/files&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; # Detect Windows 11 24H2 and add dependency to FileExp to prevent Explorer look from going back - thanks @WitherOrNot and @thecatontheceiling
        if ((Test-CompatibleImage $imgVersion $([System.Version]::new(10,0,26100,1))) -eq $true)
        {
            try
            {
                if (Test-Path &quot;$scratchDir\Windows\SystemApps\MicrosoftWindows.Client.FileExp_cw5n1h2txyewy\appxmanifest.xml&quot; -PathType Leaf)
                {
                    # Found the culprit. Do the following:

                    # 1. Take ownership of the file, from TrustedInstaller to Administrators
                    takeown /F &quot;$scratchDir\Windows\SystemApps\MicrosoftWindows.Client.FileExp_cw5n1h2txyewy\appxmanifest.xml&quot; /A

                    # 2. Set ACLs so that we can write to it
                    icacls &quot;$scratchDir\Windows\SystemApps\MicrosoftWindows.Client.FileExp_cw5n1h2txyewy\appxmanifest.xml&quot; /grant &quot;$(Get-LocalizedUsers -admins $true):(M)&quot; | Out-Host

                    # 3. Open the file and do the modification
                    $appxManifest = Get-Content -Path &quot;$scratchDir\Windows\SystemApps\MicrosoftWindows.Client.FileExp_cw5n1h2txyewy\appxmanifest.xml&quot;
                    $originalLine = $appxManifest[13]
                    $dependency = &quot;`n        &amp;lt;PackageDependency Name=`&quot;Microsoft.WindowsAppRuntime.CBS`&quot; MinVersion=`&quot;1.0.0.0`&quot; Publisher=`&quot;CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US`&quot; /&amp;gt;&quot;
                    $appxManifest[13] = &quot;$originalLine$dependency&quot;
                    Set-Content -Path &quot;$scratchDir\Windows\SystemApps\MicrosoftWindows.Client.FileExp_cw5n1h2txyewy\appxmanifest.xml&quot; -Value $appxManifest -Force -Encoding utf8
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Credits&lt;/h2&gt;
&lt;p&gt;Big shoutout to WitherorNot, CodingWonders, fish bazooka, and thecatontheceiling for figuring out the fix for the new file explorer in offline images and tracking down this information.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/gBqIUkmVel8&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 28 Oct 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The Microsoft Recall situation is a serious issue as the feature has been spotted in all systems that are updated in 24H2. Let&apos;s go over what this feature is and how it is implemented depending on your system.&lt;/p&gt;

&lt;h2&gt;What is Recall&lt;/h2&gt;
&lt;p&gt;Microsoft Recall is a feature that takes screenshots every 5 seconds and OCR&apos;s what is on your screen so it can &quot;recall&quot; anything you have done on your PC. This feature is a serious privacy concern as it can capture sensitive information. Microsoft has promised that it only stores this data locally and does not send it to their servers.&lt;/p&gt;
&lt;h2&gt;Recall on 24H2&lt;/h2&gt;
&lt;p&gt;This feature was initially said to only work with ARM-based CPUs with a Copilot+ chip or NPU chip. However, it has been spotted on all systems that have been updated to 24H2. What is it doing and is it active on all these x86 systems?&lt;/p&gt;
&lt;h2&gt;How to Check or Disable Recall Feature&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;DISM /Online /Get-FeatureInfo /FeatureName:Recall
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Disable Recall&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;DISM /Online /Disable-Feature /FeatureName:Recall
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: removing recall feature from an offline image breaks the new file explorer reverting its look to the old one.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Source files referenced in Feature located in &lt;code&gt;C:\Windows\SystemApps\MicrosoftWindows.Client.AIX_cw5n1h2txyewy&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2024/microsoft-recall-situation/recall-aix-files.png&quot; alt=&quot;Recall Aix Files&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Recall Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A Copilot+ PC
&lt;ul&gt;
&lt;li&gt;Qualcomm&apos;s Snapdragon X Elite processors&lt;/li&gt;
&lt;li&gt;Intel&apos;s Core Ultra processors&lt;/li&gt;
&lt;li&gt;AMD&apos;s AI 300 Series processors&lt;/li&gt;
&lt;li&gt;Besides the Copilot+ Certification, it maybe possible with any CPU with a NPU chip.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Windows 24H2&lt;/li&gt;
&lt;li&gt;16 GB RAM&lt;/li&gt;
&lt;li&gt;8 logical processors&lt;/li&gt;
&lt;li&gt;256 GB storage capacity
&lt;ul&gt;
&lt;li&gt;To enable Recall, you need at least 50 GB of space free&lt;/li&gt;
&lt;li&gt;Snapshot capture automatically pauses once the device has less than 25 GB of disk space available&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Explorer Recall Problems&lt;/h2&gt;
&lt;p&gt;If you remove Recall from an offline image, the new file explorer will break and revert to the old one. This is was originally thought to be from the removal of the Recall feature, but it is actually due to the removal of the AIX package which in turn removes the &lt;code&gt;Microsoft.WindowsAppRuntime.CBS_cw5n1h2txyewy&lt;/code&gt; package.&lt;/p&gt;
&lt;p&gt;This CBS package is a library responsible for the new file explorer and removing it will revert the file explorer to the old one.&lt;/p&gt;
&lt;p&gt;So why did this happen? The AIX package (AKA Recall) manifest references the CBS package, so when you remove the AIX package, it removes the CBS package as well. MicrosoftWindows.Client.FileExp_cw5n1h2txyewy (File Explorer) is dependent on the Microsoft.WindowsAppRuntime.CBS_cw5n1h2txyewy package but it is not referenced in the File Explorer manifest.&lt;/p&gt;
&lt;p&gt;This would cause the new file explorer to break and revert to the old one because that package is a library that gives the new look to explorer with tabs.&lt;/p&gt;
&lt;h3&gt;The Explorer Fix in Offline Images&lt;/h3&gt;
&lt;p&gt;To fix the new file explorer in offline images, you need to add the &lt;code&gt;Microsoft.WindowsAppRuntime.CBS_cw5n1h2txyewy&lt;/code&gt; package back to the image. This can be done by adding the package back to the image using the following command:&lt;/p&gt;
&lt;p&gt;This was done in pull request #2947 Source: &lt;a href=&quot;https://github.com/ChrisTitusTech/winutil/pull/2947/files&quot;&gt;https://github.com/ChrisTitusTech/winutil/pull/2947/files&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; # Detect Windows 11 24H2 and add dependency to FileExp to prevent Explorer look from going back - thanks @WitherOrNot and @thecatontheceiling
        if ((Test-CompatibleImage $imgVersion $([System.Version]::new(10,0,26100,1))) -eq $true)
        {
            try
            {
                if (Test-Path &quot;$scratchDir\Windows\SystemApps\MicrosoftWindows.Client.FileExp_cw5n1h2txyewy\appxmanifest.xml&quot; -PathType Leaf)
                {
                    # Found the culprit. Do the following:

                    # 1. Take ownership of the file, from TrustedInstaller to Administrators
                    takeown /F &quot;$scratchDir\Windows\SystemApps\MicrosoftWindows.Client.FileExp_cw5n1h2txyewy\appxmanifest.xml&quot; /A

                    # 2. Set ACLs so that we can write to it
                    icacls &quot;$scratchDir\Windows\SystemApps\MicrosoftWindows.Client.FileExp_cw5n1h2txyewy\appxmanifest.xml&quot; /grant &quot;$(Get-LocalizedUsers -admins $true):(M)&quot; | Out-Host

                    # 3. Open the file and do the modification
                    $appxManifest = Get-Content -Path &quot;$scratchDir\Windows\SystemApps\MicrosoftWindows.Client.FileExp_cw5n1h2txyewy\appxmanifest.xml&quot;
                    $originalLine = $appxManifest[13]
                    $dependency = &quot;`n        &amp;lt;PackageDependency Name=`&quot;Microsoft.WindowsAppRuntime.CBS`&quot; MinVersion=`&quot;1.0.0.0`&quot; Publisher=`&quot;CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US`&quot; /&amp;gt;&quot;
                    $appxManifest[13] = &quot;$originalLine$dependency&quot;
                    Set-Content -Path &quot;$scratchDir\Windows\SystemApps\MicrosoftWindows.Client.FileExp_cw5n1h2txyewy\appxmanifest.xml&quot; -Value $appxManifest -Force -Encoding utf8
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Credits&lt;/h2&gt;
&lt;p&gt;Big shoutout to WitherorNot, CodingWonders, fish bazooka, and thecatontheceiling for figuring out the fix for the new file explorer in offline images and tracking down this information.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/gBqIUkmVel8&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>The Most Popular Windows Utility</title><link>https://christitus.com/winutil-install/</link><guid isPermaLink="true">https://christitus.com/winutil-install/</guid><description>&lt;p&gt;This is the biggest update to WinUtil since its inception. It is now a full-fledged Windows utility suite. It has a lot of new features and improvements. It is now a must-have utility for Windows users.&lt;/p&gt;

&lt;p&gt;The #1 Most Stared PowerShell project on GitHub!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2024/winutil-install/top-powershell.webp&quot; alt=&quot;Top Powershell&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Install Programs - Install multiple programs with a single click.&lt;/li&gt;
&lt;li&gt;Uninstall Programs - Uninstall multiple programs with a single click.&lt;/li&gt;
&lt;li&gt;Update Programs - Update multiple programs with a single click.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Tweaks&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Use standard tweaks to improve Windows performance.&lt;/li&gt;
&lt;li&gt;I also recommend using the following advanced tweaks:
&lt;ul&gt;
&lt;li&gt;Disable Microsoft Copilot&lt;/li&gt;
&lt;li&gt;Set Classic Right-Click Menu&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2024/winutil-install/advanced-tweaks.webp&quot; alt=&quot;Advanced Tweaks&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: DO NOT click everything in advanced tweaks... your system may become unstable.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;Updates&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;I still recommend Security Updates policy. It delays security updates 4 days and feature updates up to 2 years. This ensures stability and reliability.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Microwin&lt;/h2&gt;
&lt;p&gt;The 4 minute install ISO. It is a minimal Windows 10 ISO with WinUtil pre-installed. It is perfect for a fresh install.&lt;/p&gt;
&lt;p&gt;No customizations or removals of official Microsoft products... but no added bloatware or apps. Its just like Microsoft used to Package windows during the Windows 7 era.&lt;/p&gt;
&lt;h2&gt;Official Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;GitHub - &lt;a href=&quot;https://github.com/ChrisTitusTech/winutil&quot;&gt;https://github.com/ChrisTitusTech/winutil&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Download - &lt;a href=&quot;https://christitus.com/downloads&quot;&gt;https://christitus.com/downloads&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Documentation - &lt;a href=&quot;https://christitustech.github.io/winutil/&quot;&gt;https://christitustech.github.io/winutil/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/92SM8Az5QVM&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 13 Sep 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This is the biggest update to WinUtil since its inception. It is now a full-fledged Windows utility suite. It has a lot of new features and improvements. It is now a must-have utility for Windows users.&lt;/p&gt;

&lt;p&gt;The #1 Most Stared PowerShell project on GitHub!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2024/winutil-install/top-powershell.webp&quot; alt=&quot;Top Powershell&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Install Programs - Install multiple programs with a single click.&lt;/li&gt;
&lt;li&gt;Uninstall Programs - Uninstall multiple programs with a single click.&lt;/li&gt;
&lt;li&gt;Update Programs - Update multiple programs with a single click.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Tweaks&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Use standard tweaks to improve Windows performance.&lt;/li&gt;
&lt;li&gt;I also recommend using the following advanced tweaks:
&lt;ul&gt;
&lt;li&gt;Disable Microsoft Copilot&lt;/li&gt;
&lt;li&gt;Set Classic Right-Click Menu&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2024/winutil-install/advanced-tweaks.webp&quot; alt=&quot;Advanced Tweaks&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: DO NOT click everything in advanced tweaks... your system may become unstable.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;Updates&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;I still recommend Security Updates policy. It delays security updates 4 days and feature updates up to 2 years. This ensures stability and reliability.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Microwin&lt;/h2&gt;
&lt;p&gt;The 4 minute install ISO. It is a minimal Windows 10 ISO with WinUtil pre-installed. It is perfect for a fresh install.&lt;/p&gt;
&lt;p&gt;No customizations or removals of official Microsoft products... but no added bloatware or apps. Its just like Microsoft used to Package windows during the Windows 7 era.&lt;/p&gt;
&lt;h2&gt;Official Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;GitHub - &lt;a href=&quot;https://github.com/ChrisTitusTech/winutil&quot;&gt;https://github.com/ChrisTitusTech/winutil&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Download - &lt;a href=&quot;https://christitus.com/downloads&quot;&gt;https://christitus.com/downloads&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Documentation - &lt;a href=&quot;https://christitustech.github.io/winutil/&quot;&gt;https://christitustech.github.io/winutil/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/92SM8Az5QVM&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Crowdstrike Alternatives</title><link>https://christitus.com/crowdstrike-alternatives/</link><guid isPermaLink="true">https://christitus.com/crowdstrike-alternatives/</guid><description>&lt;p&gt;With Crowdstrike proving that it should NOT be used, here are some alternatives for MSPs and Enterprise users.&lt;/p&gt;

&lt;h2&gt;Why move from Crowdstrike&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Kernel Panics on RHEL systems June 2024 &lt;a href=&quot;https://access.redhat.com/solutions/7068083&quot;&gt;https://access.redhat.com/solutions/7068083&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Global Outage on Windows Systems July 2024&lt;/li&gt;
&lt;li&gt;Failure to follow client staging options. (Many MSPs reported that Crowdstrike failed to honor N-1 update policy and pushed updates anyways)&lt;/li&gt;
&lt;li&gt;Crowdstrike June 2024 update caused 100% CPU spikes on single core. &lt;a href=&quot;https://www.thestack.technology/crowdstrike-bug-maxes-out-100-of-cpu-requires-windows-reboots/&quot;&gt;https://www.thestack.technology/crowdstrike-bug-maxes-out-100-of-cpu-requires-windows-reboots/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CEO used to be McAfee CTO during global outage in 2010 McAfee update that deleted svchost file and caused BSODs. &lt;a href=&quot;https://www.newsbytesapp.com/news/science/defective-mcafee-once-caused-worldwide-meltdown-of-windows-xp-pcs/story&quot;&gt;https://www.newsbytesapp.com/news/science/defective-mcafee-once-caused-worldwide-meltdown-of-windows-xp-pcs/story&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Residential Users&lt;/h2&gt;
&lt;p&gt;In 2024, just use Windows Defender at this point. There is no reason to pay for an antivirus or security software for a home user in a non-managed scenario.&lt;/p&gt;
&lt;h2&gt;MSP / Enterprise Users&lt;/h2&gt;
&lt;p&gt;The list of Crowdstrike Alternatives&lt;/p&gt;
&lt;h3&gt;1. Huntress&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.huntress.com/&quot;&gt;https://www.huntress.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Huntress is a unique managed security software in that it does NOT use its own antivirus. They use Windows Defender and have a robust reporting system. Most MSPs and technicians I talk to this is the pick for them. Pricing on this starts around $5 a seat per month and drops to about $2-3 a seat per month with 500+ users.&lt;/p&gt;
&lt;h3&gt;2. Blackpoint Security&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://blackpointcyber.com/&quot;&gt;https://blackpointcyber.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Blackpoint is the runner-up but also has a good track record in the MSP space. I personally have never dealt with them, but heard good things.&lt;/p&gt;
&lt;h3&gt;3. SentinelOne Security&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.sentinelone.com/&quot;&gt;https://www.sentinelone.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Probably the cheapest on this list, but also has a decent track record. I personally don&apos;t like the client because it is heavy and the reporting is too noisy. However, it does give good protection.&lt;/p&gt;
&lt;h3&gt;The Others&lt;/h3&gt;
&lt;p&gt;BitDefender, Webroot, and other popular AV name brands are NOT suitable in my opinion for use in a large environment.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/_3NOjLlsp3Y&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 26 Jul 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;With Crowdstrike proving that it should NOT be used, here are some alternatives for MSPs and Enterprise users.&lt;/p&gt;

&lt;h2&gt;Why move from Crowdstrike&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Kernel Panics on RHEL systems June 2024 &lt;a href=&quot;https://access.redhat.com/solutions/7068083&quot;&gt;https://access.redhat.com/solutions/7068083&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Global Outage on Windows Systems July 2024&lt;/li&gt;
&lt;li&gt;Failure to follow client staging options. (Many MSPs reported that Crowdstrike failed to honor N-1 update policy and pushed updates anyways)&lt;/li&gt;
&lt;li&gt;Crowdstrike June 2024 update caused 100% CPU spikes on single core. &lt;a href=&quot;https://www.thestack.technology/crowdstrike-bug-maxes-out-100-of-cpu-requires-windows-reboots/&quot;&gt;https://www.thestack.technology/crowdstrike-bug-maxes-out-100-of-cpu-requires-windows-reboots/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CEO used to be McAfee CTO during global outage in 2010 McAfee update that deleted svchost file and caused BSODs. &lt;a href=&quot;https://www.newsbytesapp.com/news/science/defective-mcafee-once-caused-worldwide-meltdown-of-windows-xp-pcs/story&quot;&gt;https://www.newsbytesapp.com/news/science/defective-mcafee-once-caused-worldwide-meltdown-of-windows-xp-pcs/story&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Residential Users&lt;/h2&gt;
&lt;p&gt;In 2024, just use Windows Defender at this point. There is no reason to pay for an antivirus or security software for a home user in a non-managed scenario.&lt;/p&gt;
&lt;h2&gt;MSP / Enterprise Users&lt;/h2&gt;
&lt;p&gt;The list of Crowdstrike Alternatives&lt;/p&gt;
&lt;h3&gt;1. Huntress&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.huntress.com/&quot;&gt;https://www.huntress.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Huntress is a unique managed security software in that it does NOT use its own antivirus. They use Windows Defender and have a robust reporting system. Most MSPs and technicians I talk to this is the pick for them. Pricing on this starts around $5 a seat per month and drops to about $2-3 a seat per month with 500+ users.&lt;/p&gt;
&lt;h3&gt;2. Blackpoint Security&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://blackpointcyber.com/&quot;&gt;https://blackpointcyber.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Blackpoint is the runner-up but also has a good track record in the MSP space. I personally have never dealt with them, but heard good things.&lt;/p&gt;
&lt;h3&gt;3. SentinelOne Security&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.sentinelone.com/&quot;&gt;https://www.sentinelone.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Probably the cheapest on this list, but also has a decent track record. I personally don&apos;t like the client because it is heavy and the reporting is too noisy. However, it does give good protection.&lt;/p&gt;
&lt;h3&gt;The Others&lt;/h3&gt;
&lt;p&gt;BitDefender, Webroot, and other popular AV name brands are NOT suitable in my opinion for use in a large environment.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/_3NOjLlsp3Y&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Home Theater PC</title><link>https://christitus.com/home-theater-pc/</link><guid isPermaLink="true">https://christitus.com/home-theater-pc/</guid><description>&lt;p&gt;Here are the steps and pros/cons of using a Home Theater PC (HTPC) for your home entertainment system.&lt;/p&gt;

&lt;h2&gt;The System&lt;/h2&gt;
&lt;p&gt;I&apos;m using a Mini PC from Beelink (model SER8) with an AMD Ryzen 7 8845U processor, 32GB of RAM, and a 1TB NVMe SSD. It has a built-in AMD 780M GPU and runs Windows 11 Pro.&lt;/p&gt;
&lt;p&gt;No external GPU is needed for this system, as it&apos;s powerful enough to handle 4K video playback and light gaming. For some this is sufficient as a main machine, but for me, I want to use this system for some couch gaming.&lt;/p&gt;
&lt;h2&gt;The Setup&lt;/h2&gt;
&lt;p&gt;Out of the box these mini PC systems are configured in a balanced mode, which is fine for most users. However, I wanted to tweak the system to get the most out of it for my use case. I set the power plan to high performance, disabled the sleep mode, and set the display to never turn off. I also modified bios settings to always run at max power.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2024/home-theater-pc/bios.webp&quot; alt=&quot;Bios&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Other Tweaks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Chris Titus Tech&apos;s Windows Utility - Standard Tweaks applied - &lt;a href=&quot;https://github.com/christitustech/winutil&quot;&gt;GitHub Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Tweaked resolution with &lt;a href=&quot;https://www.monitortests.com/forum/Thread-Custom-Resolution-Utility-CRU&quot;&gt;Custom Resolution Utility&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Resolution set to 1080p for gaming (Note: If you have performance issues, you can lower the resolution to 720p)&lt;/li&gt;
&lt;li&gt;Installed &lt;a href=&quot;https://www.amd.com/en/technologies/radeon-software&quot;&gt;Radeon Software&lt;/a&gt; for GPU settings&lt;/li&gt;
&lt;li&gt;Steam Installed and Set to Big Picture Mode on Startup (Controller used for all gaming)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The Performance&lt;/h2&gt;
&lt;p&gt;I tested this out on stream with various games and it performed well. I was able to match the advertised FPS per the manufacturer&apos;s website.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2024/home-theater-pc/game-fps.webp&quot; alt=&quot;Game Fps&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Livestream Benchmarks&lt;/h3&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/CcN6dFQ-8Cs&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h2&gt;IO Ports for Beelink SER8&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2024/home-theater-pc/io.webp&quot; alt=&quot;Io&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Pros and Cons&lt;/h2&gt;
&lt;p&gt;The pros of this type of system is portability, speed, and power consumption. The cons are the lack of upgradability and the need for an external GPU for more demanding games. Also, Don&apos;t expect above 60 FPS on modern AAA games.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/XiB5mYDkWmA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 26 Jun 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Here are the steps and pros/cons of using a Home Theater PC (HTPC) for your home entertainment system.&lt;/p&gt;

&lt;h2&gt;The System&lt;/h2&gt;
&lt;p&gt;I&apos;m using a Mini PC from Beelink (model SER8) with an AMD Ryzen 7 8845U processor, 32GB of RAM, and a 1TB NVMe SSD. It has a built-in AMD 780M GPU and runs Windows 11 Pro.&lt;/p&gt;
&lt;p&gt;No external GPU is needed for this system, as it&apos;s powerful enough to handle 4K video playback and light gaming. For some this is sufficient as a main machine, but for me, I want to use this system for some couch gaming.&lt;/p&gt;
&lt;h2&gt;The Setup&lt;/h2&gt;
&lt;p&gt;Out of the box these mini PC systems are configured in a balanced mode, which is fine for most users. However, I wanted to tweak the system to get the most out of it for my use case. I set the power plan to high performance, disabled the sleep mode, and set the display to never turn off. I also modified bios settings to always run at max power.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2024/home-theater-pc/bios.webp&quot; alt=&quot;Bios&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Other Tweaks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Chris Titus Tech&apos;s Windows Utility - Standard Tweaks applied - &lt;a href=&quot;https://github.com/christitustech/winutil&quot;&gt;GitHub Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Tweaked resolution with &lt;a href=&quot;https://www.monitortests.com/forum/Thread-Custom-Resolution-Utility-CRU&quot;&gt;Custom Resolution Utility&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Resolution set to 1080p for gaming (Note: If you have performance issues, you can lower the resolution to 720p)&lt;/li&gt;
&lt;li&gt;Installed &lt;a href=&quot;https://www.amd.com/en/technologies/radeon-software&quot;&gt;Radeon Software&lt;/a&gt; for GPU settings&lt;/li&gt;
&lt;li&gt;Steam Installed and Set to Big Picture Mode on Startup (Controller used for all gaming)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The Performance&lt;/h2&gt;
&lt;p&gt;I tested this out on stream with various games and it performed well. I was able to match the advertised FPS per the manufacturer&apos;s website.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2024/home-theater-pc/game-fps.webp&quot; alt=&quot;Game Fps&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Livestream Benchmarks&lt;/h3&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/CcN6dFQ-8Cs&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h2&gt;IO Ports for Beelink SER8&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2024/home-theater-pc/io.webp&quot; alt=&quot;Io&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Pros and Cons&lt;/h2&gt;
&lt;p&gt;The pros of this type of system is portability, speed, and power consumption. The cons are the lack of upgradability and the need for an external GPU for more demanding games. Also, Don&apos;t expect above 60 FPS on modern AAA games.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/XiB5mYDkWmA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Why You NEED to Contribute to Open Source</title><link>https://christitus.com/why-you-NEED-to-contribute-to-open-source/</link><guid isPermaLink="true">https://christitus.com/why-you-NEED-to-contribute-to-open-source/</guid><description>&lt;p&gt;There is a video called &lt;a href=&quot;https://www.youtube.com/watch?v=5nY_cy8zcO4&quot;&gt;Don&apos;t Contribute to Open Source&lt;/a&gt; by Theo t3 and most people don&apos;t understand its purpose or didn&apos;t watch the entire video.&lt;/p&gt;

&lt;h2&gt;The Video Problem&lt;/h2&gt;
&lt;p&gt;The problem wasn&apos;t the video itself but the title. Only 30-40% of people watch a video all the way through AND an even higher percentage of those people do NOT understand GitHub.&lt;/p&gt;
&lt;p&gt;So the takeaway most took from the video is NOT to contribute to open source projects. When the intent of the video was to NOT make needless Pull Requests to projects and bog down Open Source Maintainers.&lt;/p&gt;
&lt;h2&gt;How to contribute to Open Source&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Start with Issues and capturing bugs in software. This helps you understand the issues with using the given project.&lt;/li&gt;
&lt;li&gt;Develop a fix for the issue and submit a pull request&lt;/li&gt;
&lt;li&gt;Wait for the project maintainer to approve and merge your PR.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Pull Request Etiquette&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Do NOT make massive changes. Batching tons of fixes into one PR is a BAD idea. Fix one thing and submit it for the feature you are working on. Multiple features = Multiple Pull Requests.&lt;/li&gt;
&lt;li&gt;Do NOT make massive formatting changes. Using an extension like prettier and changing every line in a code is a good way to get banned from the project.&lt;/li&gt;
&lt;li&gt;If it is a complex feature pull request. Consider making multiple commits in your PR. Example: Fixing error checking commit, new function commit, etc. The idea is to make it easier to read what is happening in the Pull request. Breaking it up in to multiple commits helps the maintainer understand what your LARGE PR is doing. Again, if it starts effecting multiple features... Consider breaking it in to two or more pull requests.&lt;/li&gt;
&lt;li&gt;Check project documentation for branch submissions. Some projects do not want you to commit to main. They might have a beta or test branch they want submissions to go to. Be careful on which branch you are using.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;What if you are NOT a Developer&lt;/h2&gt;
&lt;p&gt;Learning to submit issues properly on Github is a tremendous help. As someone that maintains one of the biggest powershell scripts in the world, most issues are poorly presented or documented. Instead of making an issue that says &quot;It don&apos;t work!&quot;, do the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Document the Steps you take.&lt;/li&gt;
&lt;li&gt;Screenshot the error.&lt;/li&gt;
&lt;li&gt;Establish what you EXPECT it to do.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Do not do a massive text dump! Instead use the attach button if you are uploading a large log file.  As a general rule of thumb, if it more than 15-20 lines long... It should be an attachment so it doesn&apos;t clutter up the issue thread.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/JF8F7uaGfV8&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 19 Jun 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;There is a video called &lt;a href=&quot;https://www.youtube.com/watch?v=5nY_cy8zcO4&quot;&gt;Don&apos;t Contribute to Open Source&lt;/a&gt; by Theo t3 and most people don&apos;t understand its purpose or didn&apos;t watch the entire video.&lt;/p&gt;

&lt;h2&gt;The Video Problem&lt;/h2&gt;
&lt;p&gt;The problem wasn&apos;t the video itself but the title. Only 30-40% of people watch a video all the way through AND an even higher percentage of those people do NOT understand GitHub.&lt;/p&gt;
&lt;p&gt;So the takeaway most took from the video is NOT to contribute to open source projects. When the intent of the video was to NOT make needless Pull Requests to projects and bog down Open Source Maintainers.&lt;/p&gt;
&lt;h2&gt;How to contribute to Open Source&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Start with Issues and capturing bugs in software. This helps you understand the issues with using the given project.&lt;/li&gt;
&lt;li&gt;Develop a fix for the issue and submit a pull request&lt;/li&gt;
&lt;li&gt;Wait for the project maintainer to approve and merge your PR.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Pull Request Etiquette&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Do NOT make massive changes. Batching tons of fixes into one PR is a BAD idea. Fix one thing and submit it for the feature you are working on. Multiple features = Multiple Pull Requests.&lt;/li&gt;
&lt;li&gt;Do NOT make massive formatting changes. Using an extension like prettier and changing every line in a code is a good way to get banned from the project.&lt;/li&gt;
&lt;li&gt;If it is a complex feature pull request. Consider making multiple commits in your PR. Example: Fixing error checking commit, new function commit, etc. The idea is to make it easier to read what is happening in the Pull request. Breaking it up in to multiple commits helps the maintainer understand what your LARGE PR is doing. Again, if it starts effecting multiple features... Consider breaking it in to two or more pull requests.&lt;/li&gt;
&lt;li&gt;Check project documentation for branch submissions. Some projects do not want you to commit to main. They might have a beta or test branch they want submissions to go to. Be careful on which branch you are using.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;What if you are NOT a Developer&lt;/h2&gt;
&lt;p&gt;Learning to submit issues properly on Github is a tremendous help. As someone that maintains one of the biggest powershell scripts in the world, most issues are poorly presented or documented. Instead of making an issue that says &quot;It don&apos;t work!&quot;, do the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Document the Steps you take.&lt;/li&gt;
&lt;li&gt;Screenshot the error.&lt;/li&gt;
&lt;li&gt;Establish what you EXPECT it to do.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Do not do a massive text dump! Instead use the attach button if you are uploading a large log file.  As a general rule of thumb, if it more than 15-20 lines long... It should be an attachment so it doesn&apos;t clutter up the issue thread.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/JF8F7uaGfV8&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>My Problems With Linux</title><link>https://christitus.com/my-problems-with-linux/</link><guid isPermaLink="true">https://christitus.com/my-problems-with-linux/</guid><description>&lt;p&gt;Here are my biggest problems with Linux Desktop and How I fixed them.&lt;/p&gt;

&lt;h2&gt;Breaking Linux&lt;/h2&gt;
&lt;p&gt;You know what every new power user does when they come to Linux Desktop? They Break it!&lt;/p&gt;
&lt;p&gt;Seriously, they want to tinker and change things and end up blindly following some guide online and breaking their system because they don&apos;t understand it. They expect it to work like Windows and it does NOT!&lt;/p&gt;
&lt;p&gt;My fix to this is make everything as simple as possible.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;My Desktop Environment? Don&apos;t have one... I just use DWM.&lt;/li&gt;
&lt;li&gt;The Display Renderer? XOrg... its ancient, but it just works.&lt;/li&gt;
&lt;li&gt;Audio Problems? Use Alsa with Pulse. No pipewire.&lt;/li&gt;
&lt;li&gt;Video Card issues? I use Nvidia 4070 with DKMS modules.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&apos;ve been on the bleeding edge of Linux for years using Wayland, Pipewire, the new KDE, or other things that were released in the past year or two. What I&apos;ve found is I have more problems when I do that. They work for some, but I want to show where they DO NOT and WHY I do things this way.&lt;/p&gt;
&lt;h3&gt;Desktop Environments&lt;/h3&gt;
&lt;p&gt;Using KDE or Gnome is great for a new user as they have all the tools and system panels that are needed to configure a system just like Windows or Mac. The problem? These are small teams and often are more buggy than Windows or Mac. WHAT!?! Linux more buggy than Windows! Blasphemy! No, just desktop environments are, because they can&apos;t program for all the different configurations that exist and can lead to some undesired results. The older version of KDE 5 can be very reliable, but if you are constantly updating and on the latest version... I&apos;ve had nothing but problems. What Problems? Flickering Screen. Failed Boot from bad cache files in plasmashell from KDE 5 when an upgrade to 6 happened. Gnome? Extensions are manage through your web browser and when it updates the extensions break. Do I need to say more?&lt;/p&gt;
&lt;p&gt;My fix for this? Use a Window Manager&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Everything is done in terminal and coded to work one way&lt;/li&gt;
&lt;li&gt;No reliance on any tool for configuration&lt;/li&gt;
&lt;li&gt;It only manages the windows on the screen and far less things can break&lt;/li&gt;
&lt;li&gt;Never Updates or changes unless you want it to&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Display Rendering&lt;/h3&gt;
&lt;p&gt;All the cool kids in Linux use Wayland. Fedora users are forced to use Wayland in the next release. Wayland works great for &lt;em&gt;most&lt;/em&gt; AMD Cards, but can be hit and miss on nVidia. Most software now works on it... except for Synergy, barrier, or input leap &lt;em&gt;small exception for patched gnome users&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;My Fix for these problems? Use Xorg&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Its old, but everything already works on it.&lt;/li&gt;
&lt;li&gt;I&apos;m a boomer and don&apos;t care about HDR or VRR and all the new hotness. Just give me 60hz at 1080p and I&apos;m good. High resolution monitors at 4k... not for me.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Audio&lt;/h3&gt;
&lt;p&gt;Audio in Linux is strange and has multiple configuration points. I think it is Linux greatest weakness. Pipewire has come a long way to fix some of the audio, but it still sucks to configure properly. Often it gets confused with too many inputs or a program defaults to use alsa instead of pipewire or pulseaudio just stops working out of nowhere.&lt;/p&gt;
&lt;p&gt;My Fix? Use Alsa and strip out all the complexity&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Remove all extra inputs/outputs you do NOT use. &lt;code&gt;pavucontrol&lt;/code&gt; is a GUI tool to disable all the extra.&lt;/li&gt;
&lt;li&gt;Blacklist the cards using &lt;code&gt;cat /proc/asound/modules&lt;/code&gt; to find the modules you use and blacklist the ones you don&apos;t.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;nano /etc/modprobe.d/alsa-blacklist.conf
blacklist snd_hda_intel
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: to get a better description of the modules use&lt;/em&gt; &lt;code&gt;cat /proc/asound/cards&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pulseaudio broken? delete the entire &lt;code&gt;~/.config/pulse/&lt;/code&gt; folder. Restart pulse using:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;pulseaudio -k
pulseaudio --start
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Davinci Resolve Audio Issues?&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Use Opus for recording audio or transcode from AAC. &lt;em&gt;Note: Opus is better quality than AAC&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Do NOT Use Pipewire! Resolve hasn&apos;t caught up yet. Install &lt;code&gt;pulseaudio&lt;/code&gt; and &lt;code&gt;pulseaudio-alsa&lt;/code&gt; packages using your package manager. Remove any pipewire packages.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;These are just a few workarounds and the method to my madness why I choose certain things.&lt;/p&gt;
&lt;h3&gt;Switched to nVidia in 2024&lt;/h3&gt;
&lt;p&gt;I have used AMD GPUs almost exclusively in Linux for the past 5 years. They generally just worked, but the 7000 series has been problematic and caused several issues for me. Helldivers 2 didn&apos;t work, my 7800XT card would never get utilized past 40-50% on ANY Distribution I tried, and compatibility was an issue with Resolve on Linux not liking AMD and openncl. After loading up a new nVidia 4070 Super with nvidia-dkms and linux-headers everything worked right away. All the issues I had melted away.&lt;/p&gt;
&lt;p&gt;I will always use what is best for my needs. Nvidia is now the card I choose on my Linux install, because I don&apos;t have near the issues compared to the 7800XT.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Everything in its current configuration works better than Windows or Mac and I absolutely love my Linux installation. However, it did NOT start out that way. Don&apos;t listen to people saying you have to do things THIS way or use THIS package! All of my options I picked suit my use case and MY NEEDS! It may not suit yours and I wanted to share my experience as others online make it seem black and white when it is NOT!&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/tcQRVOMGXrk&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Tue, 04 Jun 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Here are my biggest problems with Linux Desktop and How I fixed them.&lt;/p&gt;

&lt;h2&gt;Breaking Linux&lt;/h2&gt;
&lt;p&gt;You know what every new power user does when they come to Linux Desktop? They Break it!&lt;/p&gt;
&lt;p&gt;Seriously, they want to tinker and change things and end up blindly following some guide online and breaking their system because they don&apos;t understand it. They expect it to work like Windows and it does NOT!&lt;/p&gt;
&lt;p&gt;My fix to this is make everything as simple as possible.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;My Desktop Environment? Don&apos;t have one... I just use DWM.&lt;/li&gt;
&lt;li&gt;The Display Renderer? XOrg... its ancient, but it just works.&lt;/li&gt;
&lt;li&gt;Audio Problems? Use Alsa with Pulse. No pipewire.&lt;/li&gt;
&lt;li&gt;Video Card issues? I use Nvidia 4070 with DKMS modules.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&apos;ve been on the bleeding edge of Linux for years using Wayland, Pipewire, the new KDE, or other things that were released in the past year or two. What I&apos;ve found is I have more problems when I do that. They work for some, but I want to show where they DO NOT and WHY I do things this way.&lt;/p&gt;
&lt;h3&gt;Desktop Environments&lt;/h3&gt;
&lt;p&gt;Using KDE or Gnome is great for a new user as they have all the tools and system panels that are needed to configure a system just like Windows or Mac. The problem? These are small teams and often are more buggy than Windows or Mac. WHAT!?! Linux more buggy than Windows! Blasphemy! No, just desktop environments are, because they can&apos;t program for all the different configurations that exist and can lead to some undesired results. The older version of KDE 5 can be very reliable, but if you are constantly updating and on the latest version... I&apos;ve had nothing but problems. What Problems? Flickering Screen. Failed Boot from bad cache files in plasmashell from KDE 5 when an upgrade to 6 happened. Gnome? Extensions are manage through your web browser and when it updates the extensions break. Do I need to say more?&lt;/p&gt;
&lt;p&gt;My fix for this? Use a Window Manager&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Everything is done in terminal and coded to work one way&lt;/li&gt;
&lt;li&gt;No reliance on any tool for configuration&lt;/li&gt;
&lt;li&gt;It only manages the windows on the screen and far less things can break&lt;/li&gt;
&lt;li&gt;Never Updates or changes unless you want it to&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Display Rendering&lt;/h3&gt;
&lt;p&gt;All the cool kids in Linux use Wayland. Fedora users are forced to use Wayland in the next release. Wayland works great for &lt;em&gt;most&lt;/em&gt; AMD Cards, but can be hit and miss on nVidia. Most software now works on it... except for Synergy, barrier, or input leap &lt;em&gt;small exception for patched gnome users&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;My Fix for these problems? Use Xorg&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Its old, but everything already works on it.&lt;/li&gt;
&lt;li&gt;I&apos;m a boomer and don&apos;t care about HDR or VRR and all the new hotness. Just give me 60hz at 1080p and I&apos;m good. High resolution monitors at 4k... not for me.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Audio&lt;/h3&gt;
&lt;p&gt;Audio in Linux is strange and has multiple configuration points. I think it is Linux greatest weakness. Pipewire has come a long way to fix some of the audio, but it still sucks to configure properly. Often it gets confused with too many inputs or a program defaults to use alsa instead of pipewire or pulseaudio just stops working out of nowhere.&lt;/p&gt;
&lt;p&gt;My Fix? Use Alsa and strip out all the complexity&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Remove all extra inputs/outputs you do NOT use. &lt;code&gt;pavucontrol&lt;/code&gt; is a GUI tool to disable all the extra.&lt;/li&gt;
&lt;li&gt;Blacklist the cards using &lt;code&gt;cat /proc/asound/modules&lt;/code&gt; to find the modules you use and blacklist the ones you don&apos;t.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;nano /etc/modprobe.d/alsa-blacklist.conf
blacklist snd_hda_intel
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: to get a better description of the modules use&lt;/em&gt; &lt;code&gt;cat /proc/asound/cards&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pulseaudio broken? delete the entire &lt;code&gt;~/.config/pulse/&lt;/code&gt; folder. Restart pulse using:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;pulseaudio -k
pulseaudio --start
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Davinci Resolve Audio Issues?&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Use Opus for recording audio or transcode from AAC. &lt;em&gt;Note: Opus is better quality than AAC&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Do NOT Use Pipewire! Resolve hasn&apos;t caught up yet. Install &lt;code&gt;pulseaudio&lt;/code&gt; and &lt;code&gt;pulseaudio-alsa&lt;/code&gt; packages using your package manager. Remove any pipewire packages.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;These are just a few workarounds and the method to my madness why I choose certain things.&lt;/p&gt;
&lt;h3&gt;Switched to nVidia in 2024&lt;/h3&gt;
&lt;p&gt;I have used AMD GPUs almost exclusively in Linux for the past 5 years. They generally just worked, but the 7000 series has been problematic and caused several issues for me. Helldivers 2 didn&apos;t work, my 7800XT card would never get utilized past 40-50% on ANY Distribution I tried, and compatibility was an issue with Resolve on Linux not liking AMD and openncl. After loading up a new nVidia 4070 Super with nvidia-dkms and linux-headers everything worked right away. All the issues I had melted away.&lt;/p&gt;
&lt;p&gt;I will always use what is best for my needs. Nvidia is now the card I choose on my Linux install, because I don&apos;t have near the issues compared to the 7800XT.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Everything in its current configuration works better than Windows or Mac and I absolutely love my Linux installation. However, it did NOT start out that way. Don&apos;t listen to people saying you have to do things THIS way or use THIS package! All of my options I picked suit my use case and MY NEEDS! It may not suit yours and I wanted to share my experience as others online make it seem black and white when it is NOT!&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/tcQRVOMGXrk&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Ultra BASH Prompt</title><link>https://christitus.com/mybash/</link><guid isPermaLink="true">https://christitus.com/mybash/</guid><description>&lt;p&gt;The &lt;code&gt;.bashrc&lt;/code&gt; file is a script that runs every time a new terminal session is started in Unix-like operating systems. It is used to configure the shell session, set up aliases, define functions, and more, making the terminal easier to use and more powerful. Below is a summary of the key sections and functionalities defined in the provided &lt;code&gt;.bashrc&lt;/code&gt; file.&lt;/p&gt;

&lt;h2&gt;Setup&lt;/h2&gt;
&lt;p&gt;This sets up mybash for you. It will backup your current bashrc if you already have one.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mkdir -p ~/build
cd ~/build
git clone https://github.com/christitustech/mybash
cd mybash
./setup.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Aliases and Functions&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Aliases&lt;/strong&gt;: Shortcuts for common commands are set up to enhance productivity. For example, &lt;code&gt;alias cp=&apos;cp -i&apos;&lt;/code&gt; makes the &lt;code&gt;cp&lt;/code&gt; command interactive, asking for confirmation before overwriting files.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Functions&lt;/strong&gt;: Custom functions for complex operations like &lt;code&gt;extract()&lt;/code&gt; for extracting various archive types, and &lt;code&gt;cpp()&lt;/code&gt; for copying files with a progress bar.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Prompt Customization and History Management&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Prompt Command&lt;/strong&gt;: The &lt;code&gt;PROMPT_COMMAND&lt;/code&gt; variable is set to automatically save the command history after each command.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;History Control&lt;/strong&gt;: Settings to manage the size of the history file and how duplicates are handled.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;System-Specific Aliases and Settings&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Editor Settings&lt;/strong&gt;: Sets &lt;code&gt;nvim&lt;/code&gt; (NeoVim) as the default editor.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Conditional Aliases&lt;/strong&gt;: Depending on the system type (like Fedora), it sets specific aliases, e.g., replacing &lt;code&gt;cat&lt;/code&gt; with &lt;code&gt;bat&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Enhancements and Utilities&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Color and Formatting&lt;/strong&gt;: Enhancements for command output readability using colors and formatting for tools like &lt;code&gt;ls&lt;/code&gt;, &lt;code&gt;grep&lt;/code&gt;, and &lt;code&gt;man&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Navigation Shortcuts&lt;/strong&gt;: Aliases to simplify directory navigation, e.g., &lt;code&gt;alias ..=&apos;cd ..&apos;&lt;/code&gt; to go up one directory.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Safety Features&lt;/strong&gt;: Aliases for safer file operations, like using &lt;code&gt;trash&lt;/code&gt; instead of &lt;code&gt;rm&lt;/code&gt; for deleting files, to prevent accidental data loss.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Extensive Zoxide support&lt;/strong&gt;: Easily navigate with &lt;code&gt;z&lt;/code&gt;, &lt;code&gt;zi&lt;/code&gt;, or pressing Ctrl+f to launch zi to see frequently used navigation directories.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Advanced Functions&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;System Information&lt;/strong&gt;: Functions to display system information like &lt;code&gt;distribution()&lt;/code&gt; to identify the Linux distribution.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Networking Utilities&lt;/strong&gt;: Tools to check internal and external IP addresses.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Resource Monitoring&lt;/strong&gt;: Commands to monitor system resources like disk usage and open ports.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Installation and Configuration Helpers&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Auto-Install&lt;/strong&gt;: A function &lt;code&gt;install_bashrc_support()&lt;/code&gt; to automatically install necessary utilities based on the system type.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Configuration Editors&lt;/strong&gt;: Functions to edit important configuration files directly, e.g., &lt;code&gt;apacheconfig()&lt;/code&gt; for Apache server configurations.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;This &lt;code&gt;.bashrc&lt;/code&gt; file is a comprehensive setup that not only enhances the shell experience with useful aliases and functions but also provides system-specific configurations and safety features to cater to different user needs and system types. It is designed to make the terminal more user-friendly, efficient, and powerful for an average user.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/0phdCAFFicY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Sat, 18 May 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The &lt;code&gt;.bashrc&lt;/code&gt; file is a script that runs every time a new terminal session is started in Unix-like operating systems. It is used to configure the shell session, set up aliases, define functions, and more, making the terminal easier to use and more powerful. Below is a summary of the key sections and functionalities defined in the provided &lt;code&gt;.bashrc&lt;/code&gt; file.&lt;/p&gt;

&lt;h2&gt;Setup&lt;/h2&gt;
&lt;p&gt;This sets up mybash for you. It will backup your current bashrc if you already have one.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mkdir -p ~/build
cd ~/build
git clone https://github.com/christitustech/mybash
cd mybash
./setup.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Aliases and Functions&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Aliases&lt;/strong&gt;: Shortcuts for common commands are set up to enhance productivity. For example, &lt;code&gt;alias cp=&apos;cp -i&apos;&lt;/code&gt; makes the &lt;code&gt;cp&lt;/code&gt; command interactive, asking for confirmation before overwriting files.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Functions&lt;/strong&gt;: Custom functions for complex operations like &lt;code&gt;extract()&lt;/code&gt; for extracting various archive types, and &lt;code&gt;cpp()&lt;/code&gt; for copying files with a progress bar.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Prompt Customization and History Management&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Prompt Command&lt;/strong&gt;: The &lt;code&gt;PROMPT_COMMAND&lt;/code&gt; variable is set to automatically save the command history after each command.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;History Control&lt;/strong&gt;: Settings to manage the size of the history file and how duplicates are handled.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;System-Specific Aliases and Settings&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Editor Settings&lt;/strong&gt;: Sets &lt;code&gt;nvim&lt;/code&gt; (NeoVim) as the default editor.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Conditional Aliases&lt;/strong&gt;: Depending on the system type (like Fedora), it sets specific aliases, e.g., replacing &lt;code&gt;cat&lt;/code&gt; with &lt;code&gt;bat&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Enhancements and Utilities&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Color and Formatting&lt;/strong&gt;: Enhancements for command output readability using colors and formatting for tools like &lt;code&gt;ls&lt;/code&gt;, &lt;code&gt;grep&lt;/code&gt;, and &lt;code&gt;man&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Navigation Shortcuts&lt;/strong&gt;: Aliases to simplify directory navigation, e.g., &lt;code&gt;alias ..=&apos;cd ..&apos;&lt;/code&gt; to go up one directory.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Safety Features&lt;/strong&gt;: Aliases for safer file operations, like using &lt;code&gt;trash&lt;/code&gt; instead of &lt;code&gt;rm&lt;/code&gt; for deleting files, to prevent accidental data loss.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Extensive Zoxide support&lt;/strong&gt;: Easily navigate with &lt;code&gt;z&lt;/code&gt;, &lt;code&gt;zi&lt;/code&gt;, or pressing Ctrl+f to launch zi to see frequently used navigation directories.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Advanced Functions&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;System Information&lt;/strong&gt;: Functions to display system information like &lt;code&gt;distribution()&lt;/code&gt; to identify the Linux distribution.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Networking Utilities&lt;/strong&gt;: Tools to check internal and external IP addresses.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Resource Monitoring&lt;/strong&gt;: Commands to monitor system resources like disk usage and open ports.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Installation and Configuration Helpers&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Auto-Install&lt;/strong&gt;: A function &lt;code&gt;install_bashrc_support()&lt;/code&gt; to automatically install necessary utilities based on the system type.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Configuration Editors&lt;/strong&gt;: Functions to edit important configuration files directly, e.g., &lt;code&gt;apacheconfig()&lt;/code&gt; for Apache server configurations.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;This &lt;code&gt;.bashrc&lt;/code&gt; file is a comprehensive setup that not only enhances the shell experience with useful aliases and functions but also provides system-specific configurations and safety features to cater to different user needs and system types. It is designed to make the terminal more user-friendly, efficient, and powerful for an average user.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/0phdCAFFicY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Atomic Desktops: Revolutionizing the Linux Experience</title><link>https://christitus.com/linux-atomic-desktops/</link><guid isPermaLink="true">https://christitus.com/linux-atomic-desktops/</guid><description>&lt;p&gt;Linux Atomic Desktops, a concept derived from Fedora&apos;s Project Atomic, are designed to provide a more reliable and manageable desktop environment. This initiative extends the principles of atomic updates to Fedora Workstation, aiming to enhance the stability and consistency of the Linux desktop experience.&lt;/p&gt;

&lt;h2&gt;What are Linux Atomic Desktops?&lt;/h2&gt;
&lt;p&gt;Linux Atomic Desktops leverage the concept of atomic updates, which are already popular in server environments through Fedora&apos;s Atomic Host. The idea is to treat the desktop as an immutable entity where updates and changes are applied in a single operation that can easily be rolled back if necessary. This approach minimizes disruptions and ensures that system modifications do not affect the overall stability.&lt;/p&gt;
&lt;h2&gt;How Do Linux Atomic Desktops Work?&lt;/h2&gt;
&lt;h3&gt;1. &lt;strong&gt;Atomic Updates&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Transactional Updates&lt;/strong&gt;: Updates are applied as a single transaction. If the update process encounters any issues, it can revert to the previous state, ensuring that the system remains stable and usable.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ostree&lt;/strong&gt;: At the core of atomic updates is Ostree, a tool that manages bootable, versioned filesystem trees. Each update is a new tree, allowing for easy rollback and parallel installations.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. &lt;strong&gt;Containerization&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Flatpak&lt;/strong&gt;: Applications are run in isolated environments using Flatpak. This not only enhances security by limiting application access to the system but also allows different applications to use different versions of libraries without conflict.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Podman&lt;/strong&gt;: For more complex applications, Podman allows running containers in a manner similar to Docker but without requiring a daemon, aligning with the atomic philosophy of minimal overhead.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3. &lt;strong&gt;Immutable Infrastructure&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Read-Only System&lt;/strong&gt;: The core system files are treated as read-only, with changes only allowed in specific areas. This reduces the risk of system corruption and unauthorized modifications. Key root folders treated as read-only include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/usr&lt;/code&gt; (where binaries and libraries are stored)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/boot&lt;/code&gt; (contains boot loader files)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Mutable but Controlled&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/etc&lt;/code&gt; (changes are tracked by ostree and layers will maintain separate versions)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Layered Packages&lt;/strong&gt;: Users can still install traditional RPM packages in a layered fashion on top of the base image, which are tracked and can be managed atomically.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You can add layered packages with &lt;code&gt;rpm-ostree install program1 program2 etc&lt;/code&gt;, but doing so will slow down updates as it will need to rebuild the entire ostree and add the layered packages after every update.&lt;/li&gt;
&lt;li&gt;Note: It is &lt;strong&gt;ALWAYS&lt;/strong&gt; recommended to use Flatpak, AppImage, or Containers for applications. (Distrobox or Podman)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://docs.fedoraproject.org/en-US/iot/add-layered/&quot;&gt;https://docs.fedoraproject.org/en-US/iot/add-layered/&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Benefits of Linux Atomic Desktops&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Reliability&lt;/strong&gt;: By minimizing the impact of updates and potential conflicts, the desktop environment becomes more reliable.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Consistency&lt;/strong&gt;: Every instance of the desktop is consistent with others, reducing discrepancies in software versions and behavior.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Security&lt;/strong&gt;: The isolation of applications and the immutable nature of the system components enhance the overall security posture.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rollback and Reproducibility&lt;/strong&gt;: Easy rollback capabilities and the ability to reproduce environments make management and troubleshooting simpler.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Making a Linux Atomic Desktop&lt;/h2&gt;
&lt;p&gt;If you want to dive in and make your own distribution using Atomic Desktops. I recommend the Universal Blue project. &lt;a href=&quot;https://blue-build.org/learn/universal-blue/&quot;&gt;https://blue-build.org/learn/universal-blue/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Linux Atomic Desktops represent a significant shift in how desktop environments are managed and maintained. By adopting technologies and methodologies from the server domain, they offer a more stable, secure, and consistent desktop experience. As this technology matures, it could set a new standard for desktop reliability in the Linux ecosystem.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/1vSFR8bi0YQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Sat, 11 May 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Linux Atomic Desktops, a concept derived from Fedora&apos;s Project Atomic, are designed to provide a more reliable and manageable desktop environment. This initiative extends the principles of atomic updates to Fedora Workstation, aiming to enhance the stability and consistency of the Linux desktop experience.&lt;/p&gt;

&lt;h2&gt;What are Linux Atomic Desktops?&lt;/h2&gt;
&lt;p&gt;Linux Atomic Desktops leverage the concept of atomic updates, which are already popular in server environments through Fedora&apos;s Atomic Host. The idea is to treat the desktop as an immutable entity where updates and changes are applied in a single operation that can easily be rolled back if necessary. This approach minimizes disruptions and ensures that system modifications do not affect the overall stability.&lt;/p&gt;
&lt;h2&gt;How Do Linux Atomic Desktops Work?&lt;/h2&gt;
&lt;h3&gt;1. &lt;strong&gt;Atomic Updates&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Transactional Updates&lt;/strong&gt;: Updates are applied as a single transaction. If the update process encounters any issues, it can revert to the previous state, ensuring that the system remains stable and usable.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ostree&lt;/strong&gt;: At the core of atomic updates is Ostree, a tool that manages bootable, versioned filesystem trees. Each update is a new tree, allowing for easy rollback and parallel installations.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. &lt;strong&gt;Containerization&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Flatpak&lt;/strong&gt;: Applications are run in isolated environments using Flatpak. This not only enhances security by limiting application access to the system but also allows different applications to use different versions of libraries without conflict.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Podman&lt;/strong&gt;: For more complex applications, Podman allows running containers in a manner similar to Docker but without requiring a daemon, aligning with the atomic philosophy of minimal overhead.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3. &lt;strong&gt;Immutable Infrastructure&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Read-Only System&lt;/strong&gt;: The core system files are treated as read-only, with changes only allowed in specific areas. This reduces the risk of system corruption and unauthorized modifications. Key root folders treated as read-only include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/usr&lt;/code&gt; (where binaries and libraries are stored)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/boot&lt;/code&gt; (contains boot loader files)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Mutable but Controlled&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/etc&lt;/code&gt; (changes are tracked by ostree and layers will maintain separate versions)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Layered Packages&lt;/strong&gt;: Users can still install traditional RPM packages in a layered fashion on top of the base image, which are tracked and can be managed atomically.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You can add layered packages with &lt;code&gt;rpm-ostree install program1 program2 etc&lt;/code&gt;, but doing so will slow down updates as it will need to rebuild the entire ostree and add the layered packages after every update.&lt;/li&gt;
&lt;li&gt;Note: It is &lt;strong&gt;ALWAYS&lt;/strong&gt; recommended to use Flatpak, AppImage, or Containers for applications. (Distrobox or Podman)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://docs.fedoraproject.org/en-US/iot/add-layered/&quot;&gt;https://docs.fedoraproject.org/en-US/iot/add-layered/&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Benefits of Linux Atomic Desktops&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Reliability&lt;/strong&gt;: By minimizing the impact of updates and potential conflicts, the desktop environment becomes more reliable.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Consistency&lt;/strong&gt;: Every instance of the desktop is consistent with others, reducing discrepancies in software versions and behavior.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Security&lt;/strong&gt;: The isolation of applications and the immutable nature of the system components enhance the overall security posture.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rollback and Reproducibility&lt;/strong&gt;: Easy rollback capabilities and the ability to reproduce environments make management and troubleshooting simpler.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Making a Linux Atomic Desktop&lt;/h2&gt;
&lt;p&gt;If you want to dive in and make your own distribution using Atomic Desktops. I recommend the Universal Blue project. &lt;a href=&quot;https://blue-build.org/learn/universal-blue/&quot;&gt;https://blue-build.org/learn/universal-blue/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Linux Atomic Desktops represent a significant shift in how desktop environments are managed and maintained. By adopting technologies and methodologies from the server domain, they offer a more stable, secure, and consistent desktop experience. As this technology matures, it could set a new standard for desktop reliability in the Linux ecosystem.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/1vSFR8bi0YQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Hastebin</title><link>https://christitus.com/hastebin/</link><guid isPermaLink="true">https://christitus.com/hastebin/</guid><description>
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Archived:&lt;/strong&gt; The Chris Titus Tech Hastebin instance has been retired, so
the web interface and upload functions from this guide are no longer
available. The walkthrough remains below for historical reference.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/TpI1siclED0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 08 May 2024 00:00:00 GMT</pubDate><content:encoded>
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Archived:&lt;/strong&gt; The Chris Titus Tech Hastebin instance has been retired, so
the web interface and upload functions from this guide are no longer
available. The walkthrough remains below for historical reference.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/TpI1siclED0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>The Ultimate Powershell Experience</title><link>https://christitus.com/the-ultimate-powershell-experience/</link><guid isPermaLink="true">https://christitus.com/the-ultimate-powershell-experience/</guid><description>&lt;p&gt;This PowerShell profile script introduces a comprehensive set of functions and aliases aimed at enhancing the PowerShell experience. It includes everything from module management and profile updates to utility functions and quality of life improvements.&lt;/p&gt;

&lt;p&gt;GitHub Project: &lt;a href=&quot;https://github.com/ChrisTitusTech/powershell-profile&quot;&gt;https://github.com/ChrisTitusTech/powershell-profile&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Key Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Module Management&lt;/strong&gt;: Automatically installs the &lt;code&gt;Terminal-Icons&lt;/code&gt; module if not present and imports it along with the Chocolatey profile if available.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Profile Updates&lt;/strong&gt;: Includes a function &lt;code&gt;Update-Profile&lt;/code&gt; to check for and apply updates to the PowerShell profile script from a specified URL.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;PowerShell Updates&lt;/strong&gt;: A function &lt;code&gt;Update-PowerShell&lt;/code&gt; checks for and installs the latest PowerShell version using &lt;code&gt;winget&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Admin Check and Prompt Customization&lt;/strong&gt;: Adjusts the prompt based on whether the user has administrator privileges and customizes the window title accordingly.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Utility Functions&lt;/strong&gt;: A collection of utility functions such as &lt;code&gt;Test-CommandExists&lt;/code&gt;, &lt;code&gt;Edit-Profile&lt;/code&gt;, &lt;code&gt;Get-PubIP&lt;/code&gt;, &lt;code&gt;uptime&lt;/code&gt;, &lt;code&gt;reload-profile&lt;/code&gt;, &lt;code&gt;unzip&lt;/code&gt;, &lt;code&gt;hb&lt;/code&gt; (for uploading documents), &lt;code&gt;grep&lt;/code&gt;, &lt;code&gt;df&lt;/code&gt;, &lt;code&gt;sed&lt;/code&gt;, &lt;code&gt;which&lt;/code&gt;, &lt;code&gt;export&lt;/code&gt;, &lt;code&gt;pkill&lt;/code&gt;, &lt;code&gt;pgrep&lt;/code&gt;, &lt;code&gt;head&lt;/code&gt;, and &lt;code&gt;tail&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Quick File and Directory Management&lt;/strong&gt;: Functions for creating new files (&lt;code&gt;nf&lt;/code&gt;), and making and changing directories (&lt;code&gt;mkcd&lt;/code&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Quality of Life Aliases&lt;/strong&gt;: Includes shortcuts for navigation (&lt;code&gt;docs&lt;/code&gt;, &lt;code&gt;dtop&lt;/code&gt;), editing the profile (&lt;code&gt;ep&lt;/code&gt;), process management (&lt;code&gt;k9&lt;/code&gt;), enhanced listing (&lt;code&gt;la&lt;/code&gt;, &lt;code&gt;ll&lt;/code&gt;), Git shortcuts (&lt;code&gt;gs&lt;/code&gt;, &lt;code&gt;ga&lt;/code&gt;, &lt;code&gt;gc&lt;/code&gt;, &lt;code&gt;gp&lt;/code&gt;, &lt;code&gt;g&lt;/code&gt;, &lt;code&gt;gcom&lt;/code&gt;, &lt;code&gt;lazyg&lt;/code&gt;), system information (&lt;code&gt;sysinfo&lt;/code&gt;), networking utilities (&lt;code&gt;flushdns&lt;/code&gt;), and clipboard utilities (&lt;code&gt;cpy&lt;/code&gt;, &lt;code&gt;pst&lt;/code&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Enhanced PowerShell Experience&lt;/strong&gt;: Sets &lt;code&gt;PSReadLine&lt;/code&gt; options for color coding and initializes &lt;code&gt;oh-my-posh&lt;/code&gt; with a specified theme for a better visual experience.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This PowerShell profile script is designed to streamline and enhance the PowerShell user experience, incorporating a wide range of functions and aliases that cater to various needs from system administration to development tasks.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/lePxtkrblRE&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Sat, 04 May 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This PowerShell profile script introduces a comprehensive set of functions and aliases aimed at enhancing the PowerShell experience. It includes everything from module management and profile updates to utility functions and quality of life improvements.&lt;/p&gt;

&lt;p&gt;GitHub Project: &lt;a href=&quot;https://github.com/ChrisTitusTech/powershell-profile&quot;&gt;https://github.com/ChrisTitusTech/powershell-profile&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Key Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Module Management&lt;/strong&gt;: Automatically installs the &lt;code&gt;Terminal-Icons&lt;/code&gt; module if not present and imports it along with the Chocolatey profile if available.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Profile Updates&lt;/strong&gt;: Includes a function &lt;code&gt;Update-Profile&lt;/code&gt; to check for and apply updates to the PowerShell profile script from a specified URL.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;PowerShell Updates&lt;/strong&gt;: A function &lt;code&gt;Update-PowerShell&lt;/code&gt; checks for and installs the latest PowerShell version using &lt;code&gt;winget&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Admin Check and Prompt Customization&lt;/strong&gt;: Adjusts the prompt based on whether the user has administrator privileges and customizes the window title accordingly.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Utility Functions&lt;/strong&gt;: A collection of utility functions such as &lt;code&gt;Test-CommandExists&lt;/code&gt;, &lt;code&gt;Edit-Profile&lt;/code&gt;, &lt;code&gt;Get-PubIP&lt;/code&gt;, &lt;code&gt;uptime&lt;/code&gt;, &lt;code&gt;reload-profile&lt;/code&gt;, &lt;code&gt;unzip&lt;/code&gt;, &lt;code&gt;hb&lt;/code&gt; (for uploading documents), &lt;code&gt;grep&lt;/code&gt;, &lt;code&gt;df&lt;/code&gt;, &lt;code&gt;sed&lt;/code&gt;, &lt;code&gt;which&lt;/code&gt;, &lt;code&gt;export&lt;/code&gt;, &lt;code&gt;pkill&lt;/code&gt;, &lt;code&gt;pgrep&lt;/code&gt;, &lt;code&gt;head&lt;/code&gt;, and &lt;code&gt;tail&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Quick File and Directory Management&lt;/strong&gt;: Functions for creating new files (&lt;code&gt;nf&lt;/code&gt;), and making and changing directories (&lt;code&gt;mkcd&lt;/code&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Quality of Life Aliases&lt;/strong&gt;: Includes shortcuts for navigation (&lt;code&gt;docs&lt;/code&gt;, &lt;code&gt;dtop&lt;/code&gt;), editing the profile (&lt;code&gt;ep&lt;/code&gt;), process management (&lt;code&gt;k9&lt;/code&gt;), enhanced listing (&lt;code&gt;la&lt;/code&gt;, &lt;code&gt;ll&lt;/code&gt;), Git shortcuts (&lt;code&gt;gs&lt;/code&gt;, &lt;code&gt;ga&lt;/code&gt;, &lt;code&gt;gc&lt;/code&gt;, &lt;code&gt;gp&lt;/code&gt;, &lt;code&gt;g&lt;/code&gt;, &lt;code&gt;gcom&lt;/code&gt;, &lt;code&gt;lazyg&lt;/code&gt;), system information (&lt;code&gt;sysinfo&lt;/code&gt;), networking utilities (&lt;code&gt;flushdns&lt;/code&gt;), and clipboard utilities (&lt;code&gt;cpy&lt;/code&gt;, &lt;code&gt;pst&lt;/code&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Enhanced PowerShell Experience&lt;/strong&gt;: Sets &lt;code&gt;PSReadLine&lt;/code&gt; options for color coding and initializes &lt;code&gt;oh-my-posh&lt;/code&gt; with a specified theme for a better visual experience.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This PowerShell profile script is designed to streamline and enhance the PowerShell user experience, incorporating a wide range of functions and aliases that cater to various needs from system administration to development tasks.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/lePxtkrblRE&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>RisingOS 2.0 - Android Custom ROM</title><link>https://christitus.com/risingoss/</link><guid isPermaLink="true">https://christitus.com/risingoss/</guid><description>&lt;p&gt;RisingOS 2.0 introduces a plethora of enhancements and features, setting it apart from standard Android experiences.&lt;/p&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;Installation files are hosted on Sourceforge @ &lt;a href=&quot;https://sourceforge.net/projects/risingos-for-bluejay/files/&quot;&gt;https://sourceforge.net/projects/risingos-for-bluejay/files/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: This is for Pixel6a devices only.&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;OTA Install&lt;/h3&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://sourceforge.net/projects/risingos-for-bluejay/files/Android_14/OTA/&quot;&gt;https://sourceforge.net/projects/risingos-for-bluejay/files/Android_14/OTA/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;XDA Developers: &lt;a href=&quot;https://xdaforums.com/t/rom-a14-official-risingos-2-0-gapps-bluejay-02-17-2024.4581557/&quot;&gt;https://xdaforums.com/t/rom-a14-official-risingos-2-0-gapps-bluejay-02-17-2024.4581557/&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Download the ROM (ZIP File), BOOT, DTBO, and VENDOR_BOOT from Sourceforge.&lt;/li&gt;
&lt;li&gt;Install ADB and Fastboot from &lt;code&gt;adb&lt;/code&gt; package using &lt;code&gt;choco install adb&lt;/code&gt; in Windows or local package manager in Linux.&lt;/li&gt;
&lt;li&gt;Reboot to bootloader
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Note: if getting &quot;Waiting for Device...&quot;, install google USB Drivers from &lt;a href=&quot;https://dl.google.com/android/repository/usb_driver_r13-windows.zip&quot;&gt;https://dl.google.com/android/repository/usb_driver_r13-windows.zip&lt;/a&gt; for Windows.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flashing Commands:&lt;/strong&gt; Prepare your device for flashing by entering the following commands:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;fastboot flash boot boot.img&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot flash dtbo dtbo.img&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot flash vendor_boot vendor_boot.img&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot reboot recovery&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Factory Reset:&lt;/strong&gt; Once in recovery mode, navigate to &lt;code&gt;Factory reset -&amp;gt; Format data/factory reset&lt;/code&gt; and confirm to format the device.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Apply Update:&lt;/strong&gt; After formatting, return to the main menu and select &lt;code&gt;Apply update -&amp;gt; Apply from ADB&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sideload ROM:&lt;/strong&gt; Execute &lt;code&gt;adb sideload rom.zip&lt;/code&gt; (replace &quot;rom&quot; with the actual filename of the ROM).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optional Reboot to Recovery:&lt;/strong&gt; Optionally, reboot to recovery fully if you need to sideload any add-ons like Magisk.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System Reboot:&lt;/strong&gt; Finally, reboot your device to the system.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Features&lt;/h2&gt;
&lt;p&gt;Here&apos;s a concise overview of what&apos;s new and improved:&lt;/p&gt;
&lt;h3&gt;Core Improvements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Framework Enhancements&lt;/strong&gt;: RisingOS 2.0 is rebased on the crDroid Android Project, incorporating AOSP QPR2 Framework fixes and improvements, such as Adaptive Charging and a reworked Boost Framework for better performance.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Audio and Visual Upgrades&lt;/strong&gt;: Introduces Adaptive Sound Engine for audio effects, new wallpapers, and a revamped user interface in Recovery and Settings, including Material Design themes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Security and Accessibility&lt;/strong&gt;: Enhanced face unlock features and added accidental phone wakeup prevention in Pocket Mode.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Customization and Usability&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;UI Customizations&lt;/strong&gt;: New LockScreen Clock Styles, including an iOS widget, and the introduction of RisingUI with updated volume panel and boot animation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Launcher and Widgets&lt;/strong&gt;: Ortus Launcher with improved support for icon packs and freeform tasks, alongside new LockScreen Widgets for media playback.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System Enhancements&lt;/strong&gt;: Improved memory management, ported Pixel features for a richer experience, and new Settings Styles for a personalized touch.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Unique Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Shake Gestures&lt;/strong&gt;: A novel feature to perform actions like taking screenshots by shaking the device.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;QS Header Image&lt;/strong&gt;: Dynamic color changes for icons and text when QS Header Image is enabled.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deprecated Features&lt;/strong&gt;: Certain features like Columbus/Elmyra and Nothing Launcher have been removed due to deprecated dependencies.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Acknowledgments&lt;/h3&gt;
&lt;p&gt;RisingOS 2.0 incorporates features from various contributors across the Android community, including LineageOS, Pixel Experience, and individual developers. The RisingOS team extends gratitude to all contributors for their invaluable efforts.&lt;/p&gt;
&lt;p&gt;This release not only enhances the user experience with new features and improvements but also pays homage to the collaborative spirit of the Android development community.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/epB9WY70csQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 01 May 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;RisingOS 2.0 introduces a plethora of enhancements and features, setting it apart from standard Android experiences.&lt;/p&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;Installation files are hosted on Sourceforge @ &lt;a href=&quot;https://sourceforge.net/projects/risingos-for-bluejay/files/&quot;&gt;https://sourceforge.net/projects/risingos-for-bluejay/files/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: This is for Pixel6a devices only.&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;OTA Install&lt;/h3&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://sourceforge.net/projects/risingos-for-bluejay/files/Android_14/OTA/&quot;&gt;https://sourceforge.net/projects/risingos-for-bluejay/files/Android_14/OTA/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;XDA Developers: &lt;a href=&quot;https://xdaforums.com/t/rom-a14-official-risingos-2-0-gapps-bluejay-02-17-2024.4581557/&quot;&gt;https://xdaforums.com/t/rom-a14-official-risingos-2-0-gapps-bluejay-02-17-2024.4581557/&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Download the ROM (ZIP File), BOOT, DTBO, and VENDOR_BOOT from Sourceforge.&lt;/li&gt;
&lt;li&gt;Install ADB and Fastboot from &lt;code&gt;adb&lt;/code&gt; package using &lt;code&gt;choco install adb&lt;/code&gt; in Windows or local package manager in Linux.&lt;/li&gt;
&lt;li&gt;Reboot to bootloader
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Note: if getting &quot;Waiting for Device...&quot;, install google USB Drivers from &lt;a href=&quot;https://dl.google.com/android/repository/usb_driver_r13-windows.zip&quot;&gt;https://dl.google.com/android/repository/usb_driver_r13-windows.zip&lt;/a&gt; for Windows.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flashing Commands:&lt;/strong&gt; Prepare your device for flashing by entering the following commands:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;fastboot flash boot boot.img&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot flash dtbo dtbo.img&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot flash vendor_boot vendor_boot.img&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot reboot recovery&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Factory Reset:&lt;/strong&gt; Once in recovery mode, navigate to &lt;code&gt;Factory reset -&amp;gt; Format data/factory reset&lt;/code&gt; and confirm to format the device.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Apply Update:&lt;/strong&gt; After formatting, return to the main menu and select &lt;code&gt;Apply update -&amp;gt; Apply from ADB&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sideload ROM:&lt;/strong&gt; Execute &lt;code&gt;adb sideload rom.zip&lt;/code&gt; (replace &quot;rom&quot; with the actual filename of the ROM).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optional Reboot to Recovery:&lt;/strong&gt; Optionally, reboot to recovery fully if you need to sideload any add-ons like Magisk.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System Reboot:&lt;/strong&gt; Finally, reboot your device to the system.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Features&lt;/h2&gt;
&lt;p&gt;Here&apos;s a concise overview of what&apos;s new and improved:&lt;/p&gt;
&lt;h3&gt;Core Improvements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Framework Enhancements&lt;/strong&gt;: RisingOS 2.0 is rebased on the crDroid Android Project, incorporating AOSP QPR2 Framework fixes and improvements, such as Adaptive Charging and a reworked Boost Framework for better performance.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Audio and Visual Upgrades&lt;/strong&gt;: Introduces Adaptive Sound Engine for audio effects, new wallpapers, and a revamped user interface in Recovery and Settings, including Material Design themes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Security and Accessibility&lt;/strong&gt;: Enhanced face unlock features and added accidental phone wakeup prevention in Pocket Mode.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Customization and Usability&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;UI Customizations&lt;/strong&gt;: New LockScreen Clock Styles, including an iOS widget, and the introduction of RisingUI with updated volume panel and boot animation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Launcher and Widgets&lt;/strong&gt;: Ortus Launcher with improved support for icon packs and freeform tasks, alongside new LockScreen Widgets for media playback.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System Enhancements&lt;/strong&gt;: Improved memory management, ported Pixel features for a richer experience, and new Settings Styles for a personalized touch.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Unique Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Shake Gestures&lt;/strong&gt;: A novel feature to perform actions like taking screenshots by shaking the device.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;QS Header Image&lt;/strong&gt;: Dynamic color changes for icons and text when QS Header Image is enabled.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deprecated Features&lt;/strong&gt;: Certain features like Columbus/Elmyra and Nothing Launcher have been removed due to deprecated dependencies.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Acknowledgments&lt;/h3&gt;
&lt;p&gt;RisingOS 2.0 incorporates features from various contributors across the Android community, including LineageOS, Pixel Experience, and individual developers. The RisingOS team extends gratitude to all contributors for their invaluable efforts.&lt;/p&gt;
&lt;p&gt;This release not only enhances the user experience with new features and improvements but also pays homage to the collaborative spirit of the Android development community.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/epB9WY70csQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Windows Utility Improved</title><link>https://christitus.com/windows-utility-improved/</link><guid isPermaLink="true">https://christitus.com/windows-utility-improved/</guid><description>&lt;p&gt;The Chris Titus Tech WinUtil is now the #2 Most Popular Powershell utility in the World on GitHub.&lt;/p&gt;

&lt;h2&gt;What does it do?&lt;/h2&gt;
&lt;p&gt;It has 5 main tabs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Program Installation - Check all the programs you want and click install in one go.&lt;/li&gt;
&lt;li&gt;Tweaks - Disable Telemetry and cut down on running background services.&lt;/li&gt;
&lt;li&gt;Config - Configure your system and launch legacy Win7 Control Panels.&lt;/li&gt;
&lt;li&gt;Updates - Change Windows Update to only use Security Updates or Disable them altogether.&lt;/li&gt;
&lt;li&gt;MicroWin - Create a minimal ISO to Install Windows.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;How to Run it?&lt;/h2&gt;
&lt;p&gt;Launch Terminal(Admin) by right clicking Start Button&lt;/p&gt;
&lt;p&gt;Type this command in to launch the toolbox&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;irm christitus.com/win | iex
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Want an EXE? Help fund the project:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cttstore.com&quot;&gt;https://cttstore.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;NOTE: This exe is a wrapper for the command above. No purchase is needed to run the script!&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Improvements in 2024&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Import and Export Commands
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;iex &quot;&amp;amp; { $(irm christitus.com/win) } -Config [path-to-your-config] -Run&quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Improved UI&lt;/li&gt;
&lt;li&gt;Winget Installer uses 3 methods to install apps, System Scope, User Scope, and Unelevated.&lt;/li&gt;
&lt;li&gt;Get Classic Right-Click Menu&lt;/li&gt;
&lt;li&gt;Edge Removal&lt;/li&gt;
&lt;li&gt;Co-Pilot Removal&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Development Enhancements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed Unit Tests&lt;/li&gt;
&lt;li&gt;Modular
&lt;ul&gt;
&lt;li&gt;Config Folder (All tweaks are in JSON format in their own file. &lt;code&gt;applications.json, tweaks.json, feature.json, etc.&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Function Folder (All functions are independent: private functions are not in GUI and public functions are in GUI)&lt;/li&gt;
&lt;li&gt;lint, logs, pester, releases are all github related actions and for debugging.&lt;/li&gt;
&lt;li&gt;scripts Folder is for the main section setting up runspaces and launching GUI.&lt;/li&gt;
&lt;li&gt;xaml folder is for the GUI.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/5_AaHXrelTE&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Thu, 25 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The Chris Titus Tech WinUtil is now the #2 Most Popular Powershell utility in the World on GitHub.&lt;/p&gt;

&lt;h2&gt;What does it do?&lt;/h2&gt;
&lt;p&gt;It has 5 main tabs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Program Installation - Check all the programs you want and click install in one go.&lt;/li&gt;
&lt;li&gt;Tweaks - Disable Telemetry and cut down on running background services.&lt;/li&gt;
&lt;li&gt;Config - Configure your system and launch legacy Win7 Control Panels.&lt;/li&gt;
&lt;li&gt;Updates - Change Windows Update to only use Security Updates or Disable them altogether.&lt;/li&gt;
&lt;li&gt;MicroWin - Create a minimal ISO to Install Windows.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;How to Run it?&lt;/h2&gt;
&lt;p&gt;Launch Terminal(Admin) by right clicking Start Button&lt;/p&gt;
&lt;p&gt;Type this command in to launch the toolbox&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;irm christitus.com/win | iex
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Want an EXE? Help fund the project:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cttstore.com&quot;&gt;https://cttstore.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;NOTE: This exe is a wrapper for the command above. No purchase is needed to run the script!&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Improvements in 2024&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Import and Export Commands
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;iex &quot;&amp;amp; { $(irm christitus.com/win) } -Config [path-to-your-config] -Run&quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Improved UI&lt;/li&gt;
&lt;li&gt;Winget Installer uses 3 methods to install apps, System Scope, User Scope, and Unelevated.&lt;/li&gt;
&lt;li&gt;Get Classic Right-Click Menu&lt;/li&gt;
&lt;li&gt;Edge Removal&lt;/li&gt;
&lt;li&gt;Co-Pilot Removal&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Development Enhancements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed Unit Tests&lt;/li&gt;
&lt;li&gt;Modular
&lt;ul&gt;
&lt;li&gt;Config Folder (All tweaks are in JSON format in their own file. &lt;code&gt;applications.json, tweaks.json, feature.json, etc.&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Function Folder (All functions are independent: private functions are not in GUI and public functions are in GUI)&lt;/li&gt;
&lt;li&gt;lint, logs, pester, releases are all github related actions and for debugging.&lt;/li&gt;
&lt;li&gt;scripts Folder is for the main section setting up runspaces and launching GUI.&lt;/li&gt;
&lt;li&gt;xaml folder is for the GUI.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/5_AaHXrelTE&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Improve Youtube</title><link>https://christitus.com/improve-youtube/</link><guid isPermaLink="true">https://christitus.com/improve-youtube/</guid><description>&lt;p&gt;Since its inception in 2012, the ImprovedTube extension has been enhancing the YouTube experience for users across all browsers. Now open-source, it offers a plethora of features aimed at giving you greater control over content discovery, playback, and the overall aesthetics of YouTube. &lt;/p&gt;
&lt;h2&gt;Key Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Auto-Pause/Unpause&lt;/strong&gt;: Automatically pauses and unpauses videos when switching tabs or starting a second video.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom Layouts&lt;/strong&gt;: Introduces a &quot;Zen Mode&quot; for a more focused viewing experience, allowing for customization of video descriptions, transcripts, and the hiding of related videos or distractions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Quality Control&lt;/strong&gt;: Enables locking of video quality to preferred settings, and adjustment of video and player control sizes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Playback Options&lt;/strong&gt;: Offers the ability to watch channels and playlists in reverse or chronological order, among other playback enhancements.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;User Experience&lt;/strong&gt;: Designed with user experience in mind, the extension ensures compatibility with YouTube features without collecting user data. It operates offline, modifying views locally.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Performance Improvements&lt;/strong&gt;: Addresses YouTube layout bugs and optimizes performance, saving time, CPU resources, and electricity.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Additional Features&lt;/strong&gt;: Includes setting permanent playback speed, disabling autoplay for up-next videos, customizing video size to fit tabs, fixed volume settings, auto-pause when switching tabs, auto-picture-in-picture, and a distraction-free mode aimed at educators and presenters.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ImprovedTube is free to use and has garnered over 500,000 active users and nearly perfect ratings, despite YouTube&apos;s frequent updates. Its transparent development process on GitHub sets it apart from competitors, many of which have ceased development over the years.&lt;/p&gt;
&lt;p&gt;Discover the full capabilities of ImprovedTube by trying it out for yourself and join the many users who now find YouTube indispensable without it.&lt;/p&gt;
&lt;h2&gt;Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Download: &lt;a href=&quot;https://chromewebstore.google.com/detail/improve-youtube-%F0%9F%8E%A7-for-yo/bnomihfieiccainjcjblhegjgglakjdd&quot;&gt;https://chromewebstore.google.com/detail/improve-youtube-🎧-for-yo/bnomihfieiccainjcjblhegjgglakjdd&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href=&quot;https://github.com/code-charity/youtube&quot;&gt;https://github.com/code-charity/youtube&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/SLfff7Kw_Xc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Tue, 23 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Since its inception in 2012, the ImprovedTube extension has been enhancing the YouTube experience for users across all browsers. Now open-source, it offers a plethora of features aimed at giving you greater control over content discovery, playback, and the overall aesthetics of YouTube. &lt;/p&gt;
&lt;h2&gt;Key Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Auto-Pause/Unpause&lt;/strong&gt;: Automatically pauses and unpauses videos when switching tabs or starting a second video.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom Layouts&lt;/strong&gt;: Introduces a &quot;Zen Mode&quot; for a more focused viewing experience, allowing for customization of video descriptions, transcripts, and the hiding of related videos or distractions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Quality Control&lt;/strong&gt;: Enables locking of video quality to preferred settings, and adjustment of video and player control sizes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Playback Options&lt;/strong&gt;: Offers the ability to watch channels and playlists in reverse or chronological order, among other playback enhancements.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;User Experience&lt;/strong&gt;: Designed with user experience in mind, the extension ensures compatibility with YouTube features without collecting user data. It operates offline, modifying views locally.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Performance Improvements&lt;/strong&gt;: Addresses YouTube layout bugs and optimizes performance, saving time, CPU resources, and electricity.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Additional Features&lt;/strong&gt;: Includes setting permanent playback speed, disabling autoplay for up-next videos, customizing video size to fit tabs, fixed volume settings, auto-pause when switching tabs, auto-picture-in-picture, and a distraction-free mode aimed at educators and presenters.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ImprovedTube is free to use and has garnered over 500,000 active users and nearly perfect ratings, despite YouTube&apos;s frequent updates. Its transparent development process on GitHub sets it apart from competitors, many of which have ceased development over the years.&lt;/p&gt;
&lt;p&gt;Discover the full capabilities of ImprovedTube by trying it out for yourself and join the many users who now find YouTube indispensable without it.&lt;/p&gt;
&lt;h2&gt;Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Download: &lt;a href=&quot;https://chromewebstore.google.com/detail/improve-youtube-%F0%9F%8E%A7-for-yo/bnomihfieiccainjcjblhegjgglakjdd&quot;&gt;https://chromewebstore.google.com/detail/improve-youtube-🎧-for-yo/bnomihfieiccainjcjblhegjgglakjdd&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href=&quot;https://github.com/code-charity/youtube&quot;&gt;https://github.com/code-charity/youtube&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/SLfff7Kw_Xc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Zoxide</title><link>https://christitus.com/zoxide/</link><guid isPermaLink="true">https://christitus.com/zoxide/</guid><description>&lt;p&gt;&lt;strong&gt;Zoxide&lt;/strong&gt; is an enhanced version of the traditional &lt;code&gt;cd&lt;/code&gt; command, drawing inspiration from tools like &lt;code&gt;z&lt;/code&gt; and &lt;code&gt;autojump&lt;/code&gt;. It&apos;s designed to make navigating your filesystem faster and more intuitive by learning your habits. The more you use it, the smarter it gets, allowing you to &quot;jump&quot; to your most frequently used directories with minimal input. &lt;/p&gt;
&lt;h2&gt;Key Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Smart Directory Jumping:&lt;/strong&gt; Navigate to your most used directories with just a few keystrokes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cross-Shell Compatibility:&lt;/strong&gt; Works seamlessly across all major shells.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Interactive Selection:&lt;/strong&gt; Use &lt;code&gt;zi&lt;/code&gt; for interactive directory selection with &lt;code&gt;fzf&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Easy Installation:&lt;/strong&gt; Simple setup process across various platforms.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Getting Started&lt;/h2&gt;
&lt;h3&gt;Basic Commands&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;z foo&lt;/code&gt;: Jump to the highest-ranked directory matching &lt;code&gt;foo&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;z ~/foo&lt;/code&gt;: Works just like &lt;code&gt;cd&lt;/code&gt;, allowing navigation to absolute paths.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;z ..&lt;/code&gt;: Move up one directory level.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;z -&lt;/code&gt;: Return to the previous directory.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Installation Steps&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Install Zoxide:&lt;/strong&gt; Available for Linux, macOS, Windows, BSD, and Android.&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;All operating systems have zoxide in default repositories and can be installed by using the &lt;code&gt;zoxide&lt;/code&gt; package&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Shell Integration:&lt;/strong&gt; Easily integrate zoxide into your preferred shell (Bash, Fish, Zsh, and more).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optional fzf Integration:&lt;/strong&gt; For enhanced interactive selection, install &lt;code&gt;fzf&lt;/code&gt; (v0.33.0+).&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Configuration&lt;/h3&gt;
&lt;p&gt;Customize zoxide with various flags and environment variables:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Command Prefix:&lt;/strong&gt; Change the default &lt;code&gt;z&lt;/code&gt; and &lt;code&gt;zi&lt;/code&gt; commands with &lt;code&gt;--cmd&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hooks:&lt;/strong&gt; Adjust the frequency of directory score updates with &lt;code&gt;--hook&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data Directory:&lt;/strong&gt; Specify the database location with &lt;code&gt;_ZO_DATA_DIR&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Exclude Directories:&lt;/strong&gt; Use &lt;code&gt;_ZO_EXCLUDE_DIRS&lt;/code&gt; to exclude directories from zoxide&apos;s database.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Integrations&lt;/h2&gt;
&lt;p&gt;Zoxide integrates with a wide range of applications, from file managers like &lt;code&gt;lf&lt;/code&gt; and &lt;code&gt;ranger&lt;/code&gt; to text editors like &lt;code&gt;vim&lt;/code&gt; and &lt;code&gt;emacs&lt;/code&gt;, enhancing your workflow across tools.&lt;/p&gt;
&lt;h2&gt;Links&lt;/h2&gt;
&lt;p&gt;Github: &lt;a href=&quot;https://github.com/ajeetdsouza/zoxide&quot;&gt;https://github.com/ajeetdsouza/zoxide&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/XE1f7Tr0suo&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Sun, 21 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Zoxide&lt;/strong&gt; is an enhanced version of the traditional &lt;code&gt;cd&lt;/code&gt; command, drawing inspiration from tools like &lt;code&gt;z&lt;/code&gt; and &lt;code&gt;autojump&lt;/code&gt;. It&apos;s designed to make navigating your filesystem faster and more intuitive by learning your habits. The more you use it, the smarter it gets, allowing you to &quot;jump&quot; to your most frequently used directories with minimal input. &lt;/p&gt;
&lt;h2&gt;Key Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Smart Directory Jumping:&lt;/strong&gt; Navigate to your most used directories with just a few keystrokes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cross-Shell Compatibility:&lt;/strong&gt; Works seamlessly across all major shells.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Interactive Selection:&lt;/strong&gt; Use &lt;code&gt;zi&lt;/code&gt; for interactive directory selection with &lt;code&gt;fzf&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Easy Installation:&lt;/strong&gt; Simple setup process across various platforms.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Getting Started&lt;/h2&gt;
&lt;h3&gt;Basic Commands&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;z foo&lt;/code&gt;: Jump to the highest-ranked directory matching &lt;code&gt;foo&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;z ~/foo&lt;/code&gt;: Works just like &lt;code&gt;cd&lt;/code&gt;, allowing navigation to absolute paths.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;z ..&lt;/code&gt;: Move up one directory level.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;z -&lt;/code&gt;: Return to the previous directory.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Installation Steps&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Install Zoxide:&lt;/strong&gt; Available for Linux, macOS, Windows, BSD, and Android.&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;All operating systems have zoxide in default repositories and can be installed by using the &lt;code&gt;zoxide&lt;/code&gt; package&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Shell Integration:&lt;/strong&gt; Easily integrate zoxide into your preferred shell (Bash, Fish, Zsh, and more).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optional fzf Integration:&lt;/strong&gt; For enhanced interactive selection, install &lt;code&gt;fzf&lt;/code&gt; (v0.33.0+).&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Configuration&lt;/h3&gt;
&lt;p&gt;Customize zoxide with various flags and environment variables:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Command Prefix:&lt;/strong&gt; Change the default &lt;code&gt;z&lt;/code&gt; and &lt;code&gt;zi&lt;/code&gt; commands with &lt;code&gt;--cmd&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hooks:&lt;/strong&gt; Adjust the frequency of directory score updates with &lt;code&gt;--hook&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data Directory:&lt;/strong&gt; Specify the database location with &lt;code&gt;_ZO_DATA_DIR&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Exclude Directories:&lt;/strong&gt; Use &lt;code&gt;_ZO_EXCLUDE_DIRS&lt;/code&gt; to exclude directories from zoxide&apos;s database.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Integrations&lt;/h2&gt;
&lt;p&gt;Zoxide integrates with a wide range of applications, from file managers like &lt;code&gt;lf&lt;/code&gt; and &lt;code&gt;ranger&lt;/code&gt; to text editors like &lt;code&gt;vim&lt;/code&gt; and &lt;code&gt;emacs&lt;/code&gt;, enhancing your workflow across tools.&lt;/p&gt;
&lt;h2&gt;Links&lt;/h2&gt;
&lt;p&gt;Github: &lt;a href=&quot;https://github.com/ajeetdsouza/zoxide&quot;&gt;https://github.com/ajeetdsouza/zoxide&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/XE1f7Tr0suo&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>VPN Tier List 2024</title><link>https://christitus.com/vpn-tier-list-2024/</link><guid isPermaLink="true">https://christitus.com/vpn-tier-list-2024/</guid><description>&lt;p&gt;Did you know most VPNs are owned by only a few companies? Those companies can even sell your data on top of charging you a subscription fee.&lt;/p&gt;
&lt;p&gt;In this post, we&apos;ll be looking at the best VPNs for 2024.&lt;/p&gt;

&lt;h2&gt;Why Use a VPN?&lt;/h2&gt;
&lt;p&gt;If you are looking for &lt;strong&gt;privacy&lt;/strong&gt; or an &lt;strong&gt;encrypted connection on the go&lt;/strong&gt;, setting up a wireguard or openvpn server is a great way to do that. This established a secure connection to your home network and helps block attacks that could happen on the host network providing you internet in a hotel, coffee shop, or other public setting. Setting these up are free and the best way to protect your privacy while helping your maintain a secure connection.&lt;/p&gt;
&lt;p&gt;The next use case for a VPN is torrenting or streaming media from another country (geo-unlock). All VPNs generally are advertised as being able to do this, but make sure the VPN does not LOG any user activities and has servers in the country you want to watch streaming from.&lt;/p&gt;
&lt;h2&gt;Corporate VPNs and the Big Tech Companies&lt;/h2&gt;
&lt;p&gt;Kape Technology&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ExpressVPN&lt;/li&gt;
&lt;li&gt;CyberGhost&lt;/li&gt;
&lt;li&gt;Private Internet Access&lt;/li&gt;
&lt;li&gt;Intego Privacy Protection&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ziff Davis&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;IPVanish&lt;/li&gt;
&lt;li&gt;StrongVPN&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://Encrypt.me&quot;&gt;Encrypt.me&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;SaferVPN&lt;/li&gt;
&lt;li&gt;Perimeter 81&lt;/li&gt;
&lt;li&gt;FastVPN&lt;/li&gt;
&lt;li&gt;Internet Shield VPN by VIPRE&lt;/li&gt;
&lt;li&gt;SpeedtestVPN&lt;/li&gt;
&lt;li&gt;netDNA&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nord Security&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NordVPN&lt;/li&gt;
&lt;li&gt;NordLayer&lt;/li&gt;
&lt;li&gt;Surfshark VPN&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I could go on, but these are the heavy hitters in the market. Most other VPN conglomerates own 5-10 different VPN brands each.&lt;/p&gt;
&lt;h2&gt;The Best VPNs&lt;/h2&gt;
&lt;p&gt;These are independent VPNs that are owned by a single company and outside the 14-eyes countries. Mullvad is hosted in Sweden which doesn&apos;t have laws to intercept traffic. Likewise, ProtonVPN is hosted in Switzerland which also doesn&apos;t have these laws.&lt;/p&gt;
&lt;h2&gt;Final Tier List&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2024/vpn-tier-list-2024/vpns.webp&quot; alt=&quot;vpn-tier-list-2024&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/sPf1q_YLaKQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 19 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Did you know most VPNs are owned by only a few companies? Those companies can even sell your data on top of charging you a subscription fee.&lt;/p&gt;
&lt;p&gt;In this post, we&apos;ll be looking at the best VPNs for 2024.&lt;/p&gt;

&lt;h2&gt;Why Use a VPN?&lt;/h2&gt;
&lt;p&gt;If you are looking for &lt;strong&gt;privacy&lt;/strong&gt; or an &lt;strong&gt;encrypted connection on the go&lt;/strong&gt;, setting up a wireguard or openvpn server is a great way to do that. This established a secure connection to your home network and helps block attacks that could happen on the host network providing you internet in a hotel, coffee shop, or other public setting. Setting these up are free and the best way to protect your privacy while helping your maintain a secure connection.&lt;/p&gt;
&lt;p&gt;The next use case for a VPN is torrenting or streaming media from another country (geo-unlock). All VPNs generally are advertised as being able to do this, but make sure the VPN does not LOG any user activities and has servers in the country you want to watch streaming from.&lt;/p&gt;
&lt;h2&gt;Corporate VPNs and the Big Tech Companies&lt;/h2&gt;
&lt;p&gt;Kape Technology&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ExpressVPN&lt;/li&gt;
&lt;li&gt;CyberGhost&lt;/li&gt;
&lt;li&gt;Private Internet Access&lt;/li&gt;
&lt;li&gt;Intego Privacy Protection&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ziff Davis&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;IPVanish&lt;/li&gt;
&lt;li&gt;StrongVPN&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://Encrypt.me&quot;&gt;Encrypt.me&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;SaferVPN&lt;/li&gt;
&lt;li&gt;Perimeter 81&lt;/li&gt;
&lt;li&gt;FastVPN&lt;/li&gt;
&lt;li&gt;Internet Shield VPN by VIPRE&lt;/li&gt;
&lt;li&gt;SpeedtestVPN&lt;/li&gt;
&lt;li&gt;netDNA&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nord Security&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NordVPN&lt;/li&gt;
&lt;li&gt;NordLayer&lt;/li&gt;
&lt;li&gt;Surfshark VPN&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I could go on, but these are the heavy hitters in the market. Most other VPN conglomerates own 5-10 different VPN brands each.&lt;/p&gt;
&lt;h2&gt;The Best VPNs&lt;/h2&gt;
&lt;p&gt;These are independent VPNs that are owned by a single company and outside the 14-eyes countries. Mullvad is hosted in Sweden which doesn&apos;t have laws to intercept traffic. Likewise, ProtonVPN is hosted in Switzerland which also doesn&apos;t have these laws.&lt;/p&gt;
&lt;h2&gt;Final Tier List&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2024/vpn-tier-list-2024/vpns.webp&quot; alt=&quot;vpn-tier-list-2024&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/sPf1q_YLaKQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Bazzite Linux</title><link>https://christitus.com/bazzite-linux/</link><guid isPermaLink="true">https://christitus.com/bazzite-linux/</guid><description>&lt;p&gt;Bazzite is an OCI image designed as an alternative OS for the Steam Deck and a SteamOS-like system for desktops and home theater PCs. It&apos;s built on Fedora, offering broad hardware support and built-in drivers.&lt;/p&gt;
&lt;h2&gt;Official Bazzite Sites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Github: &lt;a href=&quot;https://github.com/ublue-os/bazzite&quot;&gt;https://github.com/ublue-os/bazzite&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Website: &lt;a href=&quot;https://bazzite.gg/&quot;&gt;https://bazzite.gg/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Download: &lt;a href=&quot;https://bazzite.gg/#image-picker&quot;&gt;https://bazzite.gg/#image-picker&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Key Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Hardware Support &amp;amp; Drivers&lt;/strong&gt;: Built from &lt;code&gt;ublue-os/main&lt;/code&gt; and &lt;code&gt;ublue-os/nvidia&lt;/code&gt;, ensuring wide hardware compatibility.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enhanced Gaming Experience&lt;/strong&gt;: Includes fsync kernel for HDR support, NVK for non-Nvidia builds, and full hardware-accelerated codec support.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Comprehensive Driver Support&lt;/strong&gt;: Features drivers for AMD GPUs, Xbox controllers, DisplayLink, and more.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gaming Optimizations&lt;/strong&gt;: Comes with LatencyFleX, vkBasalt, MangoHud, OBS VkCapture, and automated duperemove service.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Customization &amp;amp; Tools&lt;/strong&gt;: Offers Valve&apos;s KDE themes, optional GTK3/4 themes, System76-Scheduler, and Google&apos;s BBR TCP congestion control.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Handheld &amp;amp; Desktop Variants&lt;/strong&gt;: Tailored versions for desktops (&lt;code&gt;bazzite&lt;/code&gt;), Steam Deck, and HTPCs (&lt;code&gt;bazzite-deck&lt;/code&gt;), each with specific optimizations.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Installation &amp;amp; Usage&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ISO Downloads&lt;/strong&gt;: Available on the releases page with a detailed install guide.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rebasing&lt;/strong&gt;: Instructions provided for rebasing from Fedora Atomic to Bazzite using &lt;code&gt;rpm-ostree&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Secure Boot&lt;/strong&gt;: Follow the secure boot documentation if enabled.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Specialized Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Steam Deck &amp;amp; HTPCs&lt;/strong&gt;: Direct boot to Game mode, expanded input support, and custom update system.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GNOME Builds&lt;/strong&gt;: Include variable refresh rate support, GSConnect, and optional extensions for an enhanced user experience.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Upstream Features&lt;/strong&gt;: Incorporates features from Universal Blue and Fedora Linux, like pre-installed Nvidia drivers, Flathub, and SELinux.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Why Choose Bazzite?&lt;/h2&gt;
&lt;p&gt;Bazzite addresses common issues with SteamOS, such as outdated packages and lack of a functional package manager. It offers a stable base with the latest Linux kernel, SELinux, secure boot, and disk encryption support, making it suitable for both gaming and general computing.&lt;/p&gt;
&lt;h2&gt;My Experiences on a Mini PC&lt;/h2&gt;
&lt;p&gt;Hardware Used&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BeeLink 7840HS Mini PC Specifications:
&lt;ul&gt;
&lt;li&gt;CPU: AMD Ryzen 7 7840HS with Radeon Graphics&lt;/li&gt;
&lt;li&gt;GPU: Integrated AMD Radeon RX Vega 8 (RDNA 3)&lt;/li&gt;
&lt;li&gt;Cores: 8 Cores, 16 Threads&lt;/li&gt;
&lt;li&gt;Base Clock: 3.3 GHz&lt;/li&gt;
&lt;li&gt;Boost Clock: Up to 4.2 GHz&lt;/li&gt;
&lt;li&gt;Cache: 12MB Total Cache&lt;/li&gt;
&lt;li&gt;RAM: 32GB DDR4&lt;/li&gt;
&lt;li&gt;Storage: 1TB NVMe SSD&lt;/li&gt;
&lt;li&gt;Connectivity: Dual Band WiFi, Gigabit Ethernet, Bluetooth 4.0&lt;/li&gt;
&lt;li&gt;Ports: 4x USB 3.0, HDMI, Thunderbolt 3, SD Card Reader&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pros&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Installation was smooth and seemless&lt;/li&gt;
&lt;li&gt;Quick Steam setup and no configuration needed&lt;/li&gt;
&lt;li&gt;Launched Helldivers 2 without any change in stock configuration&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ujust&lt;/code&gt; package manager is easy for installs and expansion&lt;/li&gt;
&lt;li&gt;EmuDeck, Decky, and other options built in via &lt;code&gt;ujust&lt;/code&gt; launcher&lt;/li&gt;
&lt;li&gt;HDR Support works better than anything I&apos;ve tried!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cons&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I ran into the multiple power management issues. (Lock ups and will not properly shutdown)&lt;/li&gt;
&lt;li&gt;Dolphin Wii Emulation is dicey via Emudeck&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Livestream First Install&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/MOcekLz18QU&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/wdC_qiFoHN4&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 17 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Bazzite is an OCI image designed as an alternative OS for the Steam Deck and a SteamOS-like system for desktops and home theater PCs. It&apos;s built on Fedora, offering broad hardware support and built-in drivers.&lt;/p&gt;
&lt;h2&gt;Official Bazzite Sites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Github: &lt;a href=&quot;https://github.com/ublue-os/bazzite&quot;&gt;https://github.com/ublue-os/bazzite&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Website: &lt;a href=&quot;https://bazzite.gg/&quot;&gt;https://bazzite.gg/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Download: &lt;a href=&quot;https://bazzite.gg/#image-picker&quot;&gt;https://bazzite.gg/#image-picker&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Key Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Hardware Support &amp;amp; Drivers&lt;/strong&gt;: Built from &lt;code&gt;ublue-os/main&lt;/code&gt; and &lt;code&gt;ublue-os/nvidia&lt;/code&gt;, ensuring wide hardware compatibility.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enhanced Gaming Experience&lt;/strong&gt;: Includes fsync kernel for HDR support, NVK for non-Nvidia builds, and full hardware-accelerated codec support.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Comprehensive Driver Support&lt;/strong&gt;: Features drivers for AMD GPUs, Xbox controllers, DisplayLink, and more.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gaming Optimizations&lt;/strong&gt;: Comes with LatencyFleX, vkBasalt, MangoHud, OBS VkCapture, and automated duperemove service.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Customization &amp;amp; Tools&lt;/strong&gt;: Offers Valve&apos;s KDE themes, optional GTK3/4 themes, System76-Scheduler, and Google&apos;s BBR TCP congestion control.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Handheld &amp;amp; Desktop Variants&lt;/strong&gt;: Tailored versions for desktops (&lt;code&gt;bazzite&lt;/code&gt;), Steam Deck, and HTPCs (&lt;code&gt;bazzite-deck&lt;/code&gt;), each with specific optimizations.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Installation &amp;amp; Usage&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ISO Downloads&lt;/strong&gt;: Available on the releases page with a detailed install guide.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rebasing&lt;/strong&gt;: Instructions provided for rebasing from Fedora Atomic to Bazzite using &lt;code&gt;rpm-ostree&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Secure Boot&lt;/strong&gt;: Follow the secure boot documentation if enabled.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Specialized Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Steam Deck &amp;amp; HTPCs&lt;/strong&gt;: Direct boot to Game mode, expanded input support, and custom update system.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GNOME Builds&lt;/strong&gt;: Include variable refresh rate support, GSConnect, and optional extensions for an enhanced user experience.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Upstream Features&lt;/strong&gt;: Incorporates features from Universal Blue and Fedora Linux, like pre-installed Nvidia drivers, Flathub, and SELinux.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Why Choose Bazzite?&lt;/h2&gt;
&lt;p&gt;Bazzite addresses common issues with SteamOS, such as outdated packages and lack of a functional package manager. It offers a stable base with the latest Linux kernel, SELinux, secure boot, and disk encryption support, making it suitable for both gaming and general computing.&lt;/p&gt;
&lt;h2&gt;My Experiences on a Mini PC&lt;/h2&gt;
&lt;p&gt;Hardware Used&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BeeLink 7840HS Mini PC Specifications:
&lt;ul&gt;
&lt;li&gt;CPU: AMD Ryzen 7 7840HS with Radeon Graphics&lt;/li&gt;
&lt;li&gt;GPU: Integrated AMD Radeon RX Vega 8 (RDNA 3)&lt;/li&gt;
&lt;li&gt;Cores: 8 Cores, 16 Threads&lt;/li&gt;
&lt;li&gt;Base Clock: 3.3 GHz&lt;/li&gt;
&lt;li&gt;Boost Clock: Up to 4.2 GHz&lt;/li&gt;
&lt;li&gt;Cache: 12MB Total Cache&lt;/li&gt;
&lt;li&gt;RAM: 32GB DDR4&lt;/li&gt;
&lt;li&gt;Storage: 1TB NVMe SSD&lt;/li&gt;
&lt;li&gt;Connectivity: Dual Band WiFi, Gigabit Ethernet, Bluetooth 4.0&lt;/li&gt;
&lt;li&gt;Ports: 4x USB 3.0, HDMI, Thunderbolt 3, SD Card Reader&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pros&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Installation was smooth and seemless&lt;/li&gt;
&lt;li&gt;Quick Steam setup and no configuration needed&lt;/li&gt;
&lt;li&gt;Launched Helldivers 2 without any change in stock configuration&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ujust&lt;/code&gt; package manager is easy for installs and expansion&lt;/li&gt;
&lt;li&gt;EmuDeck, Decky, and other options built in via &lt;code&gt;ujust&lt;/code&gt; launcher&lt;/li&gt;
&lt;li&gt;HDR Support works better than anything I&apos;ve tried!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cons&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I ran into the multiple power management issues. (Lock ups and will not properly shutdown)&lt;/li&gt;
&lt;li&gt;Dolphin Wii Emulation is dicey via Emudeck&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Livestream First Install&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/MOcekLz18QU&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/wdC_qiFoHN4&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Windows 24h2</title><link>https://christitus.com/windows-24h2/</link><guid isPermaLink="true">https://christitus.com/windows-24h2/</guid><description>&lt;p&gt;Here is a list of all the features in Windows 24H2.&lt;/p&gt;

&lt;h2&gt;Windows 24H2 Update Highlights&lt;/h2&gt;
&lt;h3&gt;Microsoft Copilot Enhancements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Positioning:&lt;/strong&gt; Copilot button moved to the far right corner of the Taskbar for easier access.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New Commands:&lt;/strong&gt; Users can now ask Copilot for:
&lt;ul&gt;
&lt;li&gt;Wireless networks, system/device/battery information&lt;/li&gt;
&lt;li&gt;Storage cleaning, emptying recycle bin, toggling battery saver&lt;/li&gt;
&lt;li&gt;Startup apps, IP address, turning on accessibility features (narrator, voice access, magnifier, high-contrast, voice typing, live captions)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Animations:&lt;/strong&gt; New animations indicate Copilot assistance for copied text or images.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Settings:&lt;/strong&gt; A dedicated &quot;Copilot in Windows&quot; setting for UI customization and plugin configuration.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Interface:&lt;/strong&gt; Copilot interface can now be undocked and resized.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;File Explorer Improvements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Archiving:&lt;/strong&gt; Support for creating 7zip and TAR files.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PNG Metadata:&lt;/strong&gt; Enhanced viewing and editing capabilities.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Quick Settings Panel Updates&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Pagination:&lt;/strong&gt; Scroll through all quick settings.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Wi-Fi &amp;amp; VPN:&lt;/strong&gt; Refresh button for Wi-Fi list and improved VPN UI.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Live Captions:&lt;/strong&gt; Easier access with a single click.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Performance:&lt;/strong&gt; Faster opening times.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Phone Link Enhancements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Manage Mobile Devices App:&lt;/strong&gt; New app for basic phone-PC linking functionalities.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Phone Link App:&lt;/strong&gt; Remains for syncing text messages and notifications.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Energy Saver Mode&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Efficiency:&lt;/strong&gt; Reduces energy consumption and system performance.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Desktop Icon:&lt;/strong&gt; Energy-saver indicator for desktop PCs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Sudo for Windows&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Command Line:&lt;/strong&gt; Elevated process execution with various configuration options.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Microsoft Teams Integration&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Unified Client:&lt;/strong&gt; Merges Teams for work, school, and personal use.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;General Improvements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Installation Interface:&lt;/strong&gt; Modernized offline installation interface.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Driver Installation:&lt;/strong&gt; New button during Wi-Fi setup for driver installation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;App Removals:&lt;/strong&gt; Cortana, Mail, Calendar, Maps, People, Movies &amp;amp; TV, and WordPad removed from default installation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Taskbar and Printing Enhancements:&lt;/strong&gt; Wi-Fi icon animation, new Task Manager icon, and Windows protected print mode.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;USB80Gbps Support:&lt;/strong&gt; For new hardware with the updated USB4 standard.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;GSudo&lt;/h2&gt;
&lt;p&gt;Here is the best alternative for ANY version of Windows right now. While Sudo is nice in the future, updating to 24H2 is NOT RECOMMENDED! Use this instead:&lt;/p&gt;
&lt;p&gt;GitHub: &lt;a href=&quot;https://github.com/gerardog/gsudo&quot;&gt;https://github.com/gerardog/gsudo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Direct Install:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;winget install gerardog.gsudo
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;24H2 Livestream&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/ynmLm5_K_1E&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/00wdDITpfXU&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 15 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Here is a list of all the features in Windows 24H2.&lt;/p&gt;

&lt;h2&gt;Windows 24H2 Update Highlights&lt;/h2&gt;
&lt;h3&gt;Microsoft Copilot Enhancements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Positioning:&lt;/strong&gt; Copilot button moved to the far right corner of the Taskbar for easier access.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New Commands:&lt;/strong&gt; Users can now ask Copilot for:
&lt;ul&gt;
&lt;li&gt;Wireless networks, system/device/battery information&lt;/li&gt;
&lt;li&gt;Storage cleaning, emptying recycle bin, toggling battery saver&lt;/li&gt;
&lt;li&gt;Startup apps, IP address, turning on accessibility features (narrator, voice access, magnifier, high-contrast, voice typing, live captions)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Animations:&lt;/strong&gt; New animations indicate Copilot assistance for copied text or images.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Settings:&lt;/strong&gt; A dedicated &quot;Copilot in Windows&quot; setting for UI customization and plugin configuration.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Interface:&lt;/strong&gt; Copilot interface can now be undocked and resized.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;File Explorer Improvements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Archiving:&lt;/strong&gt; Support for creating 7zip and TAR files.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PNG Metadata:&lt;/strong&gt; Enhanced viewing and editing capabilities.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Quick Settings Panel Updates&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Pagination:&lt;/strong&gt; Scroll through all quick settings.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Wi-Fi &amp;amp; VPN:&lt;/strong&gt; Refresh button for Wi-Fi list and improved VPN UI.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Live Captions:&lt;/strong&gt; Easier access with a single click.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Performance:&lt;/strong&gt; Faster opening times.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Phone Link Enhancements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Manage Mobile Devices App:&lt;/strong&gt; New app for basic phone-PC linking functionalities.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Phone Link App:&lt;/strong&gt; Remains for syncing text messages and notifications.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Energy Saver Mode&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Efficiency:&lt;/strong&gt; Reduces energy consumption and system performance.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Desktop Icon:&lt;/strong&gt; Energy-saver indicator for desktop PCs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Sudo for Windows&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Command Line:&lt;/strong&gt; Elevated process execution with various configuration options.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Microsoft Teams Integration&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Unified Client:&lt;/strong&gt; Merges Teams for work, school, and personal use.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;General Improvements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Installation Interface:&lt;/strong&gt; Modernized offline installation interface.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Driver Installation:&lt;/strong&gt; New button during Wi-Fi setup for driver installation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;App Removals:&lt;/strong&gt; Cortana, Mail, Calendar, Maps, People, Movies &amp;amp; TV, and WordPad removed from default installation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Taskbar and Printing Enhancements:&lt;/strong&gt; Wi-Fi icon animation, new Task Manager icon, and Windows protected print mode.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;USB80Gbps Support:&lt;/strong&gt; For new hardware with the updated USB4 standard.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;GSudo&lt;/h2&gt;
&lt;p&gt;Here is the best alternative for ANY version of Windows right now. While Sudo is nice in the future, updating to 24H2 is NOT RECOMMENDED! Use this instead:&lt;/p&gt;
&lt;p&gt;GitHub: &lt;a href=&quot;https://github.com/gerardog/gsudo&quot;&gt;https://github.com/gerardog/gsudo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Direct Install:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;winget install gerardog.gsudo
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;24H2 Livestream&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/ynmLm5_K_1E&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/00wdDITpfXU&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>GlazeWM Tiling Window Management</title><link>https://christitus.com/glazewm-tiling-window-management/</link><guid isPermaLink="true">https://christitus.com/glazewm-tiling-window-management/</guid><description>&lt;p&gt;GlazeWM is a powerful tiling window manager for Windows, designed to enhance productivity by allowing users to efficiently manage their windows and workspaces through keyboard-driven commands. This guide will walk you through the installation process and introduce you to some of the most commonly used hotkeys in GlazeWM.&lt;/p&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;There are several methods to install GlazeWM, ensuring flexibility depending on your preferences or requirements.&lt;/p&gt;
&lt;h3&gt;Direct Download&lt;/h3&gt;
&lt;p&gt;The simplest way to get GlazeWM up and running is by downloading the latest executable from the &lt;a href=&quot;https://github.com/glzr-io/glazewm/releases&quot;&gt;releases page&lt;/a&gt;. No installation is necessary; just run the &lt;code&gt;.exe&lt;/code&gt; file.&lt;/p&gt;
&lt;h3&gt;Winget&lt;/h3&gt;
&lt;p&gt;For those who prefer package managers, GlazeWM can be installed via Winget with the following command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;winget install glazewm
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Hotkeys&lt;/h2&gt;
&lt;p&gt;GlazeWM offers a variety of hotkeys to streamline your workflow. Here are some of the most essential ones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Alt + Arrow Keys&lt;/strong&gt;: Move focus between windows&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Alt + Shift + Arrow Keys&lt;/strong&gt;: Move the focused window in the direction of the arrow keys&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Alt + Number&lt;/strong&gt;: Switch to a specific workspace (e.g., Alt + 1 for workspace 1)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Alt + Shift + Number&lt;/strong&gt;: Move the focused window to a specific workspace&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These hotkeys are customizable, and users are encouraged to tailor them to their specific needs through the GlazeWM settings.&lt;/p&gt;
&lt;h3&gt;Official Hotkey Maps&lt;/h3&gt;
&lt;p&gt;Alt Hotkeys&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/34844898/194635035-152ed4a6-e5a1-4878-8863-f62391e7d703.webp&quot; alt=&quot;GlazeWM Hotkey Maps&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Alt+Shift Hotkeys&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/34844898/194635089-d5ed152b-1527-43e8-a69c-4e154b97a207.webp&quot; alt=&quot;GlazeWM Hotkey Maps2&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Custom Hotkeys&lt;/h3&gt;
&lt;p&gt;I made some modifications based on the programs that I use all the time. Here are the ones I use the most:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;keybindings:
  - command: &quot;exec &apos;C:\\Program Files\\Thorium\\Application\\thorium.exe&apos;&quot;
    bindings: [&quot;Alt+B&quot;]
  - command: &quot;exec wt&quot;
    bindings: [&quot;Alt+X&quot;]
  - command: &quot;exec explorer&quot;
    bindings: [&quot;Alt+E&quot;]
  - command: &quot;exec &apos;%LOCALAPPDATA%\\Programs\\cursor\\Cursor.exe&apos;&quot;
    bindings: [&quot;Alt+W&quot;]
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Personal Config&lt;/h3&gt;
&lt;p&gt;My doesn&apos;t change that much from the default but I do have a few changes to the workspace layout. Mainly I hate the massive gaps by default. Here is a link to my config file:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/ChrisTitusTech/glazewm/main/config.yaml&quot;&gt;Raw Config File&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Livestream using GlazeWM&lt;/h2&gt;
&lt;p&gt;GlazeWM work starts at &lt;a href=&quot;https://youtu.be/mJqNBBSViDU?si=3hZKYYp3kOJ3ZILG&amp;amp;t=2015&quot;&gt;33:35&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/mJqNBBSViDU&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/0I8HyVMKEeo&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Sat, 13 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;GlazeWM is a powerful tiling window manager for Windows, designed to enhance productivity by allowing users to efficiently manage their windows and workspaces through keyboard-driven commands. This guide will walk you through the installation process and introduce you to some of the most commonly used hotkeys in GlazeWM.&lt;/p&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;There are several methods to install GlazeWM, ensuring flexibility depending on your preferences or requirements.&lt;/p&gt;
&lt;h3&gt;Direct Download&lt;/h3&gt;
&lt;p&gt;The simplest way to get GlazeWM up and running is by downloading the latest executable from the &lt;a href=&quot;https://github.com/glzr-io/glazewm/releases&quot;&gt;releases page&lt;/a&gt;. No installation is necessary; just run the &lt;code&gt;.exe&lt;/code&gt; file.&lt;/p&gt;
&lt;h3&gt;Winget&lt;/h3&gt;
&lt;p&gt;For those who prefer package managers, GlazeWM can be installed via Winget with the following command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;winget install glazewm
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Hotkeys&lt;/h2&gt;
&lt;p&gt;GlazeWM offers a variety of hotkeys to streamline your workflow. Here are some of the most essential ones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Alt + Arrow Keys&lt;/strong&gt;: Move focus between windows&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Alt + Shift + Arrow Keys&lt;/strong&gt;: Move the focused window in the direction of the arrow keys&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Alt + Number&lt;/strong&gt;: Switch to a specific workspace (e.g., Alt + 1 for workspace 1)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Alt + Shift + Number&lt;/strong&gt;: Move the focused window to a specific workspace&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These hotkeys are customizable, and users are encouraged to tailor them to their specific needs through the GlazeWM settings.&lt;/p&gt;
&lt;h3&gt;Official Hotkey Maps&lt;/h3&gt;
&lt;p&gt;Alt Hotkeys&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/34844898/194635035-152ed4a6-e5a1-4878-8863-f62391e7d703.webp&quot; alt=&quot;GlazeWM Hotkey Maps&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Alt+Shift Hotkeys&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/34844898/194635089-d5ed152b-1527-43e8-a69c-4e154b97a207.webp&quot; alt=&quot;GlazeWM Hotkey Maps2&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Custom Hotkeys&lt;/h3&gt;
&lt;p&gt;I made some modifications based on the programs that I use all the time. Here are the ones I use the most:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;keybindings:
  - command: &quot;exec &apos;C:\\Program Files\\Thorium\\Application\\thorium.exe&apos;&quot;
    bindings: [&quot;Alt+B&quot;]
  - command: &quot;exec wt&quot;
    bindings: [&quot;Alt+X&quot;]
  - command: &quot;exec explorer&quot;
    bindings: [&quot;Alt+E&quot;]
  - command: &quot;exec &apos;%LOCALAPPDATA%\\Programs\\cursor\\Cursor.exe&apos;&quot;
    bindings: [&quot;Alt+W&quot;]
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Personal Config&lt;/h3&gt;
&lt;p&gt;My doesn&apos;t change that much from the default but I do have a few changes to the workspace layout. Mainly I hate the massive gaps by default. Here is a link to my config file:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/ChrisTitusTech/glazewm/main/config.yaml&quot;&gt;Raw Config File&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Livestream using GlazeWM&lt;/h2&gt;
&lt;p&gt;GlazeWM work starts at &lt;a href=&quot;https://youtu.be/mJqNBBSViDU?si=3hZKYYp3kOJ3ZILG&amp;amp;t=2015&quot;&gt;33:35&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/mJqNBBSViDU&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/0I8HyVMKEeo&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Drivers in Windows</title><link>https://christitus.com/drivers-in-windows/</link><guid isPermaLink="true">https://christitus.com/drivers-in-windows/</guid><description>&lt;p&gt;In the vast ecosystem of Windows, managing device drivers can be a complex task, especially when dealing with third-party drivers. Tools like &lt;strong&gt;Driver Store Explorer&lt;/strong&gt; (also known as &lt;strong&gt;RAPR&lt;/strong&gt;), &lt;a href=&quot;https://github.com/lostindark/DriverStoreExplorer&quot;&gt;hosted on GitHub&lt;/a&gt;, offer a streamlined approach to handling drivers in the Windows driver store.&lt;/p&gt;
&lt;h2&gt;What is Driver Store Explorer?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Driver Store Explorer [RAPR]&lt;/strong&gt; is a user-friendly application designed to simplify interactions with the Windows driver store. It supports a range of operations including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Listing&lt;/li&gt;
&lt;li&gt;Adding&lt;/li&gt;
&lt;li&gt;Installing&lt;/li&gt;
&lt;li&gt;Deleting third-party driver packages&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This tool is invaluable for both casual users looking to clean up their driver store and professionals managing multiple systems.&lt;/p&gt;
&lt;h2&gt;Key Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Driver Enumeration:&lt;/strong&gt; Lists all third-party driver packages stored in the driver store, along with the devices associated with each driver. It also allows exporting this list as a CSV file for further analysis.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Driver Management:&lt;/strong&gt; Facilitates adding new driver packages to the store and deleting old or unused ones, helping in maintaining an optimal system performance.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Offline and Online Store Management:&lt;/strong&gt; Works with both online (local machine) and offline driver stores, providing flexibility in various scenarios.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Efficiency:&lt;/strong&gt; Identifies old and potentially unused drivers for deletion, making it easier to free up space and keep the driver store tidy.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;User Interface:&lt;/strong&gt; Features a full-fledged GUI that supports grouping, sorting, and selecting specific columns for a customized view.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Getting Started&lt;/h3&gt;
&lt;p&gt;To start using Driver Store Explorer, download the latest version from the &lt;a href=&quot;https://github.com/lostindark/DriverStoreExplorer/releases&quot;&gt;releases page on GitHub&lt;/a&gt;. Once downloaded, the application does not require installation and can be run directly, making it a portable tool for various uses.&lt;/p&gt;
&lt;h2&gt;Practical Applications&lt;/h2&gt;
&lt;p&gt;Driver Store Explorer is particularly useful in scenarios such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;System Cleanup:&lt;/strong&gt; Removing old and unused drivers to free up disk space.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Driver Updates:&lt;/strong&gt; Adding new driver packages to the store before installation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Troubleshooting:&lt;/strong&gt; Identifying and managing drivers associated with problematic devices.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Alternative Driver Management Tools&lt;/h2&gt;
&lt;p&gt;I personally do NOT recommend any tools if you have internet access and download the OFFICIAL drivers from your manufactures website. I use DriverStoreExplorer to export my drivers and import them into my windows image. However, if you don&apos;t have the drivers or can&apos;t find them all for your system, use the tools below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SDIO - Snappy Driver Installer&lt;/strong&gt; (&lt;a href=&quot;https://www.snappy-driver-installer.org/&quot;&gt;visit website&lt;/a&gt;) is a freeware tool that simplifies the process of installing drivers from the Windows driver store. Its user-friendly interface supports both online and offline driver stores, offering an efficient solution for managing drivers on Windows systems.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;3DP Chip Net Downloader&lt;/strong&gt; (&lt;a href=&quot;https://www.3dpchip.com/3dpchip/3dp/net_down_en.php&quot;&gt;visit website&lt;/a&gt;) use an ad-blocker and ONLY grab the NET download to get network driver bundle. &lt;strong&gt;This should only be used as a LAST RESORT!&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DriverPack Solution&lt;/strong&gt; (&lt;a href=&quot;https://driverpack.io/en/foradmin&quot;&gt;visit website&lt;/a&gt;) This is a popular tool that was made in Russia. &lt;strong&gt;I do not trust it&lt;/strong&gt;, but in a pinch it can also do network driver installs. Only use the DriverPack Offline Network Driver Installer.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Driver Store Explorer is a powerful and user-friendly tool that simplifies the management of Windows drivers. Its ability to handle both online and offline driver stores, coupled with a comprehensive set of features, makes it an essential utility for anyone looking to manage drivers on Windows systems efficiently.&lt;/p&gt;
&lt;p&gt;Whether you&apos;re a professional IT administrator or a casual user wanting to keep your system lean, Driver Store Explorer offers the functionality needed to manage your drivers effectively.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/R5RAgqB6YxM&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Thu, 11 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In the vast ecosystem of Windows, managing device drivers can be a complex task, especially when dealing with third-party drivers. Tools like &lt;strong&gt;Driver Store Explorer&lt;/strong&gt; (also known as &lt;strong&gt;RAPR&lt;/strong&gt;), &lt;a href=&quot;https://github.com/lostindark/DriverStoreExplorer&quot;&gt;hosted on GitHub&lt;/a&gt;, offer a streamlined approach to handling drivers in the Windows driver store.&lt;/p&gt;
&lt;h2&gt;What is Driver Store Explorer?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Driver Store Explorer [RAPR]&lt;/strong&gt; is a user-friendly application designed to simplify interactions with the Windows driver store. It supports a range of operations including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Listing&lt;/li&gt;
&lt;li&gt;Adding&lt;/li&gt;
&lt;li&gt;Installing&lt;/li&gt;
&lt;li&gt;Deleting third-party driver packages&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This tool is invaluable for both casual users looking to clean up their driver store and professionals managing multiple systems.&lt;/p&gt;
&lt;h2&gt;Key Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Driver Enumeration:&lt;/strong&gt; Lists all third-party driver packages stored in the driver store, along with the devices associated with each driver. It also allows exporting this list as a CSV file for further analysis.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Driver Management:&lt;/strong&gt; Facilitates adding new driver packages to the store and deleting old or unused ones, helping in maintaining an optimal system performance.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Offline and Online Store Management:&lt;/strong&gt; Works with both online (local machine) and offline driver stores, providing flexibility in various scenarios.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Efficiency:&lt;/strong&gt; Identifies old and potentially unused drivers for deletion, making it easier to free up space and keep the driver store tidy.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;User Interface:&lt;/strong&gt; Features a full-fledged GUI that supports grouping, sorting, and selecting specific columns for a customized view.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Getting Started&lt;/h3&gt;
&lt;p&gt;To start using Driver Store Explorer, download the latest version from the &lt;a href=&quot;https://github.com/lostindark/DriverStoreExplorer/releases&quot;&gt;releases page on GitHub&lt;/a&gt;. Once downloaded, the application does not require installation and can be run directly, making it a portable tool for various uses.&lt;/p&gt;
&lt;h2&gt;Practical Applications&lt;/h2&gt;
&lt;p&gt;Driver Store Explorer is particularly useful in scenarios such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;System Cleanup:&lt;/strong&gt; Removing old and unused drivers to free up disk space.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Driver Updates:&lt;/strong&gt; Adding new driver packages to the store before installation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Troubleshooting:&lt;/strong&gt; Identifying and managing drivers associated with problematic devices.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Alternative Driver Management Tools&lt;/h2&gt;
&lt;p&gt;I personally do NOT recommend any tools if you have internet access and download the OFFICIAL drivers from your manufactures website. I use DriverStoreExplorer to export my drivers and import them into my windows image. However, if you don&apos;t have the drivers or can&apos;t find them all for your system, use the tools below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SDIO - Snappy Driver Installer&lt;/strong&gt; (&lt;a href=&quot;https://www.snappy-driver-installer.org/&quot;&gt;visit website&lt;/a&gt;) is a freeware tool that simplifies the process of installing drivers from the Windows driver store. Its user-friendly interface supports both online and offline driver stores, offering an efficient solution for managing drivers on Windows systems.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;3DP Chip Net Downloader&lt;/strong&gt; (&lt;a href=&quot;https://www.3dpchip.com/3dpchip/3dp/net_down_en.php&quot;&gt;visit website&lt;/a&gt;) use an ad-blocker and ONLY grab the NET download to get network driver bundle. &lt;strong&gt;This should only be used as a LAST RESORT!&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DriverPack Solution&lt;/strong&gt; (&lt;a href=&quot;https://driverpack.io/en/foradmin&quot;&gt;visit website&lt;/a&gt;) This is a popular tool that was made in Russia. &lt;strong&gt;I do not trust it&lt;/strong&gt;, but in a pinch it can also do network driver installs. Only use the DriverPack Offline Network Driver Installer.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Driver Store Explorer is a powerful and user-friendly tool that simplifies the management of Windows drivers. Its ability to handle both online and offline driver stores, coupled with a comprehensive set of features, makes it an essential utility for anyone looking to manage drivers on Windows systems efficiently.&lt;/p&gt;
&lt;p&gt;Whether you&apos;re a professional IT administrator or a casual user wanting to keep your system lean, Driver Store Explorer offers the functionality needed to manage your drivers effectively.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/R5RAgqB6YxM&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Freedesktop Bans Hyprland</title><link>https://christitus.com/freedesktop-bans-hyprland/</link><guid isPermaLink="true">https://christitus.com/freedesktop-bans-hyprland/</guid><description>&lt;p&gt;Hyprland maintainer Vaxry has been banned by FreeDesktop. Meaning he can not report or patch anything in FreeDesktop which is a sad state of affairs for the Linux Desktop community as a whole, especially the wayland side of things.&lt;/p&gt;

&lt;h2&gt;What happened?&lt;/h2&gt;
&lt;p&gt;In 2022, the Hyprland Discord had a mod bully a transgender person by changing their nickname removing pronouns to (who/cares). Vaxry also made some off the cuff remarks about this, but I couldn&apos;t find anything worse than above. A transgender person that works for redhat and is part of the freedesktop leadership heard about this and demanded Vaxry respond to it on March, 19th 2024.&lt;/p&gt;
&lt;h2&gt;Why Now?&lt;/h2&gt;
&lt;p&gt;Sometimes it takes a while before these things gain traction. Hyprland is now the biggest tiling window manager on Wayland and Hypr Cursor was recently recommended to replace XCursor which is badly out of date and frankly a terribly coded cursor system. Vaxry has become incredibly popular as he is a gifted programmer.&lt;/p&gt;
&lt;h2&gt;Who are these people?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Vaxry - Hyprland and Hypr Project Maintainer&lt;/li&gt;
&lt;li&gt;Drew Devault - Sway Maintainer (Author of article: &lt;a href=&quot;https://drewdevault.com/2024/04/09/2024-04-09-FDO-conduct-enforcement.html&quot;&gt;https://drewdevault.com/2024/04/09/2024-04-09-FDO-conduct-enforcement.html&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Lyude - Redhat Employee and Freedesktop member (Contacted Vaxry inquiring about discord incidents 2 years old.)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Where to go from here?&lt;/h2&gt;
&lt;p&gt;Banning Vaxry means he can&apos;t contribute to wlroots and keep putting patches which were very beneficial to wayland. He will still maintain and produce hyprland.&lt;/p&gt;
&lt;h2&gt;Official Links to Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Vaxry&apos;s Blog &lt;a href=&quot;https://blog.vaxry.net/articles/2024-fdo-and-redhat2&quot;&gt;Freedesktop/RedHat&apos;s CoC team is worse than you thought.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Vaxry&apos;s Blog &lt;a href=&quot;https://blog.vaxry.net/articles/2024-fdo-and-redhat&quot;&gt;How Freedesktop/RedHat harass other projects into submission&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Drew&apos;s Vaxry Takedown - &lt;a href=&quot;https://drewdevault.com/2024/04/09/2024-04-09-FDO-conduct-enforcement.html&quot;&gt;FDO&apos;s conduct enforcement actions regarding Vaxry&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Other YouTuber Takes&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Brodie Robertson&lt;/th&gt;
&lt;th&gt;Nicco (KDE Dev)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/Lm3gLwyjawQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td&gt;&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/xjTdroiDCtc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/0ws1SIbAQq8&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 10 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Hyprland maintainer Vaxry has been banned by FreeDesktop. Meaning he can not report or patch anything in FreeDesktop which is a sad state of affairs for the Linux Desktop community as a whole, especially the wayland side of things.&lt;/p&gt;

&lt;h2&gt;What happened?&lt;/h2&gt;
&lt;p&gt;In 2022, the Hyprland Discord had a mod bully a transgender person by changing their nickname removing pronouns to (who/cares). Vaxry also made some off the cuff remarks about this, but I couldn&apos;t find anything worse than above. A transgender person that works for redhat and is part of the freedesktop leadership heard about this and demanded Vaxry respond to it on March, 19th 2024.&lt;/p&gt;
&lt;h2&gt;Why Now?&lt;/h2&gt;
&lt;p&gt;Sometimes it takes a while before these things gain traction. Hyprland is now the biggest tiling window manager on Wayland and Hypr Cursor was recently recommended to replace XCursor which is badly out of date and frankly a terribly coded cursor system. Vaxry has become incredibly popular as he is a gifted programmer.&lt;/p&gt;
&lt;h2&gt;Who are these people?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Vaxry - Hyprland and Hypr Project Maintainer&lt;/li&gt;
&lt;li&gt;Drew Devault - Sway Maintainer (Author of article: &lt;a href=&quot;https://drewdevault.com/2024/04/09/2024-04-09-FDO-conduct-enforcement.html&quot;&gt;https://drewdevault.com/2024/04/09/2024-04-09-FDO-conduct-enforcement.html&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Lyude - Redhat Employee and Freedesktop member (Contacted Vaxry inquiring about discord incidents 2 years old.)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Where to go from here?&lt;/h2&gt;
&lt;p&gt;Banning Vaxry means he can&apos;t contribute to wlroots and keep putting patches which were very beneficial to wayland. He will still maintain and produce hyprland.&lt;/p&gt;
&lt;h2&gt;Official Links to Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Vaxry&apos;s Blog &lt;a href=&quot;https://blog.vaxry.net/articles/2024-fdo-and-redhat2&quot;&gt;Freedesktop/RedHat&apos;s CoC team is worse than you thought.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Vaxry&apos;s Blog &lt;a href=&quot;https://blog.vaxry.net/articles/2024-fdo-and-redhat&quot;&gt;How Freedesktop/RedHat harass other projects into submission&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Drew&apos;s Vaxry Takedown - &lt;a href=&quot;https://drewdevault.com/2024/04/09/2024-04-09-FDO-conduct-enforcement.html&quot;&gt;FDO&apos;s conduct enforcement actions regarding Vaxry&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Other YouTuber Takes&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Brodie Robertson&lt;/th&gt;
&lt;th&gt;Nicco (KDE Dev)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/Lm3gLwyjawQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td&gt;&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/xjTdroiDCtc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/0ws1SIbAQq8&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Universal Android Debloat - Double Your Battery Life</title><link>https://christitus.com/universal-android-debloat/</link><guid isPermaLink="true">https://christitus.com/universal-android-debloat/</guid><description>&lt;p&gt;The Universal Android Debloater (UADNG) is a cross-platform tool that removes unwanted bloatware from non-rooted Android devices. This powerful tool can double your battery life by removing background processes and unnecessary apps that drain your phone. Most Android devices should last 3-4 days on a single charge, and UADNG helps you achieve this without requiring root access.&lt;/p&gt;

&lt;h2&gt;Why Debloat Your Android?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Extended Battery Life:&lt;/strong&gt; Remove bloatware to achieve 3-4 days of battery life instead of the typical 24-48 hours&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enhanced Privacy:&lt;/strong&gt; Fewer apps running in the background means less data collection and tracking&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improved Performance:&lt;/strong&gt; Reduced system load leads to a faster, more responsive device&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No Root Required:&lt;/strong&gt; Works on any Android device without voiding your warranty&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Key Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cross-Platform:&lt;/strong&gt; Written in Rust, runs smoothly on Windows, Mac, and Linux&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Safe Debloating:&lt;/strong&gt; Recommended presets prevent accidentally breaking your device&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reversible Changes:&lt;/strong&gt; Easily reinstall apps from the Play Store if needed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ADB-Based:&lt;/strong&gt; Uses Android Debug Bridge for secure, official communication with your device&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;Before starting, you&apos;ll need:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ADB (Android Debug Bridge)&lt;/strong&gt; installed on your computer&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;USB cable&lt;/strong&gt; to connect your device&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;15-20 minutes&lt;/strong&gt; for the complete process&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;h3&gt;Installing ADB&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Windows:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Download &lt;a href=&quot;https://dl.google.com/android/repository/platform-tools-latest-windows.zip&quot;&gt;Android Platform Tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Extract to a folder (e.g., &lt;code&gt;C:\platform-tools&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Alternative:&lt;/em&gt; Install via Chocolatey: &lt;code&gt;choco install adb&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Linux (Arch):&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo pacman -S android-tools
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Linux (Ubuntu/Debian):&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo apt-get install adb
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;macOS:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;brew install android-platform-tools
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Downloading UADNG&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Visit the &lt;a href=&quot;https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation/releases&quot;&gt;UADNG GitHub Releases page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Assets&lt;/strong&gt; under the latest release&lt;/li&gt;
&lt;li&gt;Download the version for your operating system&lt;/li&gt;
&lt;li&gt;Extract the files to a convenient location&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Setting Up Your Android Device&lt;/h2&gt;
&lt;h3&gt;Enable Developer Options&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Open &lt;strong&gt;Settings&lt;/strong&gt; on your phone&lt;/li&gt;
&lt;li&gt;Scroll to &lt;strong&gt;About phone&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Tap &lt;strong&gt;Build number&lt;/strong&gt; 7-8 times until you see &quot;You are now a developer!&quot;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Enable USB Debugging&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Open &lt;strong&gt;Settings&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Search for &quot;Developer options&quot; or find it under System&lt;/li&gt;
&lt;li&gt;Enable &lt;strong&gt;USB debugging&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Connect your phone via USB&lt;/li&gt;
&lt;li&gt;Accept the debugging authorization prompt on your phone&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Verify ADB Connection&lt;/h3&gt;
&lt;p&gt;Open your terminal/command prompt and run:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;adb devices
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You should see your device listed. If it shows &quot;unauthorized,&quot; check your phone for the authorization prompt and select &quot;Always allow from this computer.&quot;&lt;/p&gt;
&lt;h2&gt;Using Universal Android Debloater&lt;/h2&gt;
&lt;h3&gt;Launch the Tool&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to where you extracted UADNG&lt;/li&gt;
&lt;li&gt;Run the executable for your OS:
&lt;ul&gt;
&lt;li&gt;Windows: &lt;code&gt;uad-ng.exe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Mac: &lt;code&gt;uad-ng&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Linux: &lt;code&gt;./uad-ng&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Debloating Process&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Select Recommended Tab:&lt;/strong&gt; This is the safest option and prevents breaking your device&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Review the App List:&lt;/strong&gt; Scroll through and uncheck any apps you want to keep:
&lt;ul&gt;
&lt;li&gt;Google Photos&lt;/li&gt;
&lt;li&gt;Android Messages&lt;/li&gt;
&lt;li&gt;Google Maps&lt;/li&gt;
&lt;li&gt;Chrome browser&lt;/li&gt;
&lt;li&gt;YouTube&lt;/li&gt;
&lt;li&gt;Google Wallet (if you use contactless payments)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Export Selection (Optional):&lt;/strong&gt; Click &quot;Export current selection&quot; to save your choices&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Uninstall Selected:&lt;/strong&gt; Click the button to remove the selected apps&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Example Result:&lt;/strong&gt; Removing 37 bloatware apps from a Google Pixel 6A increased battery life from 24-48 hours to 3-4 days.&lt;/p&gt;
&lt;h2&gt;Important Notes&lt;/h2&gt;
&lt;h3&gt;For Google Pixel Users&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;You MUST install a custom launcher&lt;/strong&gt; before debloating. The process can break Google&apos;s default launcher. Recommended options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Niagara Launcher (minimal, simple interface)&lt;/li&gt;
&lt;li&gt;Nova Launcher&lt;/li&gt;
&lt;li&gt;Lawnchair&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Critical Warnings&lt;/h3&gt;
&lt;p&gt;⚠️ &lt;strong&gt;NEVER use the &quot;All&quot; selection:&lt;/strong&gt; This will uninstall critical system components and brick your device&lt;/p&gt;
&lt;p&gt;⚠️ &lt;strong&gt;Avoid &quot;Unsafe&quot; or &quot;Advanced&quot; tabs:&lt;/strong&gt; These contain essential system apps like your network stack&lt;/p&gt;
&lt;p&gt;⚠️ &lt;strong&gt;Stick to &quot;Recommended&quot; settings:&lt;/strong&gt; This preset has been tested and is safe for all devices&lt;/p&gt;
&lt;h3&gt;Restoring Accidentally Removed Apps&lt;/h3&gt;
&lt;p&gt;If you accidentally remove an app:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open the &lt;strong&gt;Google Play Store&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Search for the app (e.g., YouTube, Wallet)&lt;/li&gt;
&lt;li&gt;Tap &lt;strong&gt;Install&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;The app will be restored immediately&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Post-Debloat Options&lt;/h2&gt;
&lt;h3&gt;Disable USB Debugging (Optional)&lt;/h3&gt;
&lt;p&gt;If you won&apos;t be using ADB regularly:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Settings &amp;gt; Developer options&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Toggle off &lt;strong&gt;USB debugging&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Keep USB Debugging Enabled If&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;You use screen mirroring tools (scrcpy, Vysor)&lt;/li&gt;
&lt;li&gt;You frequently manage apps via ADB&lt;/li&gt;
&lt;li&gt;You want easy access for future debloating sessions&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Battery Life Results&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Before Debloating:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Typical usage: 24-48 hours per charge&lt;/li&gt;
&lt;li&gt;Heavy background processes&lt;/li&gt;
&lt;li&gt;Constant app updates and syncing&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;After Debloating:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Typical usage: 3-4 days per charge&lt;/li&gt;
&lt;li&gt;Minimal background processes&lt;/li&gt;
&lt;li&gt;Only essential apps running&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Battery life approximately doubled&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Tips for Best Results&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Create a Backup:&lt;/strong&gt; Export your app selection before uninstalling&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Start Conservative:&lt;/strong&gt; Use only the Recommended tab on your first attempt&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Test Functionality:&lt;/strong&gt; After debloating, ensure all features you need still work&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reinstall as Needed:&lt;/strong&gt; Don&apos;t worry about mistakes—apps are easily restored&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Update UADNG:&lt;/strong&gt; Check for new releases periodically for updated app lists&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Troubleshooting&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Device not detected:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ensure USB debugging is enabled&lt;/li&gt;
&lt;li&gt;Try a different USB cable or port&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;adb devices&lt;/code&gt; to verify connection&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Launcher broken (Pixel devices):&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Install a custom launcher before debloating&lt;/li&gt;
&lt;li&gt;Or reinstall Google Launcher from Play Store&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;App you need was removed:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Simply reinstall from the Play Store&lt;/li&gt;
&lt;li&gt;All removed apps can be restored&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Universal Android Debloater is an essential tool for anyone wanting to reclaim their Android device&apos;s battery life and privacy. By removing unnecessary bloatware, you can achieve 3-4 days of battery life without rooting your device or making permanent changes. The process is safe, reversible, and takes less than 15 minutes.&lt;/p&gt;
&lt;p&gt;For more information and downloads, visit the &lt;a href=&quot;https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation&quot;&gt;Universal Android Debloater Next Generation GitHub page&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/EgcfSgPs23A&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Tue, 09 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The Universal Android Debloater (UADNG) is a cross-platform tool that removes unwanted bloatware from non-rooted Android devices. This powerful tool can double your battery life by removing background processes and unnecessary apps that drain your phone. Most Android devices should last 3-4 days on a single charge, and UADNG helps you achieve this without requiring root access.&lt;/p&gt;

&lt;h2&gt;Why Debloat Your Android?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Extended Battery Life:&lt;/strong&gt; Remove bloatware to achieve 3-4 days of battery life instead of the typical 24-48 hours&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enhanced Privacy:&lt;/strong&gt; Fewer apps running in the background means less data collection and tracking&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improved Performance:&lt;/strong&gt; Reduced system load leads to a faster, more responsive device&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No Root Required:&lt;/strong&gt; Works on any Android device without voiding your warranty&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Key Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cross-Platform:&lt;/strong&gt; Written in Rust, runs smoothly on Windows, Mac, and Linux&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Safe Debloating:&lt;/strong&gt; Recommended presets prevent accidentally breaking your device&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reversible Changes:&lt;/strong&gt; Easily reinstall apps from the Play Store if needed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ADB-Based:&lt;/strong&gt; Uses Android Debug Bridge for secure, official communication with your device&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;Before starting, you&apos;ll need:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ADB (Android Debug Bridge)&lt;/strong&gt; installed on your computer&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;USB cable&lt;/strong&gt; to connect your device&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;15-20 minutes&lt;/strong&gt; for the complete process&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;h3&gt;Installing ADB&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Windows:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Download &lt;a href=&quot;https://dl.google.com/android/repository/platform-tools-latest-windows.zip&quot;&gt;Android Platform Tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Extract to a folder (e.g., &lt;code&gt;C:\platform-tools&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Alternative:&lt;/em&gt; Install via Chocolatey: &lt;code&gt;choco install adb&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Linux (Arch):&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo pacman -S android-tools
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Linux (Ubuntu/Debian):&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo apt-get install adb
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;macOS:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;brew install android-platform-tools
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Downloading UADNG&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Visit the &lt;a href=&quot;https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation/releases&quot;&gt;UADNG GitHub Releases page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Assets&lt;/strong&gt; under the latest release&lt;/li&gt;
&lt;li&gt;Download the version for your operating system&lt;/li&gt;
&lt;li&gt;Extract the files to a convenient location&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Setting Up Your Android Device&lt;/h2&gt;
&lt;h3&gt;Enable Developer Options&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Open &lt;strong&gt;Settings&lt;/strong&gt; on your phone&lt;/li&gt;
&lt;li&gt;Scroll to &lt;strong&gt;About phone&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Tap &lt;strong&gt;Build number&lt;/strong&gt; 7-8 times until you see &quot;You are now a developer!&quot;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Enable USB Debugging&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Open &lt;strong&gt;Settings&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Search for &quot;Developer options&quot; or find it under System&lt;/li&gt;
&lt;li&gt;Enable &lt;strong&gt;USB debugging&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Connect your phone via USB&lt;/li&gt;
&lt;li&gt;Accept the debugging authorization prompt on your phone&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Verify ADB Connection&lt;/h3&gt;
&lt;p&gt;Open your terminal/command prompt and run:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;adb devices
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You should see your device listed. If it shows &quot;unauthorized,&quot; check your phone for the authorization prompt and select &quot;Always allow from this computer.&quot;&lt;/p&gt;
&lt;h2&gt;Using Universal Android Debloater&lt;/h2&gt;
&lt;h3&gt;Launch the Tool&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to where you extracted UADNG&lt;/li&gt;
&lt;li&gt;Run the executable for your OS:
&lt;ul&gt;
&lt;li&gt;Windows: &lt;code&gt;uad-ng.exe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Mac: &lt;code&gt;uad-ng&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Linux: &lt;code&gt;./uad-ng&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Debloating Process&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Select Recommended Tab:&lt;/strong&gt; This is the safest option and prevents breaking your device&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Review the App List:&lt;/strong&gt; Scroll through and uncheck any apps you want to keep:
&lt;ul&gt;
&lt;li&gt;Google Photos&lt;/li&gt;
&lt;li&gt;Android Messages&lt;/li&gt;
&lt;li&gt;Google Maps&lt;/li&gt;
&lt;li&gt;Chrome browser&lt;/li&gt;
&lt;li&gt;YouTube&lt;/li&gt;
&lt;li&gt;Google Wallet (if you use contactless payments)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Export Selection (Optional):&lt;/strong&gt; Click &quot;Export current selection&quot; to save your choices&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Uninstall Selected:&lt;/strong&gt; Click the button to remove the selected apps&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Example Result:&lt;/strong&gt; Removing 37 bloatware apps from a Google Pixel 6A increased battery life from 24-48 hours to 3-4 days.&lt;/p&gt;
&lt;h2&gt;Important Notes&lt;/h2&gt;
&lt;h3&gt;For Google Pixel Users&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;You MUST install a custom launcher&lt;/strong&gt; before debloating. The process can break Google&apos;s default launcher. Recommended options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Niagara Launcher (minimal, simple interface)&lt;/li&gt;
&lt;li&gt;Nova Launcher&lt;/li&gt;
&lt;li&gt;Lawnchair&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Critical Warnings&lt;/h3&gt;
&lt;p&gt;⚠️ &lt;strong&gt;NEVER use the &quot;All&quot; selection:&lt;/strong&gt; This will uninstall critical system components and brick your device&lt;/p&gt;
&lt;p&gt;⚠️ &lt;strong&gt;Avoid &quot;Unsafe&quot; or &quot;Advanced&quot; tabs:&lt;/strong&gt; These contain essential system apps like your network stack&lt;/p&gt;
&lt;p&gt;⚠️ &lt;strong&gt;Stick to &quot;Recommended&quot; settings:&lt;/strong&gt; This preset has been tested and is safe for all devices&lt;/p&gt;
&lt;h3&gt;Restoring Accidentally Removed Apps&lt;/h3&gt;
&lt;p&gt;If you accidentally remove an app:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open the &lt;strong&gt;Google Play Store&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Search for the app (e.g., YouTube, Wallet)&lt;/li&gt;
&lt;li&gt;Tap &lt;strong&gt;Install&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;The app will be restored immediately&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Post-Debloat Options&lt;/h2&gt;
&lt;h3&gt;Disable USB Debugging (Optional)&lt;/h3&gt;
&lt;p&gt;If you won&apos;t be using ADB regularly:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Settings &amp;gt; Developer options&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Toggle off &lt;strong&gt;USB debugging&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Keep USB Debugging Enabled If&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;You use screen mirroring tools (scrcpy, Vysor)&lt;/li&gt;
&lt;li&gt;You frequently manage apps via ADB&lt;/li&gt;
&lt;li&gt;You want easy access for future debloating sessions&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Battery Life Results&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Before Debloating:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Typical usage: 24-48 hours per charge&lt;/li&gt;
&lt;li&gt;Heavy background processes&lt;/li&gt;
&lt;li&gt;Constant app updates and syncing&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;After Debloating:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Typical usage: 3-4 days per charge&lt;/li&gt;
&lt;li&gt;Minimal background processes&lt;/li&gt;
&lt;li&gt;Only essential apps running&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Battery life approximately doubled&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Tips for Best Results&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Create a Backup:&lt;/strong&gt; Export your app selection before uninstalling&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Start Conservative:&lt;/strong&gt; Use only the Recommended tab on your first attempt&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Test Functionality:&lt;/strong&gt; After debloating, ensure all features you need still work&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reinstall as Needed:&lt;/strong&gt; Don&apos;t worry about mistakes—apps are easily restored&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Update UADNG:&lt;/strong&gt; Check for new releases periodically for updated app lists&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Troubleshooting&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Device not detected:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ensure USB debugging is enabled&lt;/li&gt;
&lt;li&gt;Try a different USB cable or port&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;adb devices&lt;/code&gt; to verify connection&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Launcher broken (Pixel devices):&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Install a custom launcher before debloating&lt;/li&gt;
&lt;li&gt;Or reinstall Google Launcher from Play Store&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;App you need was removed:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Simply reinstall from the Play Store&lt;/li&gt;
&lt;li&gt;All removed apps can be restored&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Universal Android Debloater is an essential tool for anyone wanting to reclaim their Android device&apos;s battery life and privacy. By removing unnecessary bloatware, you can achieve 3-4 days of battery life without rooting your device or making permanent changes. The process is safe, reversible, and takes less than 15 minutes.&lt;/p&gt;
&lt;p&gt;For more information and downloads, visit the &lt;a href=&quot;https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation&quot;&gt;Universal Android Debloater Next Generation GitHub page&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/EgcfSgPs23A&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Is Sony Abusing FreeBSD with Playstation?</title><link>https://christitus.com/sony-playstation-and-freebsd/</link><guid isPermaLink="true">https://christitus.com/sony-playstation-and-freebsd/</guid><description>&lt;p&gt;The intersection of open-source software and proprietary systems often sparks debate, and Sony&apos;s Playstation is at the heart of a current controversy. This article delves into the complexities of Sony&apos;s use of FreeBSD&apos;s MIT License for its Playstation operating system, examining whether this constitutes an abuse of open-source principles.&lt;/p&gt;

&lt;h2&gt;Sony&apos;s Use of FreeBSD&lt;/h2&gt;
&lt;p&gt;Sony Playstation, a leader in the console gaming market, is powered by an operating system based on FreeBSD. FreeBSD is known for its robustness and is favored in open-source circles for its permissive MIT License. This license allows for considerable freedom in how the software is used, modified, and distributed, including in proprietary products.&lt;/p&gt;
&lt;h2&gt;The Controversy Around MIT License Use&lt;/h2&gt;
&lt;p&gt;The core of the controversy lies in how Sony utilizes FreeBSD&apos;s MIT License. By incorporating FreeBSD into the Playstation&apos;s proprietary system, Sony benefits from decades of open-source development without the obligation to share improvements or modifications made to the FreeBSD code.&lt;/p&gt;
&lt;h3&gt;Key Points of Debate&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Proprietary vs. Open-Source&lt;/strong&gt;: Sony&apos;s approach raises questions about the balance between benefiting from open-source software and contributing back to the community.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Legal vs. Ethical Considerations&lt;/strong&gt;: While Sony&apos;s use of FreeBSD under the MIT License is legal, it prompts a discussion on the ethical implications of such use in proprietary systems.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;The Impact on the FreeBSD Community&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Lack of Contributions&lt;/strong&gt;: Critics argue that companies like Sony should contribute back to the FreeBSD project, enhancing the ecosystem from which they benefit. However, it&apos;s important to note that Sony has made some contributions to the FreeBSD community. Notably, Sony has financially supported FreeBSD developers to develop and expand the LLVM portion of the project, which is a significant contribution given LLVM&apos;s importance in the open-source compiler ecosystem. This support for LLVM development underlines a more complex relationship between Sony and the FreeBSD community than might be apparent at first glance. While these contributions are valuable, the debate continues regarding the sufficiency of these efforts and whether they fully compensate for the benefits Sony gains from using FreeBSD in a proprietary context.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Community Sentiment&lt;/strong&gt;: There&apos;s a mixed sentiment within the open-source community, with some seeing Sony&apos;s use of FreeBSD as a testament to the software&apos;s quality and others viewing it as an exploitation of open-source goodwill.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Sony&apos;s Stance&lt;/h2&gt;
&lt;p&gt;Sony has not publicly addressed these concerns in detail, maintaining that their use of FreeBSD complies with the legal requirements of the MIT License. They highlight their contributions to other open-source projects, including significant support for LLVM development, though specifics on contributions to FreeBSD&apos;s core functionalities remain less clear.&lt;/p&gt;
&lt;h2&gt;Contributions Comparison: Netflix vs. Sony&lt;/h2&gt;
&lt;p&gt;While discussing contributions to FreeBSD, it&apos;s insightful to compare Sony&apos;s contributions with those of another major corporation, Netflix. Netflix, which uses FreeBSD to power its content delivery network, has been notably active in contributing back to the FreeBSD community.&lt;/p&gt;
&lt;h3&gt;Netflix&apos;s Contributions to FreeBSD&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Network Performance Enhancements&lt;/strong&gt;: Netflix has contributed significant improvements to the FreeBSD network stack, enhancing performance and scalability. These contributions benefit not only Netflix&apos;s operations but also any FreeBSD user relying on high-performance networking.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Open Connect Appliance Software&lt;/strong&gt;: Netflix has open-sourced the software stack for its Open Connect Appliances, which are based on FreeBSD. This move has provided the community with insights into building high-performance, large-scale content delivery systems.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Financial Support and Hardware Donations&lt;/strong&gt;: Similar to Sony, Netflix has provided financial support to the FreeBSD Foundation. Additionally, Netflix has donated hardware to FreeBSD developers, aiding in testing and development efforts.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Comparison with Sony&apos;s Contributions&lt;/h3&gt;
&lt;p&gt;While Sony has contributed to the FreeBSD community, primarily through financial support for LLVM development, Netflix&apos;s contributions are more directly related to enhancing FreeBSD&apos;s core functionalities, especially in areas critical to its use case like network performance. Netflix&apos;s approach of open-sourcing its appliance software and contributing improvements directly to the FreeBSD network stack showcases a model of engagement that not only leverages open-source software for commercial benefit but also actively enriches the ecosystem.&lt;/p&gt;
&lt;h2&gt;The Role of Licenses in Open Source&lt;/h2&gt;
&lt;p&gt;This situation underscores the importance of understanding open-source licenses. The MIT License&apos;s permissiveness is designed to encourage the broad use of software, but it also means that large corporations can use open-source projects in proprietary products without contributing back.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;The debate over Sony&apos;s use of FreeBSD&apos;s MIT License in the Playstation ecosystem highlights a broader discussion about the relationship between open-source projects and proprietary companies. While legally permissible, the ethical implications of such use without reciprocal contributions spark ongoing debate. The open-source community continues to advocate for a more collaborative approach, hoping for a future where companies like Sony actively contribute to the open-source projects they benefit from.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/DwHKbQFf_uQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Sun, 07 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The intersection of open-source software and proprietary systems often sparks debate, and Sony&apos;s Playstation is at the heart of a current controversy. This article delves into the complexities of Sony&apos;s use of FreeBSD&apos;s MIT License for its Playstation operating system, examining whether this constitutes an abuse of open-source principles.&lt;/p&gt;

&lt;h2&gt;Sony&apos;s Use of FreeBSD&lt;/h2&gt;
&lt;p&gt;Sony Playstation, a leader in the console gaming market, is powered by an operating system based on FreeBSD. FreeBSD is known for its robustness and is favored in open-source circles for its permissive MIT License. This license allows for considerable freedom in how the software is used, modified, and distributed, including in proprietary products.&lt;/p&gt;
&lt;h2&gt;The Controversy Around MIT License Use&lt;/h2&gt;
&lt;p&gt;The core of the controversy lies in how Sony utilizes FreeBSD&apos;s MIT License. By incorporating FreeBSD into the Playstation&apos;s proprietary system, Sony benefits from decades of open-source development without the obligation to share improvements or modifications made to the FreeBSD code.&lt;/p&gt;
&lt;h3&gt;Key Points of Debate&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Proprietary vs. Open-Source&lt;/strong&gt;: Sony&apos;s approach raises questions about the balance between benefiting from open-source software and contributing back to the community.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Legal vs. Ethical Considerations&lt;/strong&gt;: While Sony&apos;s use of FreeBSD under the MIT License is legal, it prompts a discussion on the ethical implications of such use in proprietary systems.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;The Impact on the FreeBSD Community&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Lack of Contributions&lt;/strong&gt;: Critics argue that companies like Sony should contribute back to the FreeBSD project, enhancing the ecosystem from which they benefit. However, it&apos;s important to note that Sony has made some contributions to the FreeBSD community. Notably, Sony has financially supported FreeBSD developers to develop and expand the LLVM portion of the project, which is a significant contribution given LLVM&apos;s importance in the open-source compiler ecosystem. This support for LLVM development underlines a more complex relationship between Sony and the FreeBSD community than might be apparent at first glance. While these contributions are valuable, the debate continues regarding the sufficiency of these efforts and whether they fully compensate for the benefits Sony gains from using FreeBSD in a proprietary context.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Community Sentiment&lt;/strong&gt;: There&apos;s a mixed sentiment within the open-source community, with some seeing Sony&apos;s use of FreeBSD as a testament to the software&apos;s quality and others viewing it as an exploitation of open-source goodwill.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Sony&apos;s Stance&lt;/h2&gt;
&lt;p&gt;Sony has not publicly addressed these concerns in detail, maintaining that their use of FreeBSD complies with the legal requirements of the MIT License. They highlight their contributions to other open-source projects, including significant support for LLVM development, though specifics on contributions to FreeBSD&apos;s core functionalities remain less clear.&lt;/p&gt;
&lt;h2&gt;Contributions Comparison: Netflix vs. Sony&lt;/h2&gt;
&lt;p&gt;While discussing contributions to FreeBSD, it&apos;s insightful to compare Sony&apos;s contributions with those of another major corporation, Netflix. Netflix, which uses FreeBSD to power its content delivery network, has been notably active in contributing back to the FreeBSD community.&lt;/p&gt;
&lt;h3&gt;Netflix&apos;s Contributions to FreeBSD&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Network Performance Enhancements&lt;/strong&gt;: Netflix has contributed significant improvements to the FreeBSD network stack, enhancing performance and scalability. These contributions benefit not only Netflix&apos;s operations but also any FreeBSD user relying on high-performance networking.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Open Connect Appliance Software&lt;/strong&gt;: Netflix has open-sourced the software stack for its Open Connect Appliances, which are based on FreeBSD. This move has provided the community with insights into building high-performance, large-scale content delivery systems.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Financial Support and Hardware Donations&lt;/strong&gt;: Similar to Sony, Netflix has provided financial support to the FreeBSD Foundation. Additionally, Netflix has donated hardware to FreeBSD developers, aiding in testing and development efforts.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Comparison with Sony&apos;s Contributions&lt;/h3&gt;
&lt;p&gt;While Sony has contributed to the FreeBSD community, primarily through financial support for LLVM development, Netflix&apos;s contributions are more directly related to enhancing FreeBSD&apos;s core functionalities, especially in areas critical to its use case like network performance. Netflix&apos;s approach of open-sourcing its appliance software and contributing improvements directly to the FreeBSD network stack showcases a model of engagement that not only leverages open-source software for commercial benefit but also actively enriches the ecosystem.&lt;/p&gt;
&lt;h2&gt;The Role of Licenses in Open Source&lt;/h2&gt;
&lt;p&gt;This situation underscores the importance of understanding open-source licenses. The MIT License&apos;s permissiveness is designed to encourage the broad use of software, but it also means that large corporations can use open-source projects in proprietary products without contributing back.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;The debate over Sony&apos;s use of FreeBSD&apos;s MIT License in the Playstation ecosystem highlights a broader discussion about the relationship between open-source projects and proprietary companies. While legally permissible, the ethical implications of such use without reciprocal contributions spark ongoing debate. The open-source community continues to advocate for a more collaborative approach, hoping for a future where companies like Sony actively contribute to the open-source projects they benefit from.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/DwHKbQFf_uQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>XZ Backdoor Affected These Users</title><link>https://christitus.com/xz-affected-these-users/</link><guid isPermaLink="true">https://christitus.com/xz-affected-these-users/</guid><description>&lt;p&gt;Who actually was affected by the XZ Backdoor? Lets go over the vulnurable linux distributions that were affected.&lt;/p&gt;

&lt;h2&gt;Affected Linux Distributions&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;UNAFFECTED&lt;/strong&gt;: Ubuntu. The distribution uses the older 5.4 version of xz, so no update is necessary.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AFFECTED&lt;/strong&gt;: Red Hat. Fedora 41 and Fedora Rawhide contain vulnerable packages. However, Red Hat Enterprise Linux (RHEL) versions are not affected. Users are advised to cease using the affected versions immediately until an updated xz version is released.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AFFECTED&lt;/strong&gt;: SUSE. Users of openSUSE (Tumbleweed or MicroOS) with xz version 5.6.0 and 5.6.1. Update is out to patch the malicious code.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AFFECTED&lt;/strong&gt;: Debian Linux. Testing, unstable, and experimental versions included compromised packages, though stable versions remain unaffected. Users are recommended to update xz-utils.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AFFECTED&lt;/strong&gt;: Kali Linux. Systems updated from March 26 to March 29 need to be updated again for the fix. Systems last updated before March 26 are not affected.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;UNAFFECTED&lt;/strong&gt;: Arch Linux. Arch never linked SSHD with liblzma. Even with the malicious code in liblzma the backdoor was never exploited. Source: &lt;a href=&quot;https://security.archlinux.org/ASA-202403-1&quot;&gt;https://security.archlinux.org/ASA-202403-1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Social Engineering Summary&lt;/h2&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://robmensching.com/blog/posts/2024/03/30/a-microcosm-of-the-interactions-in-open-source-projects/&quot;&gt;https://robmensching.com/blog/posts/2024/03/30/a-microcosm-of-the-interactions-in-open-source-projects/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The narrative outlines a common scenario in open-source projects where a maintainer&apos;s burnout leads to vulnerability exploitation, as seen in the xz/liblzma case. Initially, the maintainer&apos;s struggle to keep up with the project invites an attacker to offer help, gaining trust. Despite the community&apos;s demands for more attention and updates, the maintainer&apos;s mental health and the unpaid nature of the work make it challenging to meet these expectations. The situation escalates with unhelpful comments from the community, further pressuring the maintainer. The story highlights the need for a change in how open-source projects are managed and supported, emphasizing the importance of understanding and addressing the challenges maintainers face.&lt;/p&gt;
&lt;h2&gt;XZ Backdoor Summary&lt;/h2&gt;
&lt;p&gt;The XZ exploit, a critical vulnerability identified within the XZ compression utility, has sparked considerable debate and scrutiny within the cybersecurity realm. This exploit compromises the integrity of the liblzma library, enabling attackers to execute arbitrary code on a victim&apos;s system through a buffer overflow vulnerability. Notably, this vulnerability also facilitated unauthorized access via SSH by manipulating the liblzma library used in SSH processes. The exposure of this exploit prompted an extensive evaluation of security protocols for applications relying on the XZ compression algorithm. In response, developers of the XZ utility have issued patches, and there have been widespread advisories urging users to upgrade their software to the most current version. This event has highlighted the critical need for ongoing security audits and timely updates to thwart similar threats.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/s_WkMtEPsuE&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Sat, 06 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Who actually was affected by the XZ Backdoor? Lets go over the vulnurable linux distributions that were affected.&lt;/p&gt;

&lt;h2&gt;Affected Linux Distributions&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;UNAFFECTED&lt;/strong&gt;: Ubuntu. The distribution uses the older 5.4 version of xz, so no update is necessary.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AFFECTED&lt;/strong&gt;: Red Hat. Fedora 41 and Fedora Rawhide contain vulnerable packages. However, Red Hat Enterprise Linux (RHEL) versions are not affected. Users are advised to cease using the affected versions immediately until an updated xz version is released.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AFFECTED&lt;/strong&gt;: SUSE. Users of openSUSE (Tumbleweed or MicroOS) with xz version 5.6.0 and 5.6.1. Update is out to patch the malicious code.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AFFECTED&lt;/strong&gt;: Debian Linux. Testing, unstable, and experimental versions included compromised packages, though stable versions remain unaffected. Users are recommended to update xz-utils.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AFFECTED&lt;/strong&gt;: Kali Linux. Systems updated from March 26 to March 29 need to be updated again for the fix. Systems last updated before March 26 are not affected.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;UNAFFECTED&lt;/strong&gt;: Arch Linux. Arch never linked SSHD with liblzma. Even with the malicious code in liblzma the backdoor was never exploited. Source: &lt;a href=&quot;https://security.archlinux.org/ASA-202403-1&quot;&gt;https://security.archlinux.org/ASA-202403-1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Social Engineering Summary&lt;/h2&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://robmensching.com/blog/posts/2024/03/30/a-microcosm-of-the-interactions-in-open-source-projects/&quot;&gt;https://robmensching.com/blog/posts/2024/03/30/a-microcosm-of-the-interactions-in-open-source-projects/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The narrative outlines a common scenario in open-source projects where a maintainer&apos;s burnout leads to vulnerability exploitation, as seen in the xz/liblzma case. Initially, the maintainer&apos;s struggle to keep up with the project invites an attacker to offer help, gaining trust. Despite the community&apos;s demands for more attention and updates, the maintainer&apos;s mental health and the unpaid nature of the work make it challenging to meet these expectations. The situation escalates with unhelpful comments from the community, further pressuring the maintainer. The story highlights the need for a change in how open-source projects are managed and supported, emphasizing the importance of understanding and addressing the challenges maintainers face.&lt;/p&gt;
&lt;h2&gt;XZ Backdoor Summary&lt;/h2&gt;
&lt;p&gt;The XZ exploit, a critical vulnerability identified within the XZ compression utility, has sparked considerable debate and scrutiny within the cybersecurity realm. This exploit compromises the integrity of the liblzma library, enabling attackers to execute arbitrary code on a victim&apos;s system through a buffer overflow vulnerability. Notably, this vulnerability also facilitated unauthorized access via SSH by manipulating the liblzma library used in SSH processes. The exposure of this exploit prompted an extensive evaluation of security protocols for applications relying on the XZ compression algorithm. In response, developers of the XZ utility have issued patches, and there have been widespread advisories urging users to upgrade their software to the most current version. This event has highlighted the critical need for ongoing security audits and timely updates to thwart similar threats.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/s_WkMtEPsuE&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Cursor Editor</title><link>https://christitus.com/cursor-editor/</link><guid isPermaLink="true">https://christitus.com/cursor-editor/</guid><description>&lt;p&gt;Cursor AI Editor is revolutionizing the way developers write code, offering an AI-powered environment that accelerates the software development process. With features like Ctrl+K, Copilot++, and AI chat, Cursor provides an unparalleled coding experience that&apos;s both efficient and intuitive.&lt;/p&gt;
&lt;h2&gt;Key Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ctrl+K&lt;/strong&gt;: This feature allows you to edit and write code seamlessly with AI assistance. Whether you&apos;re tweaking existing code or generating new code from scratch, Ctrl+K simplifies the process.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copilot++&lt;/strong&gt;: Enhance your coding with Copilot++, a native autocomplete feature that suggests mid-line completions and entire diffs, making your coding session smoother.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI Chat&lt;/strong&gt;: Engage in a conversation with an AI that understands your codebase. This feature is perfect for debugging or when you need insights about your project.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ctrl+L&lt;/strong&gt;: This feature allows you to edit and write code seamlessly with AI assistance. Whether you&apos;re tweaking existing code or generating new code from scratch, Ctrl+ L simplifies the process.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Tips and Tricks&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Utilize @ Symbols&lt;/strong&gt;: Quickly reference files or code symbols within your project by using the &quot;@&quot; symbol. This can significantly speed up your coding process by allowing you to generate code with specific dependencies or ask about certain files.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fix Lints with Ease&lt;/strong&gt;: Cursor&apos;s AI can help you fix lint errors instantly. Just hover over any lint error and click the &quot;Fix&quot; button for an AI-generated solution.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Terminal Ctrl+K&lt;/strong&gt;: Write terminal commands in plain English. This feature is incredibly useful for writing SQL commands, filling in arg parse arguments, or parsing JSONs with jq.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vision&lt;/strong&gt;: Use images to prompt the AI. This is especially helpful for web UI development, allowing for rapid iteration based on visual inputs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Getting Started&lt;/h2&gt;
&lt;p&gt;To experience the full potential of Cursor AI Editor, start by exploring the Ctrl+K feature. It&apos;s the gateway to understanding how AI can assist in your coding tasks. Remember, the more you interact with the AI, the better it becomes at predicting and assisting with your coding needs.&lt;/p&gt;
&lt;p&gt;Cursor AI Editor is not just a tool; it&apos;s a new way of approaching software development. By integrating AI into the coding process, Cursor ensures that developers are equipped with the best resources to build software faster and more efficiently.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/tjFnifSEEjQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 05 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Cursor AI Editor is revolutionizing the way developers write code, offering an AI-powered environment that accelerates the software development process. With features like Ctrl+K, Copilot++, and AI chat, Cursor provides an unparalleled coding experience that&apos;s both efficient and intuitive.&lt;/p&gt;
&lt;h2&gt;Key Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ctrl+K&lt;/strong&gt;: This feature allows you to edit and write code seamlessly with AI assistance. Whether you&apos;re tweaking existing code or generating new code from scratch, Ctrl+K simplifies the process.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copilot++&lt;/strong&gt;: Enhance your coding with Copilot++, a native autocomplete feature that suggests mid-line completions and entire diffs, making your coding session smoother.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI Chat&lt;/strong&gt;: Engage in a conversation with an AI that understands your codebase. This feature is perfect for debugging or when you need insights about your project.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ctrl+L&lt;/strong&gt;: This feature allows you to edit and write code seamlessly with AI assistance. Whether you&apos;re tweaking existing code or generating new code from scratch, Ctrl+ L simplifies the process.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Tips and Tricks&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Utilize @ Symbols&lt;/strong&gt;: Quickly reference files or code symbols within your project by using the &quot;@&quot; symbol. This can significantly speed up your coding process by allowing you to generate code with specific dependencies or ask about certain files.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fix Lints with Ease&lt;/strong&gt;: Cursor&apos;s AI can help you fix lint errors instantly. Just hover over any lint error and click the &quot;Fix&quot; button for an AI-generated solution.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Terminal Ctrl+K&lt;/strong&gt;: Write terminal commands in plain English. This feature is incredibly useful for writing SQL commands, filling in arg parse arguments, or parsing JSONs with jq.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vision&lt;/strong&gt;: Use images to prompt the AI. This is especially helpful for web UI development, allowing for rapid iteration based on visual inputs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Getting Started&lt;/h2&gt;
&lt;p&gt;To experience the full potential of Cursor AI Editor, start by exploring the Ctrl+K feature. It&apos;s the gateway to understanding how AI can assist in your coding tasks. Remember, the more you interact with the AI, the better it becomes at predicting and assisting with your coding needs.&lt;/p&gt;
&lt;p&gt;Cursor AI Editor is not just a tool; it&apos;s a new way of approaching software development. By integrating AI into the coding process, Cursor ensures that developers are equipped with the best resources to build software faster and more efficiently.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/tjFnifSEEjQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>3CX Version 20 Update</title><link>https://christitus.com/3cx-version-20-update/</link><guid isPermaLink="true">https://christitus.com/3cx-version-20-update/</guid><description>&lt;p&gt;3CX just released version 20 of its PBX telephone system. 3CX has been my favorite phone system that I&apos;ve setup at multiple businesses. Let&apos;s explore version 20!&lt;/p&gt;

&lt;h2&gt;New Admin Console&lt;/h2&gt;
&lt;p&gt;All-in-One Admin/Client URL. Version 20 also uses a condensed URL to make it easier to remember. The entire system moves on-prem Debian 10 to 12 and is a huge change.&lt;/p&gt;
&lt;h2&gt;Changes in Administration&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;SIP Trunk location moved&lt;/li&gt;
&lt;li&gt;Department Hours added no longer global&lt;/li&gt;
&lt;li&gt;DID routing is now done at the destination (Extension, Ring Group, Digital Receptionist, etc.)&lt;/li&gt;
&lt;li&gt;Queues, Ring Groups, and Digital Receptionists can all be assigned independent holidays and hours of operation.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;New Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Windows Softphone (Microsoft Store)&lt;/li&gt;
&lt;li&gt;Google Transcription Update (New API)&lt;/li&gt;
&lt;li&gt;Split DNS (Enhanced security and faster on-prem phones) - Hairpin NAT Support Required&lt;/li&gt;
&lt;li&gt;Improved Reporting (Call logs are improved)&lt;/li&gt;
&lt;li&gt;2FA Added&lt;/li&gt;
&lt;li&gt;Ability to monitor quality of calls&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Call Processing Scripts&lt;/h3&gt;
&lt;p&gt;You can now create custom scripts that route calls based on time, caller id, and a lot more variables. I&apos;ll leave a link below if you want to explore this, but programming specific phone numbers, or numbers with a certain country code and area codes to groups of agents can be huge for businesses.&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://www.3cx.com/docs/manual/call-processing-script/&quot;&gt;https://www.3cx.com/docs/manual/call-processing-script/&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;New APIs&lt;/h3&gt;
&lt;p&gt;The update also brings new API access for both the system configuration and client configuration. Each has a new set of calls they will take and you can extract user information to your app or even website.&lt;/p&gt;
&lt;h2&gt;Before You Move&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Check Phone Compatibility &lt;a href=&quot;https://www.3cx.com/sip-phones/&quot;&gt;https://www.3cx.com/sip-phones/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Allocate Downtime (Debian 10 -&amp;gt; 11 -&amp;gt; 12) will take time.&lt;/li&gt;
&lt;li&gt;Check off the official checklist &lt;a href=&quot;https://www.3cx.com/blog/releases/v20-upgrade-checklist-faq/&quot;&gt;https://www.3cx.com/blog/releases/v20-upgrade-checklist-faq/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;3CX Setup Videos&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/M7dXvFDhoaI&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/P6CS5_CHy8s&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/JS0voPjdZMM&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Thu, 28 Mar 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;3CX just released version 20 of its PBX telephone system. 3CX has been my favorite phone system that I&apos;ve setup at multiple businesses. Let&apos;s explore version 20!&lt;/p&gt;

&lt;h2&gt;New Admin Console&lt;/h2&gt;
&lt;p&gt;All-in-One Admin/Client URL. Version 20 also uses a condensed URL to make it easier to remember. The entire system moves on-prem Debian 10 to 12 and is a huge change.&lt;/p&gt;
&lt;h2&gt;Changes in Administration&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;SIP Trunk location moved&lt;/li&gt;
&lt;li&gt;Department Hours added no longer global&lt;/li&gt;
&lt;li&gt;DID routing is now done at the destination (Extension, Ring Group, Digital Receptionist, etc.)&lt;/li&gt;
&lt;li&gt;Queues, Ring Groups, and Digital Receptionists can all be assigned independent holidays and hours of operation.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;New Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Windows Softphone (Microsoft Store)&lt;/li&gt;
&lt;li&gt;Google Transcription Update (New API)&lt;/li&gt;
&lt;li&gt;Split DNS (Enhanced security and faster on-prem phones) - Hairpin NAT Support Required&lt;/li&gt;
&lt;li&gt;Improved Reporting (Call logs are improved)&lt;/li&gt;
&lt;li&gt;2FA Added&lt;/li&gt;
&lt;li&gt;Ability to monitor quality of calls&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Call Processing Scripts&lt;/h3&gt;
&lt;p&gt;You can now create custom scripts that route calls based on time, caller id, and a lot more variables. I&apos;ll leave a link below if you want to explore this, but programming specific phone numbers, or numbers with a certain country code and area codes to groups of agents can be huge for businesses.&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://www.3cx.com/docs/manual/call-processing-script/&quot;&gt;https://www.3cx.com/docs/manual/call-processing-script/&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;New APIs&lt;/h3&gt;
&lt;p&gt;The update also brings new API access for both the system configuration and client configuration. Each has a new set of calls they will take and you can extract user information to your app or even website.&lt;/p&gt;
&lt;h2&gt;Before You Move&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Check Phone Compatibility &lt;a href=&quot;https://www.3cx.com/sip-phones/&quot;&gt;https://www.3cx.com/sip-phones/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Allocate Downtime (Debian 10 -&amp;gt; 11 -&amp;gt; 12) will take time.&lt;/li&gt;
&lt;li&gt;Check off the official checklist &lt;a href=&quot;https://www.3cx.com/blog/releases/v20-upgrade-checklist-faq/&quot;&gt;https://www.3cx.com/blog/releases/v20-upgrade-checklist-faq/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;3CX Setup Videos&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/M7dXvFDhoaI&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/P6CS5_CHy8s&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/JS0voPjdZMM&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>The Ultimate System</title><link>https://christitus.com/the-ultimate-system/</link><guid isPermaLink="true">https://christitus.com/the-ultimate-system/</guid><description>&lt;p&gt;The Ulimate System will look different for everyone, but here is an outline of what you need to consider when making yours as I overview mine.&lt;/p&gt;

&lt;p&gt;The purpose of my ultimate system is to have the most enjoyment out of my PC experience while sacrificing nothing to do everything I want to do at 100% efficiency.&lt;/p&gt;
&lt;h2&gt;Hardware&lt;/h2&gt;
&lt;p&gt;Not all hardware is created equal. While I could buy more powerful parts this was one of the most powerful systems I could build with my requirements. Here is all my requirements for Hardware and a link to my final system build.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Low Audio Footprint (No higher than 30dB)&lt;/li&gt;
&lt;li&gt;2 GPU capable (Gaming and AV Work capable in multiple operating systems at the same time)&lt;/li&gt;
&lt;li&gt;Large amount of FULL cores. (No efficiency cores that have lower VM performance.)&lt;/li&gt;
&lt;li&gt;Large amount of Memory for Virtual Machines&lt;/li&gt;
&lt;li&gt;Expandable with Large amount of PCIe Ports (6+ Ports with at least 2 16x slots)&lt;/li&gt;
&lt;li&gt;High-end motherboard (Helps avoid IOMMU Group errors)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These requirements are to avoid past issues I&apos;ve had with systems. It is not about getting the highest number, but about avoiding problems you&apos;ve encountered in the past.&lt;/p&gt;
&lt;h3&gt;My Specifications&lt;/h3&gt;
&lt;p&gt;Build Link: &lt;a href=&quot;https://superworkstations.com/configurations/titus-hp-z8-g5-fury/&quot;&gt;https://superworkstations.com/configurations/titus-hp-z8-g5-fury/&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Intel Xeon w5-3435X | 16 cores, 3.1 GHz base frequency&lt;/li&gt;
&lt;li&gt;64GB (4x 16GB) of 4800MT/s DDR5 ECC Memory&lt;/li&gt;
&lt;li&gt;2x 2TB NVMe M.2 PCIe 4.0 Solid-State Drive&lt;/li&gt;
&lt;li&gt;AMD Sapphire Nitro+ 7800XT (Main GPU)&lt;/li&gt;
&lt;li&gt;NVIDIA GeForce RTX 2060 (2nd GPU)&lt;/li&gt;
&lt;li&gt;Single HP Z8 G5 Fury 1125W Power Supply&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Base Operating System&lt;/h2&gt;
&lt;p&gt;I always go back and forth between Debian and Arch Linux for my base. They are both wonderful options with Arch giving access to the newest hardware since it runs on a newer kernel with newer packages and Debian being more stable with older packages. In the end, I have more fun on Arch and will be my choice for my main system.&lt;/p&gt;
&lt;p&gt;There are many guides on how to install Arch Linux, but here are some of my videos going over the various ways I&apos;ve done it in the past.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;-- ArchTitus in 2 Minutes --&lt;/th&gt;
&lt;th&gt;-- Archfi Install --&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/hKpxMWm5l7w&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td&gt;&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/GUtpHFI-vjg&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;The Desktop&lt;/h2&gt;
&lt;p&gt;Most people need a user friendly desktop environment like plasma that you select during the install process. While that is nice for newer users, a tiling window manager is what feels the best to me these days. After years of switching between them all, there is only one that I find the best. DWM from suckless is the one I can do anything with and have zero limitations. I want a new feature, just patch it! Otherwise, everything just works as it always has.&lt;/p&gt;
&lt;p&gt;Official Site for DWM &lt;a href=&quot;https://dwm.suckless.org/&quot;&gt;https://dwm.suckless.org/&lt;/a&gt;
My DWM Configuration &lt;a href=&quot;https://github.com/ChrisTitusTech/dwm-titus&quot;&gt;https://github.com/ChrisTitusTech/dwm-titus&lt;/a&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;-- DWM Walkthrough --&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/JXVle0nyA-o&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;Removing Friction&lt;/h3&gt;
&lt;p&gt;When using the desktop think about tasks you do everyday and if they can be automated. This will save you time as you use the computer and lead to a happier computing experience.&lt;/p&gt;
&lt;p&gt;Examples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Launching my Windows 11 virtual machine happens everyday! Solution? Start Virtual Machine on boot! &lt;code&gt;sudo virsh enable win11&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Running a HUGO server to see my test website when creating pages. Solution? Create a user Systemd service that runs when the user logs in:&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;~/.config/systemd/user/hugo.service&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=hugo website server

[Service]
Type=simple
StandardOutput=journal
WorkingDirectory=/home/titus/github/website
ExecStart=hugo server -FD

[Install]
WantedBy=default.target
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then issue user command &lt;strong&gt;NO SUDO&lt;/strong&gt; &lt;code&gt;systemctl --user enable hugo.service&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Running Programs by launching start menu. Solution? Hotkey the programs to launch them faster! In my instance, I&apos;d edit config.h in my dwm folder.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Windows in Linux with PCI Passthrough&lt;/h2&gt;
&lt;p&gt;Linux is great, but sometimes it just isn&apos;t the right tool for what I need. That is why I have a full VM with a dedicated GPU, nvme, and usb card ready to go for anything I need.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Note&lt;/em&gt;:
PCI passthrough is not for the faint of heart. Some motherboards do not separate IOMMU groups properly which means you can&apos;t isolate the PCI slots to pass them through and you CAN NOT do this on those systems. Laptops and cheap motherboards have the biggest issues.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;QuickPassthrough&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2024/the-ultimate-system/quickpass.webp&quot; alt=&quot;Quickpass&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Github: &lt;a href=&quot;https://github.com/HikariKnight/quickpassthrough&quot;&gt;https://github.com/HikariKnight/quickpassthrough&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Made by HikariKnight it is an amazing project that makes passthrough much simpler. It will auto blocklist the PCI id&apos;s and make the needed system modifications while holding your hand through the process. If you watch my run of it, there was a bug with &lt;code&gt;mkinitcpio&lt;/code&gt; that made a MODULES=() entry. He has fixed that and said that the latest version is even better. While there is no way to make this perfect and work on every system it has removed a LOT of the legwork.&lt;/p&gt;
&lt;h2&gt;My Setup Videos&lt;/h2&gt;
&lt;p&gt;Here are all the livestreams where I go through the ENTIRE setup.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;-- Arch Install --&lt;/th&gt;
&lt;th&gt;-- QEMU/Windows Install --&lt;/th&gt;
&lt;th&gt;-- Looking Glass --&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/Y7LTdEwR9M8&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td&gt;&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/K2gliga5Vwc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td&gt;&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/01R8Ft1BdxE&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/zq6yvQifyDw&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 20 Mar 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The Ulimate System will look different for everyone, but here is an outline of what you need to consider when making yours as I overview mine.&lt;/p&gt;

&lt;p&gt;The purpose of my ultimate system is to have the most enjoyment out of my PC experience while sacrificing nothing to do everything I want to do at 100% efficiency.&lt;/p&gt;
&lt;h2&gt;Hardware&lt;/h2&gt;
&lt;p&gt;Not all hardware is created equal. While I could buy more powerful parts this was one of the most powerful systems I could build with my requirements. Here is all my requirements for Hardware and a link to my final system build.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Low Audio Footprint (No higher than 30dB)&lt;/li&gt;
&lt;li&gt;2 GPU capable (Gaming and AV Work capable in multiple operating systems at the same time)&lt;/li&gt;
&lt;li&gt;Large amount of FULL cores. (No efficiency cores that have lower VM performance.)&lt;/li&gt;
&lt;li&gt;Large amount of Memory for Virtual Machines&lt;/li&gt;
&lt;li&gt;Expandable with Large amount of PCIe Ports (6+ Ports with at least 2 16x slots)&lt;/li&gt;
&lt;li&gt;High-end motherboard (Helps avoid IOMMU Group errors)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These requirements are to avoid past issues I&apos;ve had with systems. It is not about getting the highest number, but about avoiding problems you&apos;ve encountered in the past.&lt;/p&gt;
&lt;h3&gt;My Specifications&lt;/h3&gt;
&lt;p&gt;Build Link: &lt;a href=&quot;https://superworkstations.com/configurations/titus-hp-z8-g5-fury/&quot;&gt;https://superworkstations.com/configurations/titus-hp-z8-g5-fury/&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Intel Xeon w5-3435X | 16 cores, 3.1 GHz base frequency&lt;/li&gt;
&lt;li&gt;64GB (4x 16GB) of 4800MT/s DDR5 ECC Memory&lt;/li&gt;
&lt;li&gt;2x 2TB NVMe M.2 PCIe 4.0 Solid-State Drive&lt;/li&gt;
&lt;li&gt;AMD Sapphire Nitro+ 7800XT (Main GPU)&lt;/li&gt;
&lt;li&gt;NVIDIA GeForce RTX 2060 (2nd GPU)&lt;/li&gt;
&lt;li&gt;Single HP Z8 G5 Fury 1125W Power Supply&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Base Operating System&lt;/h2&gt;
&lt;p&gt;I always go back and forth between Debian and Arch Linux for my base. They are both wonderful options with Arch giving access to the newest hardware since it runs on a newer kernel with newer packages and Debian being more stable with older packages. In the end, I have more fun on Arch and will be my choice for my main system.&lt;/p&gt;
&lt;p&gt;There are many guides on how to install Arch Linux, but here are some of my videos going over the various ways I&apos;ve done it in the past.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;-- ArchTitus in 2 Minutes --&lt;/th&gt;
&lt;th&gt;-- Archfi Install --&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/hKpxMWm5l7w&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td&gt;&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/GUtpHFI-vjg&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;The Desktop&lt;/h2&gt;
&lt;p&gt;Most people need a user friendly desktop environment like plasma that you select during the install process. While that is nice for newer users, a tiling window manager is what feels the best to me these days. After years of switching between them all, there is only one that I find the best. DWM from suckless is the one I can do anything with and have zero limitations. I want a new feature, just patch it! Otherwise, everything just works as it always has.&lt;/p&gt;
&lt;p&gt;Official Site for DWM &lt;a href=&quot;https://dwm.suckless.org/&quot;&gt;https://dwm.suckless.org/&lt;/a&gt;
My DWM Configuration &lt;a href=&quot;https://github.com/ChrisTitusTech/dwm-titus&quot;&gt;https://github.com/ChrisTitusTech/dwm-titus&lt;/a&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;-- DWM Walkthrough --&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/JXVle0nyA-o&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;Removing Friction&lt;/h3&gt;
&lt;p&gt;When using the desktop think about tasks you do everyday and if they can be automated. This will save you time as you use the computer and lead to a happier computing experience.&lt;/p&gt;
&lt;p&gt;Examples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Launching my Windows 11 virtual machine happens everyday! Solution? Start Virtual Machine on boot! &lt;code&gt;sudo virsh enable win11&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Running a HUGO server to see my test website when creating pages. Solution? Create a user Systemd service that runs when the user logs in:&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;~/.config/systemd/user/hugo.service&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=hugo website server

[Service]
Type=simple
StandardOutput=journal
WorkingDirectory=/home/titus/github/website
ExecStart=hugo server -FD

[Install]
WantedBy=default.target
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then issue user command &lt;strong&gt;NO SUDO&lt;/strong&gt; &lt;code&gt;systemctl --user enable hugo.service&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Running Programs by launching start menu. Solution? Hotkey the programs to launch them faster! In my instance, I&apos;d edit config.h in my dwm folder.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Windows in Linux with PCI Passthrough&lt;/h2&gt;
&lt;p&gt;Linux is great, but sometimes it just isn&apos;t the right tool for what I need. That is why I have a full VM with a dedicated GPU, nvme, and usb card ready to go for anything I need.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Note&lt;/em&gt;:
PCI passthrough is not for the faint of heart. Some motherboards do not separate IOMMU groups properly which means you can&apos;t isolate the PCI slots to pass them through and you CAN NOT do this on those systems. Laptops and cheap motherboards have the biggest issues.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;QuickPassthrough&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2024/the-ultimate-system/quickpass.webp&quot; alt=&quot;Quickpass&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Github: &lt;a href=&quot;https://github.com/HikariKnight/quickpassthrough&quot;&gt;https://github.com/HikariKnight/quickpassthrough&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Made by HikariKnight it is an amazing project that makes passthrough much simpler. It will auto blocklist the PCI id&apos;s and make the needed system modifications while holding your hand through the process. If you watch my run of it, there was a bug with &lt;code&gt;mkinitcpio&lt;/code&gt; that made a MODULES=() entry. He has fixed that and said that the latest version is even better. While there is no way to make this perfect and work on every system it has removed a LOT of the legwork.&lt;/p&gt;
&lt;h2&gt;My Setup Videos&lt;/h2&gt;
&lt;p&gt;Here are all the livestreams where I go through the ENTIRE setup.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;-- Arch Install --&lt;/th&gt;
&lt;th&gt;-- QEMU/Windows Install --&lt;/th&gt;
&lt;th&gt;-- Looking Glass --&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/Y7LTdEwR9M8&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td&gt;&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/K2gliga5Vwc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td&gt;&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/01R8Ft1BdxE&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/zq6yvQifyDw&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Remove Youtube Shorts</title><link>https://christitus.com/remove-youtube-shorts/</link><guid isPermaLink="true">https://christitus.com/remove-youtube-shorts/</guid><description>&lt;p&gt;Remove YouTube shorts from your video browsing experience with the following blocklists!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2024/remove-youtube-shorts/youtube.webp&quot; alt=&quot;Youtube&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Blocklist&lt;/h2&gt;
&lt;p&gt;Install ublock origin and use the following filter under &quot;My Filters&quot; in settings.&lt;/p&gt;
&lt;p&gt;Sources:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/gijsdev/ublock-hide-yt-shorts&quot;&gt;https://github.com/gijsdev/ublock-hide-yt-shorts&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;! Title: Hide YouTube Shorts
! Description: Hide all traces of YouTube shorts videos on YouTube
! Version: 1.8.0
! Last modified: 2023-01-08 20:02
! Expires: 2 weeks (update frequency)
! Homepage: https://github.com/gijsdev/ublock-hide-yt-shorts
! License: https://github.com/gijsdev/ublock-hide-yt-shorts/blob/master/LICENSE.md

! Hide all videos containing the phrase &quot;#shorts&quot;
youtube.com##ytd-grid-video-renderer:has(#video-title:has-text(#shorts))
youtube.com##ytd-grid-video-renderer:has(#video-title:has-text(#Shorts))
youtube.com##ytd-grid-video-renderer:has(#video-title:has-text(#short))
youtube.com##ytd-grid-video-renderer:has(#video-title:has-text(#Short))

! Hide all videos with the shorts indicator on the thumbnail
youtube.com##ytd-grid-video-renderer:has([overlay-style=&quot;SHORTS&quot;])
youtube.com##ytd-rich-item-renderer:has([overlay-style=&quot;SHORTS&quot;])
youtube.com##ytd-video-renderer:has([overlay-style=&quot;SHORTS&quot;])
youtube.com##ytd-item-section-renderer.ytd-section-list-renderer[page-subtype=&quot;subscriptions&quot;]:has(ytd-video-renderer:has([overlay-style=&quot;SHORTS&quot;]))

! Hide shorts button in sidebar
youtube.com##ytd-guide-entry-renderer:has-text(Shorts)
youtube.com##ytd-mini-guide-entry-renderer:has-text(Shorts)

! Hide shorts section on homepage
youtube.com##ytd-rich-section-renderer:has(#rich-shelf-header:has-text(Shorts))
youtube.com##ytd-reel-shelf-renderer:has(.ytd-reel-shelf-renderer:has-text(Shorts))

! Hide shorts tab on channel pages
! Old style
youtube.com##tp-yt-paper-tab:has(.tp-yt-paper-tab:has-text(Shorts))
! New style (2023-10)
youtube.com##yt-tab-shape:has-text(/^Shorts$/)

! Hide shorts in video descriptions
youtube.com##ytd-reel-shelf-renderer.ytd-structured-description-content-renderer:has-text(&quot;Shorts remixing this video&quot;)

! Remove empty spaces in grid
youtube.com##ytd-rich-grid-row,#contents.ytd-rich-grid-row:style(display: contents !important)


!!! MOBILE !!!

! Hide all videos in home feed containing the phrase &quot;#shorts&quot;
m.youtube.com##ytm-rich-item-renderer:has(#video-title:has-text(#shorts))
m.youtube.com##ytm-rich-item-renderer:has(#video-title:has-text(#Shorts))
m.youtube.com##ytm-rich-item-renderer:has(#video-title:has-text(#short))
m.youtube.com##ytm-rich-item-renderer:has(#video-title:has-text(#Short))

! Hide all videos in subscription feed containing the phrase &quot;#shorts&quot;
m.youtube.com##ytm-item-section-renderer:has(#video-title:has-text(#shorts))
m.youtube.com##ytm-item-section-renderer:has(#video-title:has-text(#Shorts))
m.youtube.com##ytm-item-section-renderer:has(#video-title:has-text(#short))
m.youtube.com##ytm-item-section-renderer:has(#video-title:has-text(#Short))

! Hide shorts button in the bottom navigation bar
m.youtube.com##ytm-pivot-bar-item-renderer:has(.pivot-shorts)

! Hide all videos with the shorts indicator on the thumbnail
m.youtube.com##ytm-video-with-context-renderer:has([data-style=&quot;SHORTS&quot;])

! Hide shorts sections
m.youtube.com##ytm-rich-section-renderer:has(ytm-reel-shelf-renderer:has(.reel-shelf-title-wrapper:has-text(Shorts)))
m.youtube.com##ytm-reel-shelf-renderer.item:has(.reel-shelf-title-wrapper:has-text(Shorts))

! Hide shorts tab on channel pages
m.youtube.com##.single-column-browse-results-tabs&amp;gt;a:has-text(Shorts)
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/Nfr0uIU2lDI&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 08 Jan 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Remove YouTube shorts from your video browsing experience with the following blocklists!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2024/remove-youtube-shorts/youtube.webp&quot; alt=&quot;Youtube&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Blocklist&lt;/h2&gt;
&lt;p&gt;Install ublock origin and use the following filter under &quot;My Filters&quot; in settings.&lt;/p&gt;
&lt;p&gt;Sources:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/gijsdev/ublock-hide-yt-shorts&quot;&gt;https://github.com/gijsdev/ublock-hide-yt-shorts&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;! Title: Hide YouTube Shorts
! Description: Hide all traces of YouTube shorts videos on YouTube
! Version: 1.8.0
! Last modified: 2023-01-08 20:02
! Expires: 2 weeks (update frequency)
! Homepage: https://github.com/gijsdev/ublock-hide-yt-shorts
! License: https://github.com/gijsdev/ublock-hide-yt-shorts/blob/master/LICENSE.md

! Hide all videos containing the phrase &quot;#shorts&quot;
youtube.com##ytd-grid-video-renderer:has(#video-title:has-text(#shorts))
youtube.com##ytd-grid-video-renderer:has(#video-title:has-text(#Shorts))
youtube.com##ytd-grid-video-renderer:has(#video-title:has-text(#short))
youtube.com##ytd-grid-video-renderer:has(#video-title:has-text(#Short))

! Hide all videos with the shorts indicator on the thumbnail
youtube.com##ytd-grid-video-renderer:has([overlay-style=&quot;SHORTS&quot;])
youtube.com##ytd-rich-item-renderer:has([overlay-style=&quot;SHORTS&quot;])
youtube.com##ytd-video-renderer:has([overlay-style=&quot;SHORTS&quot;])
youtube.com##ytd-item-section-renderer.ytd-section-list-renderer[page-subtype=&quot;subscriptions&quot;]:has(ytd-video-renderer:has([overlay-style=&quot;SHORTS&quot;]))

! Hide shorts button in sidebar
youtube.com##ytd-guide-entry-renderer:has-text(Shorts)
youtube.com##ytd-mini-guide-entry-renderer:has-text(Shorts)

! Hide shorts section on homepage
youtube.com##ytd-rich-section-renderer:has(#rich-shelf-header:has-text(Shorts))
youtube.com##ytd-reel-shelf-renderer:has(.ytd-reel-shelf-renderer:has-text(Shorts))

! Hide shorts tab on channel pages
! Old style
youtube.com##tp-yt-paper-tab:has(.tp-yt-paper-tab:has-text(Shorts))
! New style (2023-10)
youtube.com##yt-tab-shape:has-text(/^Shorts$/)

! Hide shorts in video descriptions
youtube.com##ytd-reel-shelf-renderer.ytd-structured-description-content-renderer:has-text(&quot;Shorts remixing this video&quot;)

! Remove empty spaces in grid
youtube.com##ytd-rich-grid-row,#contents.ytd-rich-grid-row:style(display: contents !important)


!!! MOBILE !!!

! Hide all videos in home feed containing the phrase &quot;#shorts&quot;
m.youtube.com##ytm-rich-item-renderer:has(#video-title:has-text(#shorts))
m.youtube.com##ytm-rich-item-renderer:has(#video-title:has-text(#Shorts))
m.youtube.com##ytm-rich-item-renderer:has(#video-title:has-text(#short))
m.youtube.com##ytm-rich-item-renderer:has(#video-title:has-text(#Short))

! Hide all videos in subscription feed containing the phrase &quot;#shorts&quot;
m.youtube.com##ytm-item-section-renderer:has(#video-title:has-text(#shorts))
m.youtube.com##ytm-item-section-renderer:has(#video-title:has-text(#Shorts))
m.youtube.com##ytm-item-section-renderer:has(#video-title:has-text(#short))
m.youtube.com##ytm-item-section-renderer:has(#video-title:has-text(#Short))

! Hide shorts button in the bottom navigation bar
m.youtube.com##ytm-pivot-bar-item-renderer:has(.pivot-shorts)

! Hide all videos with the shorts indicator on the thumbnail
m.youtube.com##ytm-video-with-context-renderer:has([data-style=&quot;SHORTS&quot;])

! Hide shorts sections
m.youtube.com##ytm-rich-section-renderer:has(ytm-reel-shelf-renderer:has(.reel-shelf-title-wrapper:has-text(Shorts)))
m.youtube.com##ytm-reel-shelf-renderer.item:has(.reel-shelf-title-wrapper:has-text(Shorts))

! Hide shorts tab on channel pages
m.youtube.com##.single-column-browse-results-tabs&amp;gt;a:has-text(Shorts)
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/Nfr0uIU2lDI&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>My New Editor</title><link>https://christitus.com/my-new-editor/</link><guid isPermaLink="true">https://christitus.com/my-new-editor/</guid><description>&lt;p&gt;After years of switching IDE&apos;s and editors, then trying dozens of vim configurations... I HAVE FOUND THE PERFECT EDITOR! My Neovim configuration I have tweaked to perfection.&lt;/p&gt;

&lt;p&gt;I&apos;m not a god programmer the likes of the primeagen, but a mere mortal that has taken the time to finally come to a spot that makes my configuration the perfect one for me and possibly you.&lt;/p&gt;
&lt;h2&gt;Neovim Problems&lt;/h2&gt;
&lt;p&gt;I&apos;ve done several iterations of setting up neovim from scratch, to using neovim distros like lazyvim, nvchad, and lunarvim. These &quot;distros&quot; just customize too much for my liking.&lt;/p&gt;
&lt;p&gt;Starting from scratch is rough, because of all the options and customization that needs to be done. This is why people end up using vscode because it just works. However, there is a better way!&lt;/p&gt;
&lt;h2&gt;Kickstart&lt;/h2&gt;
&lt;p&gt;One of the devs of Neovim made an amazing kickstart project &lt;a href=&quot;https://github.com/nvim-lua/kickstart.nvim&quot;&gt;https://github.com/nvim-lua/kickstart.nvim&lt;/a&gt; that I have taken and make my own modifications to.&lt;/p&gt;
&lt;p&gt;The entire project is meant as a jumping off point. Giving you a functional LSP and the essentials that everyone wants in Neovim, but not a bunch of customizations that you may not want. I recommend referring back to this project often and checking for updates.&lt;/p&gt;
&lt;h2&gt;My Neovim&lt;/h2&gt;
&lt;p&gt;Using the kickstart base, here are the customizations I&apos;ve made for my neovim. &lt;a href=&quot;https://github.com/ChrisTitusTech/neovim&quot;&gt;https://github.com/ChrisTitusTech/neovim&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;copilot.vim added&lt;/li&gt;
&lt;li&gt;synthwave84 theme&lt;/li&gt;
&lt;li&gt;spellcheck on startup&lt;/li&gt;
&lt;li&gt;telescope ignores images by default&lt;/li&gt;
&lt;li&gt;custom clipboard image addon for markdown files&lt;/li&gt;
&lt;li&gt;windows fixes&lt;/li&gt;
&lt;li&gt;undotree addition (F5 Hotkey)&lt;/li&gt;
&lt;li&gt;wakatime for tracking time spent programming&lt;/li&gt;
&lt;li&gt;autosave.vim&lt;/li&gt;
&lt;li&gt;suda.vim to elevate to sudo and save file&lt;/li&gt;
&lt;li&gt;Alpha Dashboard on startup for recent items and projects (Leader + a to switch to dashboard at anytime)&lt;/li&gt;
&lt;li&gt;zoxide for project search&lt;/li&gt;
&lt;li&gt;New Tab Hotkeys (leader + 1-5 for selecting tab, leader+t for new tab, and leader+c to closetab)&lt;/li&gt;
&lt;li&gt;jj to quick esc&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/WgXO2cvmdQc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Thu, 09 Nov 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;After years of switching IDE&apos;s and editors, then trying dozens of vim configurations... I HAVE FOUND THE PERFECT EDITOR! My Neovim configuration I have tweaked to perfection.&lt;/p&gt;

&lt;p&gt;I&apos;m not a god programmer the likes of the primeagen, but a mere mortal that has taken the time to finally come to a spot that makes my configuration the perfect one for me and possibly you.&lt;/p&gt;
&lt;h2&gt;Neovim Problems&lt;/h2&gt;
&lt;p&gt;I&apos;ve done several iterations of setting up neovim from scratch, to using neovim distros like lazyvim, nvchad, and lunarvim. These &quot;distros&quot; just customize too much for my liking.&lt;/p&gt;
&lt;p&gt;Starting from scratch is rough, because of all the options and customization that needs to be done. This is why people end up using vscode because it just works. However, there is a better way!&lt;/p&gt;
&lt;h2&gt;Kickstart&lt;/h2&gt;
&lt;p&gt;One of the devs of Neovim made an amazing kickstart project &lt;a href=&quot;https://github.com/nvim-lua/kickstart.nvim&quot;&gt;https://github.com/nvim-lua/kickstart.nvim&lt;/a&gt; that I have taken and make my own modifications to.&lt;/p&gt;
&lt;p&gt;The entire project is meant as a jumping off point. Giving you a functional LSP and the essentials that everyone wants in Neovim, but not a bunch of customizations that you may not want. I recommend referring back to this project often and checking for updates.&lt;/p&gt;
&lt;h2&gt;My Neovim&lt;/h2&gt;
&lt;p&gt;Using the kickstart base, here are the customizations I&apos;ve made for my neovim. &lt;a href=&quot;https://github.com/ChrisTitusTech/neovim&quot;&gt;https://github.com/ChrisTitusTech/neovim&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;copilot.vim added&lt;/li&gt;
&lt;li&gt;synthwave84 theme&lt;/li&gt;
&lt;li&gt;spellcheck on startup&lt;/li&gt;
&lt;li&gt;telescope ignores images by default&lt;/li&gt;
&lt;li&gt;custom clipboard image addon for markdown files&lt;/li&gt;
&lt;li&gt;windows fixes&lt;/li&gt;
&lt;li&gt;undotree addition (F5 Hotkey)&lt;/li&gt;
&lt;li&gt;wakatime for tracking time spent programming&lt;/li&gt;
&lt;li&gt;autosave.vim&lt;/li&gt;
&lt;li&gt;suda.vim to elevate to sudo and save file&lt;/li&gt;
&lt;li&gt;Alpha Dashboard on startup for recent items and projects (Leader + a to switch to dashboard at anytime)&lt;/li&gt;
&lt;li&gt;zoxide for project search&lt;/li&gt;
&lt;li&gt;New Tab Hotkeys (leader + 1-5 for selecting tab, leader+t for new tab, and leader+c to closetab)&lt;/li&gt;
&lt;li&gt;jj to quick esc&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/WgXO2cvmdQc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Installing Arch in 2 Minutes</title><link>https://christitus.com/installing-arch-in-2-minutes/</link><guid isPermaLink="true">https://christitus.com/installing-arch-in-2-minutes/</guid><description>&lt;p&gt;You can install Arch Linux in 120 seconds with my script.&lt;/p&gt;

&lt;h2&gt;One Line Command&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;2026 Update: ArchTitus has moved to Linutil project launch linutil -&amp;gt; System Settings -&amp;gt; Arch -&amp;gt; Server Setup&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -fsSL christitus.com/linux | sh
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;The Evolution of ArchTitus&lt;/h2&gt;
&lt;p&gt;The script is based on ArchTitus from several years ago that I had archived on GitHub. The project at the time was meant as an all-in-one script to install various desktop environments and configurations. As the official Arch script has become good, I didn&apos;t see a point in my script anymore... but recently my mind changed on this. Instead of making a project that everyone uses, I made it do the things I needed and the official script didn&apos;t do.&lt;/p&gt;
&lt;p&gt;I now have began modifying the project to specify my configurations.&lt;/p&gt;
&lt;h2&gt;The First Change - SPEED&lt;/h2&gt;
&lt;p&gt;I install Linux a lot and most times for testing. I generally don&apos;t care which distro I use, but find that Arch can be used the quickest with a minimal iso and a script for base install. The &lt;code&gt;server&lt;/code&gt; option in the script installs only the base system with my configuration. No GUI elements or desktop environments and tons of crap. Just a nice simple server CLI that I can play on.&lt;/p&gt;
&lt;h2&gt;Future Changes&lt;/h2&gt;
&lt;p&gt;There are 3 additional changes that I&apos;m working on.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DWM-Titus - MY DWM configuration&lt;/li&gt;
&lt;li&gt;Hyprland-Titus - My Hyprland Configuration&lt;/li&gt;
&lt;li&gt;KDE - My beginner friend config meant for new Linux users.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/hKpxMWm5l7w&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Sat, 07 Oct 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;You can install Arch Linux in 120 seconds with my script.&lt;/p&gt;

&lt;h2&gt;One Line Command&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;2026 Update: ArchTitus has moved to Linutil project launch linutil -&amp;gt; System Settings -&amp;gt; Arch -&amp;gt; Server Setup&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -fsSL christitus.com/linux | sh
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;The Evolution of ArchTitus&lt;/h2&gt;
&lt;p&gt;The script is based on ArchTitus from several years ago that I had archived on GitHub. The project at the time was meant as an all-in-one script to install various desktop environments and configurations. As the official Arch script has become good, I didn&apos;t see a point in my script anymore... but recently my mind changed on this. Instead of making a project that everyone uses, I made it do the things I needed and the official script didn&apos;t do.&lt;/p&gt;
&lt;p&gt;I now have began modifying the project to specify my configurations.&lt;/p&gt;
&lt;h2&gt;The First Change - SPEED&lt;/h2&gt;
&lt;p&gt;I install Linux a lot and most times for testing. I generally don&apos;t care which distro I use, but find that Arch can be used the quickest with a minimal iso and a script for base install. The &lt;code&gt;server&lt;/code&gt; option in the script installs only the base system with my configuration. No GUI elements or desktop environments and tons of crap. Just a nice simple server CLI that I can play on.&lt;/p&gt;
&lt;h2&gt;Future Changes&lt;/h2&gt;
&lt;p&gt;There are 3 additional changes that I&apos;m working on.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DWM-Titus - MY DWM configuration&lt;/li&gt;
&lt;li&gt;Hyprland-Titus - My Hyprland Configuration&lt;/li&gt;
&lt;li&gt;KDE - My beginner friend config meant for new Linux users.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/hKpxMWm5l7w&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Creating a Secure System</title><link>https://christitus.com/creating-a-secure-system/</link><guid isPermaLink="true">https://christitus.com/creating-a-secure-system/</guid><description>&lt;p&gt;Security is a journey not a destination. Let&apos;s go over all the ways you aren&apos;t secure and how you can minimize your footprint.&lt;/p&gt;

&lt;p&gt;If you think you can just install a VPN and you are secure... you are probably an easy target.&lt;/p&gt;
&lt;h2&gt;Hardware&lt;/h2&gt;
&lt;p&gt;Most hardware these days has a firmware that is loaded before the operating system is even loaded. This is the most dangerous security hole as when exploited it can give the attacked hardware level access to change files, remotely power on, and complete out of band access.&lt;/p&gt;
&lt;p&gt;Intel has done the worst job at securing down their system as it has been exploited numerous times as documented here: &lt;a href=&quot;https://en.wikipedia.org/wiki/Intel_Management_Engine#Security_vulnerabilities&quot;&gt;https://en.wikipedia.org/wiki/Intel_Management_Engine#Security_vulnerabilities&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can help mitigate these attacks by keeping Intel ME up to date, but the only way to close the hole would be removal which involves flashing the hardware firmware and can not be done on many systems. I highly recommend the open source tool &lt;a href=&quot;https://meshcentral.com/&quot;&gt;https://meshcentral.com/&lt;/a&gt; that is free and can update a lot these systems for you without much hassle. It also offers ways to setup this out of band access on the system with vPro capabilities.&lt;/p&gt;
&lt;p&gt;In the server sphere you have Dell iDRAC and HP iLO for out of band access that you need to secure as well.&lt;/p&gt;
&lt;p&gt;AMD doesn&apos;t have as many vulnurbilities, but does have security concerns with AMD Platform Security Processor (PSP) that was added in 2013.&lt;/p&gt;
&lt;h2&gt;Operating Systems&lt;/h2&gt;
&lt;p&gt;Windows is the most problamatic with extensive telemetry and the most remote execution CVEs out of any operating system. However, I&apos;d caution against using a stock Linux install as well, since many distributions like Arch Linux do not even come with a firewall. I find that &lt;a href=&quot;https://www.qubes-os.org/&quot;&gt;QubesOS&lt;/a&gt; is the best choice as it has a locked down OS and extensive compartmentalisation via Virtual Machines and seperated networks. However, there is a difficult learning curve.&lt;/p&gt;
&lt;h2&gt;Browsers&lt;/h2&gt;
&lt;p&gt;There isn&apos;t a web browser I&apos;d recommend. I&apos;m currently using Brave, but it could be better. All web browsers have their faults and most of them are running off the Google Chrome codebase.&lt;/p&gt;
&lt;p&gt;Probably the best would be a private firefox you make yourself with this script: &lt;a href=&quot;https://github.com/simeononsecurity/FireFox-Privacy-Script&quot;&gt;https://github.com/simeononsecurity/FireFox-Privacy-Script&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Password Managers&lt;/h2&gt;
&lt;p&gt;Self hosted in a secure location would be the best, but convience often gets that better of us. Most recommend is &lt;a href=&quot;https://bitwarden.com/&quot;&gt;Bitwarden&lt;/a&gt;, but I&apos;d caution against many online password managers as if someone gets your login, everything will be compromosied. The best solution would be a Yubikey or another FIDO device to physically authenticate any new logins or devices.&lt;/p&gt;
&lt;h2&gt;Network Gateway and Open Ports&lt;/h2&gt;
&lt;p&gt;Test your network and see what ports are open using &amp;lt;&lt;a href=&quot;http://grc.com&quot;&gt;grc.com&lt;/a&gt;&amp;gt;. You should not be port forwarding or using uPnP in your router if you are trying to be secure. The basic shield up! test should give you a good idea of open ports and areas where you can improve your network. While having an open port isn&apos;t the end of the world, it is an increased attack surface that can be exploited.&lt;/p&gt;
&lt;h2&gt;Don&apos;t be Stupid&lt;/h2&gt;
&lt;p&gt;Downloading hacked programs, clicking on phishing links, and installing 50 extensions in your browser are not good practices. There are some tools that help train yourself, but they are not bulletproof. Security is about layering and using common sense. You can never be 100% secure and private.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/ffnIL6hE__w&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Sun, 24 Sep 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Security is a journey not a destination. Let&apos;s go over all the ways you aren&apos;t secure and how you can minimize your footprint.&lt;/p&gt;

&lt;p&gt;If you think you can just install a VPN and you are secure... you are probably an easy target.&lt;/p&gt;
&lt;h2&gt;Hardware&lt;/h2&gt;
&lt;p&gt;Most hardware these days has a firmware that is loaded before the operating system is even loaded. This is the most dangerous security hole as when exploited it can give the attacked hardware level access to change files, remotely power on, and complete out of band access.&lt;/p&gt;
&lt;p&gt;Intel has done the worst job at securing down their system as it has been exploited numerous times as documented here: &lt;a href=&quot;https://en.wikipedia.org/wiki/Intel_Management_Engine#Security_vulnerabilities&quot;&gt;https://en.wikipedia.org/wiki/Intel_Management_Engine#Security_vulnerabilities&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can help mitigate these attacks by keeping Intel ME up to date, but the only way to close the hole would be removal which involves flashing the hardware firmware and can not be done on many systems. I highly recommend the open source tool &lt;a href=&quot;https://meshcentral.com/&quot;&gt;https://meshcentral.com/&lt;/a&gt; that is free and can update a lot these systems for you without much hassle. It also offers ways to setup this out of band access on the system with vPro capabilities.&lt;/p&gt;
&lt;p&gt;In the server sphere you have Dell iDRAC and HP iLO for out of band access that you need to secure as well.&lt;/p&gt;
&lt;p&gt;AMD doesn&apos;t have as many vulnurbilities, but does have security concerns with AMD Platform Security Processor (PSP) that was added in 2013.&lt;/p&gt;
&lt;h2&gt;Operating Systems&lt;/h2&gt;
&lt;p&gt;Windows is the most problamatic with extensive telemetry and the most remote execution CVEs out of any operating system. However, I&apos;d caution against using a stock Linux install as well, since many distributions like Arch Linux do not even come with a firewall. I find that &lt;a href=&quot;https://www.qubes-os.org/&quot;&gt;QubesOS&lt;/a&gt; is the best choice as it has a locked down OS and extensive compartmentalisation via Virtual Machines and seperated networks. However, there is a difficult learning curve.&lt;/p&gt;
&lt;h2&gt;Browsers&lt;/h2&gt;
&lt;p&gt;There isn&apos;t a web browser I&apos;d recommend. I&apos;m currently using Brave, but it could be better. All web browsers have their faults and most of them are running off the Google Chrome codebase.&lt;/p&gt;
&lt;p&gt;Probably the best would be a private firefox you make yourself with this script: &lt;a href=&quot;https://github.com/simeononsecurity/FireFox-Privacy-Script&quot;&gt;https://github.com/simeononsecurity/FireFox-Privacy-Script&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Password Managers&lt;/h2&gt;
&lt;p&gt;Self hosted in a secure location would be the best, but convience often gets that better of us. Most recommend is &lt;a href=&quot;https://bitwarden.com/&quot;&gt;Bitwarden&lt;/a&gt;, but I&apos;d caution against many online password managers as if someone gets your login, everything will be compromosied. The best solution would be a Yubikey or another FIDO device to physically authenticate any new logins or devices.&lt;/p&gt;
&lt;h2&gt;Network Gateway and Open Ports&lt;/h2&gt;
&lt;p&gt;Test your network and see what ports are open using &amp;lt;&lt;a href=&quot;http://grc.com&quot;&gt;grc.com&lt;/a&gt;&amp;gt;. You should not be port forwarding or using uPnP in your router if you are trying to be secure. The basic shield up! test should give you a good idea of open ports and areas where you can improve your network. While having an open port isn&apos;t the end of the world, it is an increased attack surface that can be exploited.&lt;/p&gt;
&lt;h2&gt;Don&apos;t be Stupid&lt;/h2&gt;
&lt;p&gt;Downloading hacked programs, clicking on phishing links, and installing 50 extensions in your browser are not good practices. There are some tools that help train yourself, but they are not bulletproof. Security is about layering and using common sense. You can never be 100% secure and private.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/ffnIL6hE__w&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Github Mistakes and What I Wish I Knew Sooner</title><link>https://christitus.com/do-not-make-these-github-mistakes/</link><guid isPermaLink="true">https://christitus.com/do-not-make-these-github-mistakes/</guid><description>&lt;p&gt;I&apos;ve made a LOT of GitHub mistakes! Here is a list of things most new users do not know or do WRONG!&lt;/p&gt;

&lt;h2&gt;Raw Files&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Raw Button&lt;/li&gt;
&lt;li&gt;Raw Files only update every few minutes&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Using Branches and Release Tags&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;list branches with &lt;code&gt;git branch -a&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;clone a specific branch with &lt;code&gt;git clone -b main https://github.com/christitustech/winutil&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;list tags and releases with &lt;code&gt;git fetch --all --tags&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;checkout tag with &lt;code&gt;git checkout tags/v1.0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;see a log of commits and tags &lt;code&gt;git log --oneline --graph&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Pull Requests&lt;/h2&gt;
&lt;p&gt;Pull requests are a great way of collaboration. However, most developers joke that they just close and don&apos;t merge most public pull requests. This is mainly because there can be a lot of low quality or hap-hazard commits. I&apos;ve seen this in many of projects and have made strict requirements before accepting any. The biggest rule I stole from Linus Torvalds, &quot;Never merge a pull request that you do NOT understand.&quot;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/do-not-make-these-github-mistakes/pullrequest.webp&quot; alt=&quot;pr&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Issues&lt;/h2&gt;
&lt;p&gt;It is easy to ignore issues, because most issues do not fill out the basic form below. However, I find about half the issues are great at testing your program and help develop it. Delete the issues that say, &quot;IT DON&apos;T WORK!&quot; with no elaboration. Issues help roadmap the development of the program and fix or document any bugs.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/do-not-make-these-github-mistakes/issues.webp&quot; alt=&quot;issues&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Rolling back commits and Referencing them&lt;/h2&gt;
&lt;p&gt;GitHub is truly amazing because of the ability to go back in time revert a single commit or create a branch based on the project at the time a commit was done!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/do-not-make-these-github-mistakes/revert.webp&quot; alt=&quot;revert&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Unit Tests&lt;/h2&gt;
&lt;p&gt;Unit testing is a vital part of every project as it checks for syntax errors and keeps you from accepting a bad pull request. This is done with automated builds and tests. Check project examples and the &lt;code&gt;pester&lt;/code&gt; folder. For the github documentation on unit tests refer to &lt;a href=&quot;https://docs.github.com/en/actions/automating-builds-and-tests&quot;&gt;https://docs.github.com/en/actions/automating-builds-and-tests&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/djPC_hBKl3I&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 20 Sep 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;ve made a LOT of GitHub mistakes! Here is a list of things most new users do not know or do WRONG!&lt;/p&gt;

&lt;h2&gt;Raw Files&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Raw Button&lt;/li&gt;
&lt;li&gt;Raw Files only update every few minutes&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Using Branches and Release Tags&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;list branches with &lt;code&gt;git branch -a&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;clone a specific branch with &lt;code&gt;git clone -b main https://github.com/christitustech/winutil&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;list tags and releases with &lt;code&gt;git fetch --all --tags&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;checkout tag with &lt;code&gt;git checkout tags/v1.0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;see a log of commits and tags &lt;code&gt;git log --oneline --graph&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Pull Requests&lt;/h2&gt;
&lt;p&gt;Pull requests are a great way of collaboration. However, most developers joke that they just close and don&apos;t merge most public pull requests. This is mainly because there can be a lot of low quality or hap-hazard commits. I&apos;ve seen this in many of projects and have made strict requirements before accepting any. The biggest rule I stole from Linus Torvalds, &quot;Never merge a pull request that you do NOT understand.&quot;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/do-not-make-these-github-mistakes/pullrequest.webp&quot; alt=&quot;pr&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Issues&lt;/h2&gt;
&lt;p&gt;It is easy to ignore issues, because most issues do not fill out the basic form below. However, I find about half the issues are great at testing your program and help develop it. Delete the issues that say, &quot;IT DON&apos;T WORK!&quot; with no elaboration. Issues help roadmap the development of the program and fix or document any bugs.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/do-not-make-these-github-mistakes/issues.webp&quot; alt=&quot;issues&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Rolling back commits and Referencing them&lt;/h2&gt;
&lt;p&gt;GitHub is truly amazing because of the ability to go back in time revert a single commit or create a branch based on the project at the time a commit was done!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/do-not-make-these-github-mistakes/revert.webp&quot; alt=&quot;revert&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Unit Tests&lt;/h2&gt;
&lt;p&gt;Unit testing is a vital part of every project as it checks for syntax errors and keeps you from accepting a bad pull request. This is done with automated builds and tests. Check project examples and the &lt;code&gt;pester&lt;/code&gt; folder. For the github documentation on unit tests refer to &lt;a href=&quot;https://docs.github.com/en/actions/automating-builds-and-tests&quot;&gt;https://docs.github.com/en/actions/automating-builds-and-tests&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/djPC_hBKl3I&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Saving a Business Thousands a Year in Telecom</title><link>https://christitus.com/saving-a-business-5000-a-year-in-telecom/</link><guid isPermaLink="true">https://christitus.com/saving-a-business-5000-a-year-in-telecom/</guid><description>&lt;p&gt;Over the past 3 years I&apos;ve setup a hosted solution for a business that has saved them over $5000 per year on their telephone bill.&lt;/p&gt;

&lt;p&gt;If you have ever dealt with porting numbers or switching telephone services it is a complete nightmare. However, you can do this all yourself and take control and save a TON of money in the process. Need to move from this solution? Install and register your numbers on something else in minutes, NOT days or even weeks in some instances.&lt;/p&gt;
&lt;p&gt;The best part is you will own your numbers directly and have NO contracts that some sneaky companies that lock you in to their services for years at a time.&lt;/p&gt;
&lt;h2&gt;The Solution&lt;/h2&gt;
&lt;p&gt;There are many solutions that can be self hosted where you register a telephony trunk, but the easiest I&apos;ve found is 3CX. It has a variety of plans from free to under 10 users to a good small business setup for around 20 users, but the best part is you pay for the SERVER... NOT the user accounts.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/saving-a-business-5000-a-year-in-telecom/pricing.webp&quot; alt=&quot;Pricing&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;I&apos;ve done videos on 3cx installation. Here are links to both self-hosted and using the hosted plans above. For a small business I&apos;d recommend the SMB Plan above.&lt;/p&gt;
&lt;p&gt;3CX Hosted Installation Video: &lt;a href=&quot;https://youtu.be/M7dXvFDhoaI&quot;&gt;https://youtu.be/M7dXvFDhoaI&lt;/a&gt;
3CX Self-Hosted Installation Video: &lt;a href=&quot;https://youtu.be/P6CS5_CHy8s&quot;&gt;https://youtu.be/P6CS5_CHy8s&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Features&lt;/h2&gt;
&lt;h3&gt;Call Forwarding&lt;/h3&gt;
&lt;p&gt;To setup Call forwarding I&apos;d recommend adding a mobile number in User Web Client -&amp;gt; Settings&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/saving-a-business-5000-a-year-in-telecom/call-forwarding.webp&quot; alt=&quot;Call Forwarding&quot; /&gt;&lt;/p&gt;
&lt;p&gt;After that is setup, Specify My Mobile in different modes (DND, Away, Etc.). You can also specify different forwards for internal and external calls.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/saving-a-business-5000-a-year-in-telecom/call-forwarding2.webp&quot; alt=&quot;Call Forwarding2&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Office/Holiday Hours&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/saving-a-business-5000-a-year-in-telecom/office-hours.webp&quot; alt=&quot;Office Hours&quot; /&gt;&lt;/p&gt;
&lt;p&gt;In the System configuration panel, You can specify Office Hours and Holiday Messages.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/saving-a-business-5000-a-year-in-telecom/holidays.webp&quot; alt=&quot;Holidays&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Mobile Application&lt;/h3&gt;
&lt;p&gt;The mobile app for android and iOS is amazing. Has a ton of functionality and can substitute as an extension.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/saving-a-business-5000-a-year-in-telecom/chat.webp&quot; alt=&quot;Chat&quot; /&gt;&lt;img src=&quot;/images/2023/saving-a-business-5000-a-year-in-telecom/recent.webp&quot; alt=&quot;Recent&quot; /&gt;
&lt;img src=&quot;/images/2023/saving-a-business-5000-a-year-in-telecom/voicemail.webp&quot; alt=&quot;Voicemail&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Live Chat&lt;/h3&gt;
&lt;p&gt;They also have live chat code that is really easy to add to any website. Only two lines of code and you can setup an entire call center. Here is the video I did on that.&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/IPhbI3LWkTg&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/klsqtRclpXo&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 15 Sep 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Over the past 3 years I&apos;ve setup a hosted solution for a business that has saved them over $5000 per year on their telephone bill.&lt;/p&gt;

&lt;p&gt;If you have ever dealt with porting numbers or switching telephone services it is a complete nightmare. However, you can do this all yourself and take control and save a TON of money in the process. Need to move from this solution? Install and register your numbers on something else in minutes, NOT days or even weeks in some instances.&lt;/p&gt;
&lt;p&gt;The best part is you will own your numbers directly and have NO contracts that some sneaky companies that lock you in to their services for years at a time.&lt;/p&gt;
&lt;h2&gt;The Solution&lt;/h2&gt;
&lt;p&gt;There are many solutions that can be self hosted where you register a telephony trunk, but the easiest I&apos;ve found is 3CX. It has a variety of plans from free to under 10 users to a good small business setup for around 20 users, but the best part is you pay for the SERVER... NOT the user accounts.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/saving-a-business-5000-a-year-in-telecom/pricing.webp&quot; alt=&quot;Pricing&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;I&apos;ve done videos on 3cx installation. Here are links to both self-hosted and using the hosted plans above. For a small business I&apos;d recommend the SMB Plan above.&lt;/p&gt;
&lt;p&gt;3CX Hosted Installation Video: &lt;a href=&quot;https://youtu.be/M7dXvFDhoaI&quot;&gt;https://youtu.be/M7dXvFDhoaI&lt;/a&gt;
3CX Self-Hosted Installation Video: &lt;a href=&quot;https://youtu.be/P6CS5_CHy8s&quot;&gt;https://youtu.be/P6CS5_CHy8s&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Features&lt;/h2&gt;
&lt;h3&gt;Call Forwarding&lt;/h3&gt;
&lt;p&gt;To setup Call forwarding I&apos;d recommend adding a mobile number in User Web Client -&amp;gt; Settings&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/saving-a-business-5000-a-year-in-telecom/call-forwarding.webp&quot; alt=&quot;Call Forwarding&quot; /&gt;&lt;/p&gt;
&lt;p&gt;After that is setup, Specify My Mobile in different modes (DND, Away, Etc.). You can also specify different forwards for internal and external calls.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/saving-a-business-5000-a-year-in-telecom/call-forwarding2.webp&quot; alt=&quot;Call Forwarding2&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Office/Holiday Hours&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/saving-a-business-5000-a-year-in-telecom/office-hours.webp&quot; alt=&quot;Office Hours&quot; /&gt;&lt;/p&gt;
&lt;p&gt;In the System configuration panel, You can specify Office Hours and Holiday Messages.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/saving-a-business-5000-a-year-in-telecom/holidays.webp&quot; alt=&quot;Holidays&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Mobile Application&lt;/h3&gt;
&lt;p&gt;The mobile app for android and iOS is amazing. Has a ton of functionality and can substitute as an extension.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/saving-a-business-5000-a-year-in-telecom/chat.webp&quot; alt=&quot;Chat&quot; /&gt;&lt;img src=&quot;/images/2023/saving-a-business-5000-a-year-in-telecom/recent.webp&quot; alt=&quot;Recent&quot; /&gt;
&lt;img src=&quot;/images/2023/saving-a-business-5000-a-year-in-telecom/voicemail.webp&quot; alt=&quot;Voicemail&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Live Chat&lt;/h3&gt;
&lt;p&gt;They also have live chat code that is really easy to add to any website. Only two lines of code and you can setup an entire call center. Here is the video I did on that.&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/IPhbI3LWkTg&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/klsqtRclpXo&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Install Windows the Arch Linux Way</title><link>https://christitus.com/install-windows-the-arch-linux-way/</link><guid isPermaLink="true">https://christitus.com/install-windows-the-arch-linux-way/</guid><description>&lt;p&gt;Installing Windows strictly through the Command Line is an important tool to have. If windows changes the installer or out of box experience, you can bypass any changes with this guide!&lt;/p&gt;

&lt;h2&gt;The Installer&lt;/h2&gt;
&lt;p&gt;Download and Launch the Windows Installer&lt;/p&gt;
&lt;p&gt;Launch Command Prompt with &lt;code&gt;Shift+F10&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Partition both a Boot Partition and Data Partition&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;List Disks with &lt;code&gt;list disk&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Select desired disk with &lt;code&gt;sel disk #&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Check to verify there is NO partitions &lt;code&gt;list partition&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;(Optional) Delete any existing partitions &lt;code&gt;del part #&lt;/code&gt; &lt;strong&gt;NOTE: THIS ERASES ALL DATA&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Check to verify DISK is GPT &lt;code&gt;list disk&lt;/code&gt; and use &lt;code&gt;convert gpt&lt;/code&gt; if GPT is not enabled &lt;code&gt;*&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Create Boot partition &lt;code&gt;create partition efi size=100&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Create Data partition &lt;code&gt;create partition primary size=*&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Select Boot &lt;code&gt;sel partition 1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Format Boot &lt;code&gt;format fs=FAT32 quick&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Assign Boot partition &lt;code&gt;assign letter=g:&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Select Data &lt;code&gt;sel par 2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Format Data &lt;code&gt;format fs=NTFS quick&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Assign Data partition &lt;code&gt;assign letter=c:&lt;/code&gt; &lt;strong&gt;Note: You may need to UNASSIGN an existing C: drive&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Verify the Windows Version to Install&lt;/h3&gt;
&lt;p&gt;DISM is at the heart of every Windows installation. You need to do a verification on your installation ISO to figure out the source index # that you will install.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;DISM /Get-ImageInfo /imagefile:x:\sources\install.wim
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note the Index: # that you want to install&lt;/p&gt;
&lt;h3&gt;Install Main Windows Data&lt;/h3&gt;
&lt;p&gt;Now we copy over the operating system in its entirety.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;DISM /apply-image /imagefile:x:\sources\install.wim /index:2 /applydir:c:
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Copy Boot Files to EFI&lt;/h3&gt;
&lt;p&gt;Copy the boot files to complete the EFI partition to boot into our windows.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;bcdboot c:\Windows /s G: /f ALL
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Bypass OOBE&lt;/h2&gt;
&lt;p&gt;The Out of Box Experience is changing all the time. The requirement to be online or only use a Microsoft account. Bypass it with this command and using &lt;code&gt;Shift+F10&lt;/code&gt; to bring up the command prompt. &lt;strong&gt;NOTE: DISCONNECT FROM INTERNET before booting!&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;start ms-cxh:localonly
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;System will restart after executing the command. Select &lt;code&gt;Continue with limited Setup&lt;/code&gt; and name the device and create a local account.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/vtxedkuUCas&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 01 Sep 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Installing Windows strictly through the Command Line is an important tool to have. If windows changes the installer or out of box experience, you can bypass any changes with this guide!&lt;/p&gt;

&lt;h2&gt;The Installer&lt;/h2&gt;
&lt;p&gt;Download and Launch the Windows Installer&lt;/p&gt;
&lt;p&gt;Launch Command Prompt with &lt;code&gt;Shift+F10&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Partition both a Boot Partition and Data Partition&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;List Disks with &lt;code&gt;list disk&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Select desired disk with &lt;code&gt;sel disk #&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Check to verify there is NO partitions &lt;code&gt;list partition&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;(Optional) Delete any existing partitions &lt;code&gt;del part #&lt;/code&gt; &lt;strong&gt;NOTE: THIS ERASES ALL DATA&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Check to verify DISK is GPT &lt;code&gt;list disk&lt;/code&gt; and use &lt;code&gt;convert gpt&lt;/code&gt; if GPT is not enabled &lt;code&gt;*&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Create Boot partition &lt;code&gt;create partition efi size=100&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Create Data partition &lt;code&gt;create partition primary size=*&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Select Boot &lt;code&gt;sel partition 1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Format Boot &lt;code&gt;format fs=FAT32 quick&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Assign Boot partition &lt;code&gt;assign letter=g:&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Select Data &lt;code&gt;sel par 2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Format Data &lt;code&gt;format fs=NTFS quick&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Assign Data partition &lt;code&gt;assign letter=c:&lt;/code&gt; &lt;strong&gt;Note: You may need to UNASSIGN an existing C: drive&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Verify the Windows Version to Install&lt;/h3&gt;
&lt;p&gt;DISM is at the heart of every Windows installation. You need to do a verification on your installation ISO to figure out the source index # that you will install.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;DISM /Get-ImageInfo /imagefile:x:\sources\install.wim
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note the Index: # that you want to install&lt;/p&gt;
&lt;h3&gt;Install Main Windows Data&lt;/h3&gt;
&lt;p&gt;Now we copy over the operating system in its entirety.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;DISM /apply-image /imagefile:x:\sources\install.wim /index:2 /applydir:c:
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Copy Boot Files to EFI&lt;/h3&gt;
&lt;p&gt;Copy the boot files to complete the EFI partition to boot into our windows.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;bcdboot c:\Windows /s G: /f ALL
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Bypass OOBE&lt;/h2&gt;
&lt;p&gt;The Out of Box Experience is changing all the time. The requirement to be online or only use a Microsoft account. Bypass it with this command and using &lt;code&gt;Shift+F10&lt;/code&gt; to bring up the command prompt. &lt;strong&gt;NOTE: DISCONNECT FROM INTERNET before booting!&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;start ms-cxh:localonly
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;System will restart after executing the command. Select &lt;code&gt;Continue with limited Setup&lt;/code&gt; and name the device and create a local account.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/vtxedkuUCas&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Linus Tech Tips Problems</title><link>https://christitus.com/ltt-bad/</link><guid isPermaLink="true">https://christitus.com/ltt-bad/</guid><description>&lt;p&gt;With Gamers Nexus covering Linus tech tips in an unfavorable light, here is the bullet points of Problems with LTT.&lt;/p&gt;

&lt;h2&gt;LinusTechTips Issues&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;LTT Rushing Videos before they are done&lt;/li&gt;
&lt;li&gt;Bad Data reporting from LTT
&lt;ul&gt;
&lt;li&gt;GPU Review Errors&lt;/li&gt;
&lt;li&gt;CPU Cooler Test Errors&lt;/li&gt;
&lt;li&gt;PSU Review Errors&lt;/li&gt;
&lt;li&gt;CPU Review Errors&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Billet Labs Review was Bad
&lt;ul&gt;
&lt;li&gt;Linus tried to save face by saying he was paying them, but only AFTER GamersNexus published his video.&lt;/li&gt;
&lt;li&gt;Linus was unwilling to get an accurate review for $500, but he built a million dollar lab?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Ethics violation and favoritism with Sponsors.
&lt;ul&gt;
&lt;li&gt;Framework Laptop and &quot;reviews&quot;&lt;/li&gt;
&lt;li&gt;ASUS favoritism&lt;/li&gt;
&lt;li&gt;Noctua Screwdriver and reviewing their fans&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;GamersNexus Videos: &lt;a href=&quot;https://youtu.be/FGW3TPytTjc&quot;&gt;https://youtu.be/FGW3TPytTjc&lt;/a&gt; and &lt;a href=&quot;https://youtu.be/X3byz3txpso&quot;&gt;https://youtu.be/X3byz3txpso&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Linus Response&lt;/h2&gt;
&lt;p&gt;Overview:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mad at Steve for doing the video&lt;/li&gt;
&lt;li&gt;Big company growing fast makes mistakes&lt;/li&gt;
&lt;li&gt;Billet video stays as it was a bad product. Too Expensive and niche to a 3090 that was hard to get.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/ltt-bad/linus.webp&quot; alt=&quot;linus&quot; /&gt;&lt;/p&gt;
&lt;p&gt;LinusTechTips forum - Linus Post 08/14/2023 @ &lt;a href=&quot;https://linustechtips.com/topic/1526180-gamers-nexus-alleges-lmg-has-insufficient-ethics-and-integrity/page/16/&quot;&gt;https://linustechtips.com/topic/1526180-gamers-nexus-alleges-lmg-has-insufficient-ethics-and-integrity/page/16/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;My Thoughts&lt;/h2&gt;
&lt;p&gt;LTT is a media company and most YouTubers make mistakes and have favoritism with their reviews. As LinusTechTips has grown there is a ton of bias from owning a stake in framework laptops and hiring industry people such as Gary Key for LTT Labs that used to be the Sr. Marketing Director for ASUS.&lt;/p&gt;
&lt;p&gt;LTT Labs is silly and too much overhead for their business. They need to push out tons of videos with very little review time to continue to grow into a huge business. They need to reduce their overhead to increase the quality of their videos... NOT INCREASE IT! If they employ 120 people, they simply can&apos;t afford to NOT publish a video or take one down. If a sponsor is paying good money to have a video published, they don&apos;t have the luxury of NOT publishing it.&lt;/p&gt;
&lt;p&gt;The drop in replacement ability for these big channels is messed up and they can simply revise history by changing existing videos. This can skirt responsibility and gaslight people which looks like Linus has done.&lt;/p&gt;
&lt;p&gt;YouTube is a marketing platform and bias does exist. Reviews can never be 100% trusted by anyone. However, the best thing about YouTube is the comments and the fact the audience can call out the YouTuber and the thing I love the most is learning from my mistakes on YouTube.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/nGu0_8whK54&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 16 Aug 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;With Gamers Nexus covering Linus tech tips in an unfavorable light, here is the bullet points of Problems with LTT.&lt;/p&gt;

&lt;h2&gt;LinusTechTips Issues&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;LTT Rushing Videos before they are done&lt;/li&gt;
&lt;li&gt;Bad Data reporting from LTT
&lt;ul&gt;
&lt;li&gt;GPU Review Errors&lt;/li&gt;
&lt;li&gt;CPU Cooler Test Errors&lt;/li&gt;
&lt;li&gt;PSU Review Errors&lt;/li&gt;
&lt;li&gt;CPU Review Errors&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Billet Labs Review was Bad
&lt;ul&gt;
&lt;li&gt;Linus tried to save face by saying he was paying them, but only AFTER GamersNexus published his video.&lt;/li&gt;
&lt;li&gt;Linus was unwilling to get an accurate review for $500, but he built a million dollar lab?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Ethics violation and favoritism with Sponsors.
&lt;ul&gt;
&lt;li&gt;Framework Laptop and &quot;reviews&quot;&lt;/li&gt;
&lt;li&gt;ASUS favoritism&lt;/li&gt;
&lt;li&gt;Noctua Screwdriver and reviewing their fans&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;GamersNexus Videos: &lt;a href=&quot;https://youtu.be/FGW3TPytTjc&quot;&gt;https://youtu.be/FGW3TPytTjc&lt;/a&gt; and &lt;a href=&quot;https://youtu.be/X3byz3txpso&quot;&gt;https://youtu.be/X3byz3txpso&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Linus Response&lt;/h2&gt;
&lt;p&gt;Overview:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mad at Steve for doing the video&lt;/li&gt;
&lt;li&gt;Big company growing fast makes mistakes&lt;/li&gt;
&lt;li&gt;Billet video stays as it was a bad product. Too Expensive and niche to a 3090 that was hard to get.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/ltt-bad/linus.webp&quot; alt=&quot;linus&quot; /&gt;&lt;/p&gt;
&lt;p&gt;LinusTechTips forum - Linus Post 08/14/2023 @ &lt;a href=&quot;https://linustechtips.com/topic/1526180-gamers-nexus-alleges-lmg-has-insufficient-ethics-and-integrity/page/16/&quot;&gt;https://linustechtips.com/topic/1526180-gamers-nexus-alleges-lmg-has-insufficient-ethics-and-integrity/page/16/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;My Thoughts&lt;/h2&gt;
&lt;p&gt;LTT is a media company and most YouTubers make mistakes and have favoritism with their reviews. As LinusTechTips has grown there is a ton of bias from owning a stake in framework laptops and hiring industry people such as Gary Key for LTT Labs that used to be the Sr. Marketing Director for ASUS.&lt;/p&gt;
&lt;p&gt;LTT Labs is silly and too much overhead for their business. They need to push out tons of videos with very little review time to continue to grow into a huge business. They need to reduce their overhead to increase the quality of their videos... NOT INCREASE IT! If they employ 120 people, they simply can&apos;t afford to NOT publish a video or take one down. If a sponsor is paying good money to have a video published, they don&apos;t have the luxury of NOT publishing it.&lt;/p&gt;
&lt;p&gt;The drop in replacement ability for these big channels is messed up and they can simply revise history by changing existing videos. This can skirt responsibility and gaslight people which looks like Linus has done.&lt;/p&gt;
&lt;p&gt;YouTube is a marketing platform and bias does exist. Reviews can never be 100% trusted by anyone. However, the best thing about YouTube is the comments and the fact the audience can call out the YouTuber and the thing I love the most is learning from my mistakes on YouTube.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/nGu0_8whK54&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Windows 11 Perfect Install</title><link>https://christitus.com/windows-11-perfect-install/</link><guid isPermaLink="true">https://christitus.com/windows-11-perfect-install/</guid><description>&lt;p&gt;Setting a clean Windows 11 is difficult with all the built-in bloat. This guide fixes all that to give you a clean system that is easy to manage.&lt;/p&gt;

&lt;h2&gt;The Download ISO&lt;/h2&gt;
&lt;p&gt;You can download any of the ISOs from Microsoft &lt;a href=&quot;https://www.microsoft.com/software-download/windows11&quot;&gt;https://www.microsoft.com/software-download/windows11&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Choose English World from initial boot screen (Credit to ThioJoe for this tip - This makes sure TikTok and other 3rd party stuff don&apos;t install)&lt;/p&gt;
&lt;h2&gt;Change Region to United States Post Install&lt;/h2&gt;
&lt;p&gt;Run &lt;code&gt;intl.cpl&lt;/code&gt; or launch the windows toolbox and use legacy panels to launch Region Settings. Then switch it to US region.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/windows-11-perfect-install/region.webp&quot; alt=&quot;Alt text&quot; /&gt;&lt;/p&gt;
&lt;p&gt;If you are using the Microsoft Store you need to search for Region in Settings and Set it to United States&lt;/p&gt;
&lt;h2&gt;Debloat with Recommended Tweaks&lt;/h2&gt;
&lt;p&gt;Run &lt;code&gt;irm christitus.com/win | iex&lt;/code&gt; from Administrator Terminal (Powershell)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/windows-11-perfect-install/winutil.webp&quot; alt=&quot;Alt text&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;(Optional) Browser Change from Edge&lt;/h2&gt;
&lt;p&gt;Install your browser of choice from the Install Menu on winutil. I recommend Brave, but you can choose whatever you want.&lt;/p&gt;
&lt;p&gt;Then run Edge Removal from the winutil Tweaks Menu and it will redirect all web links to your new browser.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/6UQZ5oQg8XA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Sat, 05 Aug 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Setting a clean Windows 11 is difficult with all the built-in bloat. This guide fixes all that to give you a clean system that is easy to manage.&lt;/p&gt;

&lt;h2&gt;The Download ISO&lt;/h2&gt;
&lt;p&gt;You can download any of the ISOs from Microsoft &lt;a href=&quot;https://www.microsoft.com/software-download/windows11&quot;&gt;https://www.microsoft.com/software-download/windows11&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Choose English World from initial boot screen (Credit to ThioJoe for this tip - This makes sure TikTok and other 3rd party stuff don&apos;t install)&lt;/p&gt;
&lt;h2&gt;Change Region to United States Post Install&lt;/h2&gt;
&lt;p&gt;Run &lt;code&gt;intl.cpl&lt;/code&gt; or launch the windows toolbox and use legacy panels to launch Region Settings. Then switch it to US region.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/windows-11-perfect-install/region.webp&quot; alt=&quot;Alt text&quot; /&gt;&lt;/p&gt;
&lt;p&gt;If you are using the Microsoft Store you need to search for Region in Settings and Set it to United States&lt;/p&gt;
&lt;h2&gt;Debloat with Recommended Tweaks&lt;/h2&gt;
&lt;p&gt;Run &lt;code&gt;irm christitus.com/win | iex&lt;/code&gt; from Administrator Terminal (Powershell)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/windows-11-perfect-install/winutil.webp&quot; alt=&quot;Alt text&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;(Optional) Browser Change from Edge&lt;/h2&gt;
&lt;p&gt;Install your browser of choice from the Install Menu on winutil. I recommend Brave, but you can choose whatever you want.&lt;/p&gt;
&lt;p&gt;Then run Edge Removal from the winutil Tweaks Menu and it will redirect all web links to your new browser.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/6UQZ5oQg8XA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>NixOS Explained</title><link>https://christitus.com/nixos-explained/</link><guid isPermaLink="true">https://christitus.com/nixos-explained/</guid><description>&lt;p&gt;NixOS is a very different type of Linux distribution. Everything can be controlled by one file.&lt;/p&gt;

&lt;h2&gt;The Configuration&lt;/h2&gt;
&lt;p&gt;Unlike other distributions where you configure system wide programs with &lt;code&gt;/etc&lt;/code&gt; and install programs with a package manage like APT, with NixOS EVERYTHING is done in &lt;code&gt;/etc/nixos/configuration.nix&lt;/code&gt; or hardware specific configurations in &lt;code&gt;/etc/nixos/hardware-configuration.nix&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;You can reference all my videos below and see my ending configuration files @ &lt;a href=&quot;https://github.com/ChrisTitusTech/nixos-titus&quot;&gt;https://github.com/ChrisTitusTech/nixos-titus&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A viewer of the channel also sent me this in-depth guide covering much more of NixOS including flakes and home manager. Here is that article: &lt;a href=&quot;https://thiscute.world/en/posts/nixos-and-flake-basics&quot;&gt;https://thiscute.world/en/posts/nixos-and-flake-basics&lt;/a&gt; - which is a great resource as well!&lt;/p&gt;
&lt;h2&gt;Install and Config Videos&lt;/h2&gt;
&lt;p&gt;First Time Install: &lt;a href=&quot;https://youtu.be/_Z32SYFbxpw&quot;&gt;https://youtu.be/_Z32SYFbxpw&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Timestamps:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;00:00:00 - NixOS Overview&lt;/li&gt;
&lt;li&gt;00:04:05 - Finding Packages to use before install&lt;/li&gt;
&lt;li&gt;00:17:26 - Install Begins&lt;/li&gt;
&lt;li&gt;00:23:46 - Manual Partitioning&lt;/li&gt;
&lt;li&gt;00:34:24 - Generating Our Configuration File for Install&lt;/li&gt;
&lt;li&gt;00:39:49 - Finishing Install from ISO&lt;/li&gt;
&lt;li&gt;00:40:58 - First Boot&lt;/li&gt;
&lt;li&gt;00:41:39 - Login and user setup&lt;/li&gt;
&lt;li&gt;00:42:07 - SetFont problems&lt;/li&gt;
&lt;li&gt;00:43:28 - Figuring out Installing Packages&lt;/li&gt;
&lt;li&gt;00:46:20 - mounting backup drive&lt;/li&gt;
&lt;li&gt;00:47:29 - Grabing Backup Packagelist&lt;/li&gt;
&lt;li&gt;00:50:24 - Installing ALL the Packages 1000+&lt;/li&gt;
&lt;li&gt;00:55:01 - Understanding PATHS and proper XDG Paths&lt;/li&gt;
&lt;li&gt;01:02:02 - Install Done - Reboot&lt;/li&gt;
&lt;li&gt;01:03:19 - Adding a Desktop Session&lt;/li&gt;
&lt;li&gt;01:05:10 - Nix Handles Services VERY Differently&lt;/li&gt;
&lt;li&gt;01:07:38 - Fixing permissions on mounted external home&lt;/li&gt;
&lt;li&gt;01:09:35 - You can NOT change stuff in /etc&lt;/li&gt;
&lt;li&gt;01:21:02 - Cloning DWM Setup&lt;/li&gt;
&lt;li&gt;01:22:26 - Titus is dogwater at using elinks&lt;/li&gt;
&lt;li&gt;01:27:02 - Wierd NixOS package names&lt;/li&gt;
&lt;li&gt;01:31:12 - MINDBLOWING NixOS Overlays&lt;/li&gt;
&lt;li&gt;01:40:51 - bin bash errors with it not existing&lt;/li&gt;
&lt;li&gt;01:48:37 - Successful Install and Recap&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;NixOS Configuration: &lt;a href=&quot;https://youtu.be/IRRtk320j2A&quot;&gt;https://youtu.be/IRRtk320j2A&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Timestamps:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;00:00:00 - NixOS Config Overview&lt;/li&gt;
&lt;li&gt;00:01:41 - Overall feelings about NixOS&lt;/li&gt;
&lt;li&gt;00:02:20 - Improvements with Flatpak and XDG via Config&lt;/li&gt;
&lt;li&gt;00:04:02 - Improving Configuration.nix&lt;/li&gt;
&lt;li&gt;00:04:23 - ipv6config&lt;/li&gt;
&lt;li&gt;00:05:23 - Locale&lt;/li&gt;
&lt;li&gt;00:06:16 - XServices and Display Manager Configs&lt;/li&gt;
&lt;li&gt;00:09:24 - Fonts Config&lt;/li&gt;
&lt;li&gt;00:11:07 - Polkit Config&lt;/li&gt;
&lt;li&gt;00:22:47 - Revisting Flatpak&lt;/li&gt;
&lt;li&gt;00:25:08 - Console Font Problems&lt;/li&gt;
&lt;li&gt;00:30:46 - SwayCons&lt;/li&gt;
&lt;li&gt;00:33:40 - Upgrading NixOS to New Release&lt;/li&gt;
&lt;li&gt;00:43:47 - Upgrade problems with insecure packages&lt;/li&gt;
&lt;li&gt;00:49:45 - NixOS Virtualization Setup&lt;/li&gt;
&lt;li&gt;00:51:38 - The Old Way does NOT work&lt;/li&gt;
&lt;li&gt;00:53:49 - The NixOS Way of Adding Groups&lt;/li&gt;
&lt;li&gt;00:57:01 - Adding Libvirt to NixOS&lt;/li&gt;
&lt;li&gt;01:00:17 - Finally Fixing Console Fonts&lt;/li&gt;
&lt;li&gt;01:02:00 - DaVinci Resolve in NixOS&lt;/li&gt;
&lt;li&gt;01:04:04 - Setting up Autologin in NixOS&lt;/li&gt;
&lt;li&gt;01:13:31 - DaVinci Resolve launch test&lt;/li&gt;
&lt;li&gt;01:15:19 - Next Steps and Sharing Config&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;NixOS SystemD TimeOut Config: &lt;a href=&quot;https://youtu.be/1qd0iHadvdo&quot;&gt;https://youtu.be/1qd0iHadvdo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;NixOS NFS Mounting: &lt;a href=&quot;https://youtu.be/l7HvMM6rLNE&quot;&gt;https://youtu.be/l7HvMM6rLNE&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;NixOS Gaming Setup: &lt;a href=&quot;https://youtu.be/wpS3qIprHL0&quot;&gt;https://youtu.be/wpS3qIprHL0&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Timestamps:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;00:00:00 - NixOS Gaming&lt;/li&gt;
&lt;li&gt;00:02:08 - Nix configuration changes for resolution&lt;/li&gt;
&lt;li&gt;00:03:22 - Diablo 4 problems with DWM&lt;/li&gt;
&lt;li&gt;00:07:19 - Manually changing Diablo 4 config&lt;/li&gt;
&lt;li&gt;00:12:08 - Changing Lutris Options&lt;/li&gt;
&lt;li&gt;00:16:25 - Diablo 4 initial launch&lt;/li&gt;
&lt;li&gt;00:19:26 - Unlocking vsync and fps benchmarks&lt;/li&gt;
&lt;li&gt;00:22:52 - Adding HD Packs&lt;/li&gt;
&lt;li&gt;00:26:33 - Comparing Windows vs Linux Performance in Diablo 4&lt;/li&gt;
&lt;li&gt;00:29:31 - Diablo 4 Linux Benchmark Settings&lt;/li&gt;
&lt;li&gt;00:30:03 - Diablo 4 Linux Benchmark Gameplay&lt;/li&gt;
&lt;li&gt;00:33:04 - Windows Display Issues&lt;/li&gt;
&lt;li&gt;00:34:53 - Adding Windows HD Assets&lt;/li&gt;
&lt;li&gt;00:36:43 - GRUB and Bootloaders&lt;/li&gt;
&lt;li&gt;00:38:18 - Windows Benchmarks Begins&lt;/li&gt;
&lt;li&gt;00:39:41 - Installing Windows OSD Tools&lt;/li&gt;
&lt;li&gt;00:43:19 - Windows Gameplay Benchmarks&lt;/li&gt;
&lt;li&gt;00:46:52 - Overview of Linux vs Windows Diablo 4&lt;/li&gt;
&lt;li&gt;00:50:33 - Why I do not use VMs for new installs&lt;/li&gt;
&lt;li&gt;00:51:44 - GPU Acceleration in Linux&lt;/li&gt;
&lt;li&gt;00:52:58 - The Oh Crap Moment&lt;/li&gt;
&lt;li&gt;00:55:51 - DWM the LAST Window Manager&lt;/li&gt;
&lt;li&gt;01:01:17 - Wrapping Up&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/fuWPuJZ9NcU&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 16 Jun 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;NixOS is a very different type of Linux distribution. Everything can be controlled by one file.&lt;/p&gt;

&lt;h2&gt;The Configuration&lt;/h2&gt;
&lt;p&gt;Unlike other distributions where you configure system wide programs with &lt;code&gt;/etc&lt;/code&gt; and install programs with a package manage like APT, with NixOS EVERYTHING is done in &lt;code&gt;/etc/nixos/configuration.nix&lt;/code&gt; or hardware specific configurations in &lt;code&gt;/etc/nixos/hardware-configuration.nix&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;You can reference all my videos below and see my ending configuration files @ &lt;a href=&quot;https://github.com/ChrisTitusTech/nixos-titus&quot;&gt;https://github.com/ChrisTitusTech/nixos-titus&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A viewer of the channel also sent me this in-depth guide covering much more of NixOS including flakes and home manager. Here is that article: &lt;a href=&quot;https://thiscute.world/en/posts/nixos-and-flake-basics&quot;&gt;https://thiscute.world/en/posts/nixos-and-flake-basics&lt;/a&gt; - which is a great resource as well!&lt;/p&gt;
&lt;h2&gt;Install and Config Videos&lt;/h2&gt;
&lt;p&gt;First Time Install: &lt;a href=&quot;https://youtu.be/_Z32SYFbxpw&quot;&gt;https://youtu.be/_Z32SYFbxpw&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Timestamps:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;00:00:00 - NixOS Overview&lt;/li&gt;
&lt;li&gt;00:04:05 - Finding Packages to use before install&lt;/li&gt;
&lt;li&gt;00:17:26 - Install Begins&lt;/li&gt;
&lt;li&gt;00:23:46 - Manual Partitioning&lt;/li&gt;
&lt;li&gt;00:34:24 - Generating Our Configuration File for Install&lt;/li&gt;
&lt;li&gt;00:39:49 - Finishing Install from ISO&lt;/li&gt;
&lt;li&gt;00:40:58 - First Boot&lt;/li&gt;
&lt;li&gt;00:41:39 - Login and user setup&lt;/li&gt;
&lt;li&gt;00:42:07 - SetFont problems&lt;/li&gt;
&lt;li&gt;00:43:28 - Figuring out Installing Packages&lt;/li&gt;
&lt;li&gt;00:46:20 - mounting backup drive&lt;/li&gt;
&lt;li&gt;00:47:29 - Grabing Backup Packagelist&lt;/li&gt;
&lt;li&gt;00:50:24 - Installing ALL the Packages 1000+&lt;/li&gt;
&lt;li&gt;00:55:01 - Understanding PATHS and proper XDG Paths&lt;/li&gt;
&lt;li&gt;01:02:02 - Install Done - Reboot&lt;/li&gt;
&lt;li&gt;01:03:19 - Adding a Desktop Session&lt;/li&gt;
&lt;li&gt;01:05:10 - Nix Handles Services VERY Differently&lt;/li&gt;
&lt;li&gt;01:07:38 - Fixing permissions on mounted external home&lt;/li&gt;
&lt;li&gt;01:09:35 - You can NOT change stuff in /etc&lt;/li&gt;
&lt;li&gt;01:21:02 - Cloning DWM Setup&lt;/li&gt;
&lt;li&gt;01:22:26 - Titus is dogwater at using elinks&lt;/li&gt;
&lt;li&gt;01:27:02 - Wierd NixOS package names&lt;/li&gt;
&lt;li&gt;01:31:12 - MINDBLOWING NixOS Overlays&lt;/li&gt;
&lt;li&gt;01:40:51 - bin bash errors with it not existing&lt;/li&gt;
&lt;li&gt;01:48:37 - Successful Install and Recap&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;NixOS Configuration: &lt;a href=&quot;https://youtu.be/IRRtk320j2A&quot;&gt;https://youtu.be/IRRtk320j2A&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Timestamps:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;00:00:00 - NixOS Config Overview&lt;/li&gt;
&lt;li&gt;00:01:41 - Overall feelings about NixOS&lt;/li&gt;
&lt;li&gt;00:02:20 - Improvements with Flatpak and XDG via Config&lt;/li&gt;
&lt;li&gt;00:04:02 - Improving Configuration.nix&lt;/li&gt;
&lt;li&gt;00:04:23 - ipv6config&lt;/li&gt;
&lt;li&gt;00:05:23 - Locale&lt;/li&gt;
&lt;li&gt;00:06:16 - XServices and Display Manager Configs&lt;/li&gt;
&lt;li&gt;00:09:24 - Fonts Config&lt;/li&gt;
&lt;li&gt;00:11:07 - Polkit Config&lt;/li&gt;
&lt;li&gt;00:22:47 - Revisting Flatpak&lt;/li&gt;
&lt;li&gt;00:25:08 - Console Font Problems&lt;/li&gt;
&lt;li&gt;00:30:46 - SwayCons&lt;/li&gt;
&lt;li&gt;00:33:40 - Upgrading NixOS to New Release&lt;/li&gt;
&lt;li&gt;00:43:47 - Upgrade problems with insecure packages&lt;/li&gt;
&lt;li&gt;00:49:45 - NixOS Virtualization Setup&lt;/li&gt;
&lt;li&gt;00:51:38 - The Old Way does NOT work&lt;/li&gt;
&lt;li&gt;00:53:49 - The NixOS Way of Adding Groups&lt;/li&gt;
&lt;li&gt;00:57:01 - Adding Libvirt to NixOS&lt;/li&gt;
&lt;li&gt;01:00:17 - Finally Fixing Console Fonts&lt;/li&gt;
&lt;li&gt;01:02:00 - DaVinci Resolve in NixOS&lt;/li&gt;
&lt;li&gt;01:04:04 - Setting up Autologin in NixOS&lt;/li&gt;
&lt;li&gt;01:13:31 - DaVinci Resolve launch test&lt;/li&gt;
&lt;li&gt;01:15:19 - Next Steps and Sharing Config&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;NixOS SystemD TimeOut Config: &lt;a href=&quot;https://youtu.be/1qd0iHadvdo&quot;&gt;https://youtu.be/1qd0iHadvdo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;NixOS NFS Mounting: &lt;a href=&quot;https://youtu.be/l7HvMM6rLNE&quot;&gt;https://youtu.be/l7HvMM6rLNE&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;NixOS Gaming Setup: &lt;a href=&quot;https://youtu.be/wpS3qIprHL0&quot;&gt;https://youtu.be/wpS3qIprHL0&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Timestamps:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;00:00:00 - NixOS Gaming&lt;/li&gt;
&lt;li&gt;00:02:08 - Nix configuration changes for resolution&lt;/li&gt;
&lt;li&gt;00:03:22 - Diablo 4 problems with DWM&lt;/li&gt;
&lt;li&gt;00:07:19 - Manually changing Diablo 4 config&lt;/li&gt;
&lt;li&gt;00:12:08 - Changing Lutris Options&lt;/li&gt;
&lt;li&gt;00:16:25 - Diablo 4 initial launch&lt;/li&gt;
&lt;li&gt;00:19:26 - Unlocking vsync and fps benchmarks&lt;/li&gt;
&lt;li&gt;00:22:52 - Adding HD Packs&lt;/li&gt;
&lt;li&gt;00:26:33 - Comparing Windows vs Linux Performance in Diablo 4&lt;/li&gt;
&lt;li&gt;00:29:31 - Diablo 4 Linux Benchmark Settings&lt;/li&gt;
&lt;li&gt;00:30:03 - Diablo 4 Linux Benchmark Gameplay&lt;/li&gt;
&lt;li&gt;00:33:04 - Windows Display Issues&lt;/li&gt;
&lt;li&gt;00:34:53 - Adding Windows HD Assets&lt;/li&gt;
&lt;li&gt;00:36:43 - GRUB and Bootloaders&lt;/li&gt;
&lt;li&gt;00:38:18 - Windows Benchmarks Begins&lt;/li&gt;
&lt;li&gt;00:39:41 - Installing Windows OSD Tools&lt;/li&gt;
&lt;li&gt;00:43:19 - Windows Gameplay Benchmarks&lt;/li&gt;
&lt;li&gt;00:46:52 - Overview of Linux vs Windows Diablo 4&lt;/li&gt;
&lt;li&gt;00:50:33 - Why I do not use VMs for new installs&lt;/li&gt;
&lt;li&gt;00:51:44 - GPU Acceleration in Linux&lt;/li&gt;
&lt;li&gt;00:52:58 - The Oh Crap Moment&lt;/li&gt;
&lt;li&gt;00:55:51 - DWM the LAST Window Manager&lt;/li&gt;
&lt;li&gt;01:01:17 - Wrapping Up&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/fuWPuJZ9NcU&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>The Perfect System</title><link>https://christitus.com/the-perfect-system/</link><guid isPermaLink="true">https://christitus.com/the-perfect-system/</guid><description>&lt;p&gt;The perfect system is stable, reliable, and does everything you need it to, while it feels amazing to use.&lt;/p&gt;

&lt;h2&gt;The Base System&lt;/h2&gt;
&lt;p&gt;Choose a Stable Release that won&apos;t get many feature updates that change the experience, but gets security updates that makes it stable and secure.&lt;/p&gt;
&lt;p&gt;Examples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RHEL 10-year Support (Red Hat Enterprise Linux - Require Subscription)
-Free Variants (Rocky and Alma Linux)&lt;/li&gt;
&lt;li&gt;Debian 5-year Support (Stable - Bookworm(06/2023) or Bullseye)&lt;/li&gt;
&lt;li&gt;Ubuntu 5-year Support (Version 22 or 20)&lt;/li&gt;
&lt;li&gt;OpenSUSE 6-year Support (Leap only)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Packages&lt;/h2&gt;
&lt;p&gt;Getting all your packages and updating them reliably can be a challenge. With LTS releases, you will always be installing old version of software, where something like Arch Linux or other rolling releases will have the latest and greatest. We can get around this with NixOS Packages and Flatpak. There are other all-in-one tools like AppImages or Snap packages, but I don&apos;t find these to be any better than just using Nix or Flatpak.&lt;/p&gt;
&lt;h2&gt;The Look and Feel&lt;/h2&gt;
&lt;p&gt;This will be different for everyone. The idea is to have a system you enjoy being in and looking forward to coming back to it.&lt;/p&gt;
&lt;p&gt;I&apos;ve attempted a bastardized version of the genome project from unixporn and
made several Ubuntu, Debian, and Fedora configurations that kinda worked. Those
old repositories have since been retired. It ended up looking like this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/the-perfect-system/fedora-mydesktop.webp&quot; alt=&quot;mydesktop&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The problem is I am not good at graphic design. I&apos;m a function over form person and these desktop below are the opposite of that.&lt;/p&gt;
&lt;p&gt;This rice is interesting using hyprland, eww, and is clean.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/the-perfect-system/fedora-hyprland-eww.webp&quot; alt=&quot;hyprland&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://github.com/Aylur/dotfiles&quot;&gt;https://github.com/Aylur/dotfiles&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Another rice that is using awesomewm w/ bling utilties and rofi for menus. Simplistic and clean.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/the-perfect-system/awesomewm-bling-rofi.webp&quot; alt=&quot;awesomewm&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://github.com/beastsongithub/AwesomeWMRice&quot;&gt;https://github.com/beastsongithub/AwesomeWMRice&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I mentioned the above projects for the simplistic nature and not requiring a TON of dependancies. Too many rices in Linux require 10+ programs to even function, which is bad design where the two above look good, but don&apos;t have tons of problems. I say this to encourage more rices that are easier to replicate for people.&lt;/p&gt;
&lt;p&gt;What does my future desktop look like? Two versions... The pretty version in a year using Hyprland, Wayland, and the pretty desktop and the suckless barebones minimal one that just works like below.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/the-perfect-system/dwm.webp&quot; alt=&quot;dwm&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/ZgHX8jPuHjE&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 24 May 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The perfect system is stable, reliable, and does everything you need it to, while it feels amazing to use.&lt;/p&gt;

&lt;h2&gt;The Base System&lt;/h2&gt;
&lt;p&gt;Choose a Stable Release that won&apos;t get many feature updates that change the experience, but gets security updates that makes it stable and secure.&lt;/p&gt;
&lt;p&gt;Examples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RHEL 10-year Support (Red Hat Enterprise Linux - Require Subscription)
-Free Variants (Rocky and Alma Linux)&lt;/li&gt;
&lt;li&gt;Debian 5-year Support (Stable - Bookworm(06/2023) or Bullseye)&lt;/li&gt;
&lt;li&gt;Ubuntu 5-year Support (Version 22 or 20)&lt;/li&gt;
&lt;li&gt;OpenSUSE 6-year Support (Leap only)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Packages&lt;/h2&gt;
&lt;p&gt;Getting all your packages and updating them reliably can be a challenge. With LTS releases, you will always be installing old version of software, where something like Arch Linux or other rolling releases will have the latest and greatest. We can get around this with NixOS Packages and Flatpak. There are other all-in-one tools like AppImages or Snap packages, but I don&apos;t find these to be any better than just using Nix or Flatpak.&lt;/p&gt;
&lt;h2&gt;The Look and Feel&lt;/h2&gt;
&lt;p&gt;This will be different for everyone. The idea is to have a system you enjoy being in and looking forward to coming back to it.&lt;/p&gt;
&lt;p&gt;I&apos;ve attempted a bastardized version of the genome project from unixporn and
made several Ubuntu, Debian, and Fedora configurations that kinda worked. Those
old repositories have since been retired. It ended up looking like this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/the-perfect-system/fedora-mydesktop.webp&quot; alt=&quot;mydesktop&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The problem is I am not good at graphic design. I&apos;m a function over form person and these desktop below are the opposite of that.&lt;/p&gt;
&lt;p&gt;This rice is interesting using hyprland, eww, and is clean.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/the-perfect-system/fedora-hyprland-eww.webp&quot; alt=&quot;hyprland&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://github.com/Aylur/dotfiles&quot;&gt;https://github.com/Aylur/dotfiles&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Another rice that is using awesomewm w/ bling utilties and rofi for menus. Simplistic and clean.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/the-perfect-system/awesomewm-bling-rofi.webp&quot; alt=&quot;awesomewm&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://github.com/beastsongithub/AwesomeWMRice&quot;&gt;https://github.com/beastsongithub/AwesomeWMRice&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I mentioned the above projects for the simplistic nature and not requiring a TON of dependancies. Too many rices in Linux require 10+ programs to even function, which is bad design where the two above look good, but don&apos;t have tons of problems. I say this to encourage more rices that are easier to replicate for people.&lt;/p&gt;
&lt;p&gt;What does my future desktop look like? Two versions... The pretty version in a year using Hyprland, Wayland, and the pretty desktop and the suckless barebones minimal one that just works like below.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/the-perfect-system/dwm.webp&quot; alt=&quot;dwm&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/ZgHX8jPuHjE&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Fitness Transformation</title><link>https://christitus.com/fitness-transformation/</link><guid isPermaLink="true">https://christitus.com/fitness-transformation/</guid><description>&lt;p&gt;On November 7th, I decided to start working out and eating right. This is how I transformed my body and you can as well.&lt;/p&gt;

&lt;p&gt;When I was younger I could eat anything I wanted and go work out to burn it off. This is no longer true at 40 and if you eat poorly, You will get hurt, not have energy, and see poor results even if you can stay healthy. I&apos;d say health is 70% nutrition and 30% exercise. Also you need to know WHY you are working out or want to get healthy. Here are the key pillars that I used to be healthy.&lt;/p&gt;
&lt;h2&gt;Why Workout?&lt;/h2&gt;
&lt;p&gt;Everyone wants to be healthy, but want a shortcut, a fad diet, something easy that requires very little work. This is where I failed in past attempts, I just wanted to be healthy or to look a certain way. It was a WEAK reason to workout and as soon as it became hard or the shortcut stopped working after the initial success I would quit.&lt;/p&gt;
&lt;p&gt;This time was different, my why changed after I hit 40, because my father passed away at 55 and many other relatives also passed in their 50s. Fear of death is a powerful motivator and just thinking about all the birthdays and life events my father missed from passing away at an early age. I don&apos;t want that to happen to my children or many other scenarios that would lead to a degraded quality of life by NOT working out.&lt;/p&gt;
&lt;h2&gt;Nutrition&lt;/h2&gt;
&lt;p&gt;An overly complicated subject that I failed miserably at because of all the misinformation that exists. Here are the three biggest things I did that kept me unhappy and miserable.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No Alcohol (Special Events, but NO MORE than once a month.)&lt;/li&gt;
&lt;li&gt;Limit Added Sugar (Drinks and Artificial Sweetners are also bad.)&lt;/li&gt;
&lt;li&gt;Limit Refined/Simple Carbs (White Bread, Pizza, Pasta, Pastries, White Flour, White Rice, Desserts, Cereal)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Which Workout?&lt;/h2&gt;
&lt;p&gt;The first month should be something simple that just gets you active daily. For me, I could NOT take a day off and maintain consistency. It&apos;s not about going to a gym and killing yourself every single day, but staying active every day. Before I started doing Crossfit, I made sure to walk daily and still do even on gym days. Start being ACTIVE and doing something active everyday!&lt;/p&gt;
&lt;p&gt;I would even caution against joining a gym or rigorous workout program without first having a healthy habit like daily walking. If you can get up and walk a mile daily, then going to the gym is NOT going to happen and nothing will change. Start with a healthy activity you enjoy then add in more strenuous exercise. Before my first month of crossfit, I made sure that I had a healthy walking habit down and that I was staying active otherwise I&apos;m sure I would have just been injured. The key is pushing yourself and getting to a spot where the walk or simple activity is something that becomes second nature, at that point you move on to the harder workout if you want to see more results.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/kfQC-sQxMcw&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 22 May 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;On November 7th, I decided to start working out and eating right. This is how I transformed my body and you can as well.&lt;/p&gt;

&lt;p&gt;When I was younger I could eat anything I wanted and go work out to burn it off. This is no longer true at 40 and if you eat poorly, You will get hurt, not have energy, and see poor results even if you can stay healthy. I&apos;d say health is 70% nutrition and 30% exercise. Also you need to know WHY you are working out or want to get healthy. Here are the key pillars that I used to be healthy.&lt;/p&gt;
&lt;h2&gt;Why Workout?&lt;/h2&gt;
&lt;p&gt;Everyone wants to be healthy, but want a shortcut, a fad diet, something easy that requires very little work. This is where I failed in past attempts, I just wanted to be healthy or to look a certain way. It was a WEAK reason to workout and as soon as it became hard or the shortcut stopped working after the initial success I would quit.&lt;/p&gt;
&lt;p&gt;This time was different, my why changed after I hit 40, because my father passed away at 55 and many other relatives also passed in their 50s. Fear of death is a powerful motivator and just thinking about all the birthdays and life events my father missed from passing away at an early age. I don&apos;t want that to happen to my children or many other scenarios that would lead to a degraded quality of life by NOT working out.&lt;/p&gt;
&lt;h2&gt;Nutrition&lt;/h2&gt;
&lt;p&gt;An overly complicated subject that I failed miserably at because of all the misinformation that exists. Here are the three biggest things I did that kept me unhappy and miserable.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No Alcohol (Special Events, but NO MORE than once a month.)&lt;/li&gt;
&lt;li&gt;Limit Added Sugar (Drinks and Artificial Sweetners are also bad.)&lt;/li&gt;
&lt;li&gt;Limit Refined/Simple Carbs (White Bread, Pizza, Pasta, Pastries, White Flour, White Rice, Desserts, Cereal)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Which Workout?&lt;/h2&gt;
&lt;p&gt;The first month should be something simple that just gets you active daily. For me, I could NOT take a day off and maintain consistency. It&apos;s not about going to a gym and killing yourself every single day, but staying active every day. Before I started doing Crossfit, I made sure to walk daily and still do even on gym days. Start being ACTIVE and doing something active everyday!&lt;/p&gt;
&lt;p&gt;I would even caution against joining a gym or rigorous workout program without first having a healthy habit like daily walking. If you can get up and walk a mile daily, then going to the gym is NOT going to happen and nothing will change. Start with a healthy activity you enjoy then add in more strenuous exercise. Before my first month of crossfit, I made sure that I had a healthy walking habit down and that I was staying active otherwise I&apos;m sure I would have just been injured. The key is pushing yourself and getting to a spot where the walk or simple activity is something that becomes second nature, at that point you move on to the harder workout if you want to see more results.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/kfQC-sQxMcw&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Windows Utility Update</title><link>https://christitus.com/winutil-may-23-update/</link><guid isPermaLink="true">https://christitus.com/winutil-may-23-update/</guid><description>&lt;p&gt;A big update with about 50 commits has made it to the May 2023 Windows Utility Update.&lt;/p&gt;

&lt;h2&gt;The Big Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Import/Export Command&lt;/li&gt;
&lt;li&gt;Winget upgrades and selection of already installed programs&lt;/li&gt;
&lt;li&gt;Tweaks checker (still early days, but improving)&lt;/li&gt;
&lt;li&gt;Added Desktop Shortcut for running Winutil&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Summary of ALL commits&lt;/h2&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://github.com/ChrisTitusTech/winutil/pull/726&quot;&gt;https://github.com/ChrisTitusTech/winutil/pull/726&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Update to GUI (InputXML)&lt;/li&gt;
&lt;li&gt;Fix Dark Mode&lt;/li&gt;
&lt;li&gt;Tweaks.json Update (Services restoring to factory)&lt;/li&gt;
&lt;li&gt;Fix Hovertime (annoying instant pop-up is removed)&lt;/li&gt;
&lt;li&gt;Fix IRPStackSize (minor networking tweak)&lt;/li&gt;
&lt;li&gt;O&amp;amp;O Shutup shortcut fix (was failing to apply tweaks)&lt;/li&gt;
&lt;li&gt;More runspace tweaks from Durp (better performance and faster)&lt;/li&gt;
&lt;li&gt;Added Toggle for Calendar/Notification Center&lt;/li&gt;
&lt;li&gt;Updated Edge Removal&lt;/li&gt;
&lt;li&gt;Program Additions
&lt;ul&gt;
&lt;li&gt;WinRAR&lt;/li&gt;
&lt;li&gt;Ubisoft Connect&lt;/li&gt;
&lt;li&gt;Neovim&lt;/li&gt;
&lt;li&gt;Node Version Manager&lt;/li&gt;
&lt;li&gt;Geforce NOW&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Preload winget with already installed tweaks/programs&lt;/li&gt;
&lt;li&gt;Split AllowGameDVR to make sure xbox game bar does NOT break&lt;/li&gt;
&lt;li&gt;Removed Atom IDE from Programs due to it being sunset&lt;/li&gt;
&lt;li&gt;Fixed OriginalType from stock Windows installs to always restore to Microsoft preset Services&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/ju_BSNKeP6w&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 19 May 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;A big update with about 50 commits has made it to the May 2023 Windows Utility Update.&lt;/p&gt;

&lt;h2&gt;The Big Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Import/Export Command&lt;/li&gt;
&lt;li&gt;Winget upgrades and selection of already installed programs&lt;/li&gt;
&lt;li&gt;Tweaks checker (still early days, but improving)&lt;/li&gt;
&lt;li&gt;Added Desktop Shortcut for running Winutil&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Summary of ALL commits&lt;/h2&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://github.com/ChrisTitusTech/winutil/pull/726&quot;&gt;https://github.com/ChrisTitusTech/winutil/pull/726&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Update to GUI (InputXML)&lt;/li&gt;
&lt;li&gt;Fix Dark Mode&lt;/li&gt;
&lt;li&gt;Tweaks.json Update (Services restoring to factory)&lt;/li&gt;
&lt;li&gt;Fix Hovertime (annoying instant pop-up is removed)&lt;/li&gt;
&lt;li&gt;Fix IRPStackSize (minor networking tweak)&lt;/li&gt;
&lt;li&gt;O&amp;amp;O Shutup shortcut fix (was failing to apply tweaks)&lt;/li&gt;
&lt;li&gt;More runspace tweaks from Durp (better performance and faster)&lt;/li&gt;
&lt;li&gt;Added Toggle for Calendar/Notification Center&lt;/li&gt;
&lt;li&gt;Updated Edge Removal&lt;/li&gt;
&lt;li&gt;Program Additions
&lt;ul&gt;
&lt;li&gt;WinRAR&lt;/li&gt;
&lt;li&gt;Ubisoft Connect&lt;/li&gt;
&lt;li&gt;Neovim&lt;/li&gt;
&lt;li&gt;Node Version Manager&lt;/li&gt;
&lt;li&gt;Geforce NOW&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Preload winget with already installed tweaks/programs&lt;/li&gt;
&lt;li&gt;Split AllowGameDVR to make sure xbox game bar does NOT break&lt;/li&gt;
&lt;li&gt;Removed Atom IDE from Programs due to it being sunset&lt;/li&gt;
&lt;li&gt;Fixed OriginalType from stock Windows installs to always restore to Microsoft preset Services&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/ju_BSNKeP6w&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>The TRUTH about Registry Cleaners</title><link>https://christitus.com/registry-cleaner/</link><guid isPermaLink="true">https://christitus.com/registry-cleaner/</guid><description>&lt;p&gt;Registry cleaners are still everywhere in Windows utilities, but why? Microsoft itself has said NOT to use them.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2023/registry-cleaner/wise-regcleaner.webp&quot; alt=&quot;Wise Regcleaner&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;They used to be good&lt;/h2&gt;
&lt;p&gt;Back in the 2000s, registry cleaners were needed as programs like AOL, Games, and other applications would make a bunch of additions to the registry on install. When uninstalling these programs they would never remove all the entries which would lead to problems. Enter... THE REGISTRY CLEANER! You could run these before reinstalling a program and have it be successful where it would otherwise fail. Contrary to popular belief these cleaners NEVER made your system run faster.&lt;/p&gt;
&lt;p&gt;A good example: Final Fantasy XI Online configures the game and has installation directory entries in the Windows Registry even TODAY! Most applications from 20 years ago have been sunset or upgraded to NOT make registry entries.&lt;/p&gt;
&lt;h2&gt;Why they still exist&lt;/h2&gt;
&lt;p&gt;MARKETING. Cleaners always looked impressive cleaning up thousands of &quot;bad&quot; entries. However, the risk of something going wrong or your system becoming unstable FAR outweighs any cleanup these tools do. The best case is they might clean an old context menu entry, but at it&apos;s worst case it will make your system unstable. DO NOT USE THEM!&lt;/p&gt;
&lt;p&gt;If you must use them, CCleaner free has the most proven track record for not messing systems up, but any other tool I&apos;ve seen causes more harm than good and I do NOT recommend using CCleaner.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/21VMQyQzRJw&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 17 May 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Registry cleaners are still everywhere in Windows utilities, but why? Microsoft itself has said NOT to use them.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2023/registry-cleaner/wise-regcleaner.webp&quot; alt=&quot;Wise Regcleaner&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;They used to be good&lt;/h2&gt;
&lt;p&gt;Back in the 2000s, registry cleaners were needed as programs like AOL, Games, and other applications would make a bunch of additions to the registry on install. When uninstalling these programs they would never remove all the entries which would lead to problems. Enter... THE REGISTRY CLEANER! You could run these before reinstalling a program and have it be successful where it would otherwise fail. Contrary to popular belief these cleaners NEVER made your system run faster.&lt;/p&gt;
&lt;p&gt;A good example: Final Fantasy XI Online configures the game and has installation directory entries in the Windows Registry even TODAY! Most applications from 20 years ago have been sunset or upgraded to NOT make registry entries.&lt;/p&gt;
&lt;h2&gt;Why they still exist&lt;/h2&gt;
&lt;p&gt;MARKETING. Cleaners always looked impressive cleaning up thousands of &quot;bad&quot; entries. However, the risk of something going wrong or your system becoming unstable FAR outweighs any cleanup these tools do. The best case is they might clean an old context menu entry, but at it&apos;s worst case it will make your system unstable. DO NOT USE THEM!&lt;/p&gt;
&lt;p&gt;If you must use them, CCleaner free has the most proven track record for not messing systems up, but any other tool I&apos;ve seen causes more harm than good and I do NOT recommend using CCleaner.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/21VMQyQzRJw&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>You Will Watch Ads</title><link>https://christitus.com/you-will-watch-ads/</link><guid isPermaLink="true">https://christitus.com/you-will-watch-ads/</guid><description>&lt;p&gt;There are massive changes coming to the internet and youtube in the form of Ads and the death of the ad blocker.&lt;/p&gt;

&lt;p&gt;This is happening in several different ways in the coming months. Let&apos;s go over what I see as inevitable and talk about workarounds.&lt;/p&gt;
&lt;h2&gt;YouTube detecting Ad Blockers&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/you-will-watch-ads/yt-ads.webp&quot; alt=&quot;Yt Ads&quot; /&gt;&lt;/p&gt;
&lt;p&gt;YouTube is testing blocking ad blockers like so many different news websites do right now. This will bring the rise of secondary viewers and the use of other sites likes odysee or freetube. These sites rely on YouTube&apos;s API and public sync, which will also be in the cross-hairs very soon.&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://www.bleepingcomputer.com/news/technology/youtube-tests-blocking-videos-unless-you-disable-ad-blockers/&quot;&gt;https://www.bleepingcomputer.com/news/technology/youtube-tests-blocking-videos-unless-you-disable-ad-blockers/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Chromium changes&lt;/h2&gt;
&lt;p&gt;Google&apos;s Manifest 3 is almost here in June 2023 and that will hamstring all Ad blockers. Most ad blockers and privacy plugins rely on Manifest 2 and with version 3 being activated they will sunset version 2. How will this affect Firefox users? Will they require google and youtube viewers to be compliant with version 3? Time will tell...&lt;/p&gt;
&lt;p&gt;Here was a good writeup from adguard on manifest v3: &lt;a href=&quot;https://adguard.com/en/blog/firefox-manifestv3-chrome-adblocking.html&quot;&gt;https://adguard.com/en/blog/firefox-manifestv3-chrome-adblocking.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;TLDR; Firefox will see more adoption and regular chrome ad extensions will be limited.&lt;/p&gt;
&lt;h2&gt;API Access and 3rd Party sites&lt;/h2&gt;
&lt;p&gt;I can already see an ocean of comments that I will x, y, or z instead of youtube and google. The main issue is most alternatives rely on Google and it&apos;s VERY open API. Sites like Odysee and many youtube apps not playing ads, rely on the API to SYNC the youtube videos to their servers. These services are on borrowed time and I&apos;m shocked they haven&apos;t already been taken down or at least restricted access for syncing YouTube content.&lt;/p&gt;
&lt;h2&gt;What About Custom DNS like pihole?&lt;/h2&gt;
&lt;p&gt;Ad block through custom dns always works, but it works too well. The reason we use ublock orgin or a browser based ad block is to keep the sites loading correctly and apps functioning properly. It would be trivial for Google to put roadblocks in the way of loading youtube if you block adsense. A good solution, but not the best when it comes to the user experience and using Google Ad supported products.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/oQL9dVsEXT0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 15 May 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;There are massive changes coming to the internet and youtube in the form of Ads and the death of the ad blocker.&lt;/p&gt;

&lt;p&gt;This is happening in several different ways in the coming months. Let&apos;s go over what I see as inevitable and talk about workarounds.&lt;/p&gt;
&lt;h2&gt;YouTube detecting Ad Blockers&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/you-will-watch-ads/yt-ads.webp&quot; alt=&quot;Yt Ads&quot; /&gt;&lt;/p&gt;
&lt;p&gt;YouTube is testing blocking ad blockers like so many different news websites do right now. This will bring the rise of secondary viewers and the use of other sites likes odysee or freetube. These sites rely on YouTube&apos;s API and public sync, which will also be in the cross-hairs very soon.&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://www.bleepingcomputer.com/news/technology/youtube-tests-blocking-videos-unless-you-disable-ad-blockers/&quot;&gt;https://www.bleepingcomputer.com/news/technology/youtube-tests-blocking-videos-unless-you-disable-ad-blockers/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Chromium changes&lt;/h2&gt;
&lt;p&gt;Google&apos;s Manifest 3 is almost here in June 2023 and that will hamstring all Ad blockers. Most ad blockers and privacy plugins rely on Manifest 2 and with version 3 being activated they will sunset version 2. How will this affect Firefox users? Will they require google and youtube viewers to be compliant with version 3? Time will tell...&lt;/p&gt;
&lt;p&gt;Here was a good writeup from adguard on manifest v3: &lt;a href=&quot;https://adguard.com/en/blog/firefox-manifestv3-chrome-adblocking.html&quot;&gt;https://adguard.com/en/blog/firefox-manifestv3-chrome-adblocking.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;TLDR; Firefox will see more adoption and regular chrome ad extensions will be limited.&lt;/p&gt;
&lt;h2&gt;API Access and 3rd Party sites&lt;/h2&gt;
&lt;p&gt;I can already see an ocean of comments that I will x, y, or z instead of youtube and google. The main issue is most alternatives rely on Google and it&apos;s VERY open API. Sites like Odysee and many youtube apps not playing ads, rely on the API to SYNC the youtube videos to their servers. These services are on borrowed time and I&apos;m shocked they haven&apos;t already been taken down or at least restricted access for syncing YouTube content.&lt;/p&gt;
&lt;h2&gt;What About Custom DNS like pihole?&lt;/h2&gt;
&lt;p&gt;Ad block through custom dns always works, but it works too well. The reason we use ublock orgin or a browser based ad block is to keep the sites loading correctly and apps functioning properly. It would be trivial for Google to put roadblocks in the way of loading youtube if you block adsense. A good solution, but not the best when it comes to the user experience and using Google Ad supported products.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/oQL9dVsEXT0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>AME Wizard - The Future of Debloat?</title><link>https://christitus.com/ame-wizard-the-future-of-debloat/</link><guid isPermaLink="true">https://christitus.com/ame-wizard-the-future-of-debloat/</guid><description>&lt;p&gt;I recently made a review of AtlasOS and what drove it is the AME Wizard made by a different entity. This overviews it and what it is and is NOT!&lt;/p&gt;

&lt;h2&gt;Can we trust it?&lt;/h2&gt;
&lt;p&gt;Their is parts of it that are open-source and other parts are closed source and gated behind the &lt;a href=&quot;https://ameliorated.io/&quot;&gt;https://ameliorated.io/&lt;/a&gt; team. This is done for monetary purposes and security. They do gate the playbook process and AME Wizard verification. They can also charge for auto-updates related to the playbooks.&lt;/p&gt;
&lt;p&gt;Personally, I don&apos;t mind this approach, but it does give me pause. When they are getting money for maintaining multiple custom windows playbooks from different teams, it will make it more secure as the incentive to remain virus-free and legitimate is more important because they make money from their reputation.&lt;/p&gt;
&lt;p&gt;Right now to immediately get verified you can go through their patreon and for $10/Month you get verified playbook publications.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/ame/verified.webp&quot; alt=&quot;Verified&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;My Recommendations&lt;/h2&gt;
&lt;p&gt;It is still the early days of these custom windows installs. Right now they only have a handful of patreon donations and until they start making a considerable amount, I can&apos;t recommend it.&lt;/p&gt;
&lt;p&gt;The documentation for making custom playbooks or using the open-source cli program is not out right now. This makes it a project I can&apos;t verify or use, because all the playbooks I&apos;ve seen just strip out too many things to either recommend or use as a daily driver.&lt;/p&gt;
&lt;p&gt;The future of the project is really bright, and I look forward to seeing the continued evolution of it.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/Y35Prm8nG40&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Sat, 06 May 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I recently made a review of AtlasOS and what drove it is the AME Wizard made by a different entity. This overviews it and what it is and is NOT!&lt;/p&gt;

&lt;h2&gt;Can we trust it?&lt;/h2&gt;
&lt;p&gt;Their is parts of it that are open-source and other parts are closed source and gated behind the &lt;a href=&quot;https://ameliorated.io/&quot;&gt;https://ameliorated.io/&lt;/a&gt; team. This is done for monetary purposes and security. They do gate the playbook process and AME Wizard verification. They can also charge for auto-updates related to the playbooks.&lt;/p&gt;
&lt;p&gt;Personally, I don&apos;t mind this approach, but it does give me pause. When they are getting money for maintaining multiple custom windows playbooks from different teams, it will make it more secure as the incentive to remain virus-free and legitimate is more important because they make money from their reputation.&lt;/p&gt;
&lt;p&gt;Right now to immediately get verified you can go through their patreon and for $10/Month you get verified playbook publications.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/ame/verified.webp&quot; alt=&quot;Verified&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;My Recommendations&lt;/h2&gt;
&lt;p&gt;It is still the early days of these custom windows installs. Right now they only have a handful of patreon donations and until they start making a considerable amount, I can&apos;t recommend it.&lt;/p&gt;
&lt;p&gt;The documentation for making custom playbooks or using the open-source cli program is not out right now. This makes it a project I can&apos;t verify or use, because all the playbooks I&apos;ve seen just strip out too many things to either recommend or use as a daily driver.&lt;/p&gt;
&lt;p&gt;The future of the project is really bright, and I look forward to seeing the continued evolution of it.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/Y35Prm8nG40&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>AtlasOS Review</title><link>https://christitus.com/atlasos-review/</link><guid isPermaLink="true">https://christitus.com/atlasos-review/</guid><description>&lt;p&gt;I don&apos;t review Custom ISO or Custom Windows. Anything that requires downloading ISO is an immediate red flag. AtlasOS takes a different approach using official Microsoft ISOs and modifying them using an open source tool.&lt;/p&gt;

&lt;h2&gt;What is it?&lt;/h2&gt;
&lt;p&gt;A stripped version of windows that has had a LOT of Microsoft&apos;s tools and bloat removed. It is NOT to be used lightly or by an uneducated or non-tech savvy person! However, in the right hands it can be a good tool when you have a specific need, but I would NOT daily drive it.&lt;/p&gt;
&lt;h2&gt;The Main Issues&lt;/h2&gt;
&lt;p&gt;I take issue with its main marketing being &quot;secure&quot;, when it is anything but secure. I do not like Defender, Edge, MRT, or any numerous microsoft security projects built in to Windows, but saying you are more secure by not having them is madness.&lt;/p&gt;
&lt;p&gt;They did make a thread about this on twitter below addressing some of the backlash since the Linus Tech Tips coverage.&lt;/p&gt;
&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/AtlasOS/status/1651284816489336832&quot;&gt;View post by @AtlasOS on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;AtlasOS 22H2 (Current Release) has the following security issues:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No Windows Updates (Updates are done manually using their EXE tool and this can be hit and miss)&lt;/li&gt;
&lt;li&gt;MRT is missing. (Malicious Removal Tool)&lt;/li&gt;
&lt;li&gt;Defender is gone. (Good performance boost, but most people need an Anti-Virus.)&lt;/li&gt;
&lt;li&gt;Anything related to SecHealth, HealthCheck, MsMpEng, SmartScreen, and any Misc. Tools for virus or malware protection.&lt;/li&gt;
&lt;li&gt;Some security improvements in Networking configuration were made, but they disable most logging which makes it less secure.&lt;/li&gt;
&lt;li&gt;Automatic Elevation of Admin without Consent Ex. &lt;code&gt;ConsentPromptBehaviorAdmin&lt;/code&gt; entry &lt;code&gt;0&lt;/code&gt; - Will NOT prompt user.&lt;/li&gt;
&lt;li&gt;Virtualization Based security&lt;/li&gt;
&lt;li&gt;Spectre and Meltdown mitigations removed&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;What Else was Removed?&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Microsoft Edge&lt;/li&gt;
&lt;li&gt;Internet Explorer&lt;/li&gt;
&lt;li&gt;WebView&lt;/li&gt;
&lt;li&gt;OneDrive&lt;/li&gt;
&lt;li&gt;MSPaint&lt;/li&gt;
&lt;li&gt;OneNote&lt;/li&gt;
&lt;li&gt;OfficeHub&lt;/li&gt;
&lt;li&gt;Solitare&lt;/li&gt;
&lt;li&gt;Many other MS Store Apps (Maps, Feedbackhub, Camera, etc.)&lt;/li&gt;
&lt;li&gt;Error Reporting&lt;/li&gt;
&lt;li&gt;Telemetry&lt;/li&gt;
&lt;li&gt;Logging (Printer, Events, Etc.)&lt;/li&gt;
&lt;li&gt;Windows Restore and Restore Points&lt;/li&gt;
&lt;li&gt;Remote Assistance&lt;/li&gt;
&lt;li&gt;Microsoft Sign-In (Login for PC)&lt;/li&gt;
&lt;li&gt;Background Apps&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Improvement suggestions for AtlasOS&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Defrag tasks should be left alone. Windows Defrag does utilize TRIM on ssd&apos;s and should be run.&lt;/li&gt;
&lt;li&gt;Disk Cleanup tasks are also beneficial.&lt;/li&gt;
&lt;li&gt;Inform the public that this is a VERY INSECURE spin that is an EXTREME DEBLOAT!&lt;/li&gt;
&lt;li&gt;Offer a Security flavor that has all the security issues addresed&lt;/li&gt;
&lt;li&gt;Enable VBS (Virtualization based security) - In testing this netted no performance gains&lt;/li&gt;
&lt;li&gt;Logging needs to be more robust and is too stripped down. Troubleshooting an AtlasOS system would be a nightmare.&lt;/li&gt;
&lt;li&gt;Fill out the &quot;what is removed section&quot; in FAQ.&lt;/li&gt;
&lt;li&gt;Better documentation. Example: unpacking the playbook with the password &lt;code&gt;malte&lt;/code&gt; is hard to find.&lt;/li&gt;
&lt;li&gt;Incorporate basic security hygiene - Check out the project &lt;a href=&quot;https://github.com/securitywithoutborders/hardentools&quot;&gt;https://github.com/securitywithoutborders/hardentools&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Who is this for?&lt;/h2&gt;
&lt;p&gt;Its for someone with a specific purpose in mind. Playing a few games, a kiosk, or using the machine for simple tasks. It is NOT suitable for browsing the internet or using as a daily driver in it&apos;s current state. If you are aware of the security issues, and have the ability to navigate them, it &lt;em&gt;might&lt;/em&gt; be for you. For the average user... HELL NO!&lt;/p&gt;
&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1651325245209341959&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/UICz1S1xuHo&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Thu, 27 Apr 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I don&apos;t review Custom ISO or Custom Windows. Anything that requires downloading ISO is an immediate red flag. AtlasOS takes a different approach using official Microsoft ISOs and modifying them using an open source tool.&lt;/p&gt;

&lt;h2&gt;What is it?&lt;/h2&gt;
&lt;p&gt;A stripped version of windows that has had a LOT of Microsoft&apos;s tools and bloat removed. It is NOT to be used lightly or by an uneducated or non-tech savvy person! However, in the right hands it can be a good tool when you have a specific need, but I would NOT daily drive it.&lt;/p&gt;
&lt;h2&gt;The Main Issues&lt;/h2&gt;
&lt;p&gt;I take issue with its main marketing being &quot;secure&quot;, when it is anything but secure. I do not like Defender, Edge, MRT, or any numerous microsoft security projects built in to Windows, but saying you are more secure by not having them is madness.&lt;/p&gt;
&lt;p&gt;They did make a thread about this on twitter below addressing some of the backlash since the Linus Tech Tips coverage.&lt;/p&gt;
&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/AtlasOS/status/1651284816489336832&quot;&gt;View post by @AtlasOS on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;AtlasOS 22H2 (Current Release) has the following security issues:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No Windows Updates (Updates are done manually using their EXE tool and this can be hit and miss)&lt;/li&gt;
&lt;li&gt;MRT is missing. (Malicious Removal Tool)&lt;/li&gt;
&lt;li&gt;Defender is gone. (Good performance boost, but most people need an Anti-Virus.)&lt;/li&gt;
&lt;li&gt;Anything related to SecHealth, HealthCheck, MsMpEng, SmartScreen, and any Misc. Tools for virus or malware protection.&lt;/li&gt;
&lt;li&gt;Some security improvements in Networking configuration were made, but they disable most logging which makes it less secure.&lt;/li&gt;
&lt;li&gt;Automatic Elevation of Admin without Consent Ex. &lt;code&gt;ConsentPromptBehaviorAdmin&lt;/code&gt; entry &lt;code&gt;0&lt;/code&gt; - Will NOT prompt user.&lt;/li&gt;
&lt;li&gt;Virtualization Based security&lt;/li&gt;
&lt;li&gt;Spectre and Meltdown mitigations removed&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;What Else was Removed?&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Microsoft Edge&lt;/li&gt;
&lt;li&gt;Internet Explorer&lt;/li&gt;
&lt;li&gt;WebView&lt;/li&gt;
&lt;li&gt;OneDrive&lt;/li&gt;
&lt;li&gt;MSPaint&lt;/li&gt;
&lt;li&gt;OneNote&lt;/li&gt;
&lt;li&gt;OfficeHub&lt;/li&gt;
&lt;li&gt;Solitare&lt;/li&gt;
&lt;li&gt;Many other MS Store Apps (Maps, Feedbackhub, Camera, etc.)&lt;/li&gt;
&lt;li&gt;Error Reporting&lt;/li&gt;
&lt;li&gt;Telemetry&lt;/li&gt;
&lt;li&gt;Logging (Printer, Events, Etc.)&lt;/li&gt;
&lt;li&gt;Windows Restore and Restore Points&lt;/li&gt;
&lt;li&gt;Remote Assistance&lt;/li&gt;
&lt;li&gt;Microsoft Sign-In (Login for PC)&lt;/li&gt;
&lt;li&gt;Background Apps&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Improvement suggestions for AtlasOS&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Defrag tasks should be left alone. Windows Defrag does utilize TRIM on ssd&apos;s and should be run.&lt;/li&gt;
&lt;li&gt;Disk Cleanup tasks are also beneficial.&lt;/li&gt;
&lt;li&gt;Inform the public that this is a VERY INSECURE spin that is an EXTREME DEBLOAT!&lt;/li&gt;
&lt;li&gt;Offer a Security flavor that has all the security issues addresed&lt;/li&gt;
&lt;li&gt;Enable VBS (Virtualization based security) - In testing this netted no performance gains&lt;/li&gt;
&lt;li&gt;Logging needs to be more robust and is too stripped down. Troubleshooting an AtlasOS system would be a nightmare.&lt;/li&gt;
&lt;li&gt;Fill out the &quot;what is removed section&quot; in FAQ.&lt;/li&gt;
&lt;li&gt;Better documentation. Example: unpacking the playbook with the password &lt;code&gt;malte&lt;/code&gt; is hard to find.&lt;/li&gt;
&lt;li&gt;Incorporate basic security hygiene - Check out the project &lt;a href=&quot;https://github.com/securitywithoutborders/hardentools&quot;&gt;https://github.com/securitywithoutborders/hardentools&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Who is this for?&lt;/h2&gt;
&lt;p&gt;Its for someone with a specific purpose in mind. Playing a few games, a kiosk, or using the machine for simple tasks. It is NOT suitable for browsing the internet or using as a daily driver in it&apos;s current state. If you are aware of the security issues, and have the ability to navigate them, it &lt;em&gt;might&lt;/em&gt; be for you. For the average user... HELL NO!&lt;/p&gt;
&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1651325245209341959&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/UICz1S1xuHo&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>TitusPi 3.0</title><link>https://christitus.com/tituspi-2023/</link><guid isPermaLink="true">https://christitus.com/tituspi-2023/</guid><description>&lt;p&gt;TitusPi is a raspberrypi desktop that can play retro games and also substitute for a full desktop.&lt;/p&gt;

&lt;h2&gt;What is it?&lt;/h2&gt;
&lt;p&gt;Linux ARM is at its roots using the Raspbian server lite spin. Official Raspbian Desktop uses XFCE and I don&apos;t like it&apos;s configuration, look, or performance. TitusPi changes it to what I have found to be the best for a new user.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;KDE Desktop&lt;/li&gt;
&lt;li&gt;Optimized for RaspberryPi 3 and 4&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;How is Different from Raspbian Desktop?&lt;/h2&gt;
&lt;p&gt;The desktop offers much better customization, style, and features compared to the official one. The stock KDE experience has performance issues due to the compositing. I optimized this by disabling the compositor in KWIN and making the entire interface much more responsive.&lt;/p&gt;
&lt;p&gt;A customized terminal using my &lt;a href=&quot;https://github.com/ChrisTitusTech/mybash&quot;&gt;custom bash settings&lt;/a&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Terminal&lt;/th&gt;
&lt;th&gt;Desktop&lt;/th&gt;
&lt;th&gt;KDE Profile&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;/images/2023/tituspi/terminal.webp&quot; alt=&quot;Terminal&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;/images/2023/tituspi/desktop.webp&quot; alt=&quot;Desktop&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;/images/2023/tituspi/konsave.webp&quot; alt=&quot;Konsave&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;Build instructions&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Install Raspberry Pi OS LITE (NOT THE DESKTOP)&lt;/li&gt;
&lt;li&gt;From console on login use &lt;code&gt;tasksel&lt;/code&gt; and select KDE&lt;/li&gt;
&lt;li&gt;Modify KDE to DISABLE composition in KWIN (Massive performance boost)&lt;/li&gt;
&lt;li&gt;Modify &lt;code&gt;/boot/cmdline.txt&lt;/code&gt; for leverage graphics acceleration and other boot modifications (quiet boot).&lt;/li&gt;
&lt;li&gt;Use &lt;a href=&quot;https://github.com/Prayag2/konsave&quot;&gt;konsave&lt;/a&gt; and tituspi.knsv (extracted from tituspi.7z files - 7Zip Required) to copy fonts, KDE settings and more!&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;disable_splash=1
disable_overscan=1
hdmi_group=1
hdmi_mode=4
hdmi_drive=2
hdmi_ignore_cec_init=1
arm_freq=2048
v3d_freq=750
over_voltage=6
dtparam=i2c_arm=on
dtparam=audio=on
enable_uart=1
[pi4]
dtoverlay=vc4-fkms-v3d
[all]
hdmi_enable_4kp60=1
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;boot cmdline.txt explainations&lt;/h4&gt;
&lt;p&gt;&amp;lt;&lt;a href=&quot;http://www.raspberrypi.org/documentation/hardware/raspberrypi/revision-codes/README.md&quot;&gt;www.raspberrypi.org/documentation/hardware/raspberrypi/revision-codes/README.md&lt;/a&gt;&amp;gt;
&amp;lt;&lt;a href=&quot;http://www.cnx-software.com/2020/02/24/raspberry-pi-4-rev-1-2-fixes-usb-c-power-issues-improves-sd-card-resilience/&quot;&gt;www.cnx-software.com/2020/02/24/raspberry-pi-4-rev-1-2-fixes-usb-c-power-issues-improves-sd-card-resilience/&lt;/a&gt;&amp;gt;&lt;/p&gt;
&lt;p&gt;Seems my RPi4 version is more sensitive to what chargers I can use, therefore limits overclocking options.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cat /proc/cpuinfo | grep Revision
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;Revision : c03111&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h5&gt;Overclocking&lt;/h5&gt;
&lt;p&gt;Reference: &amp;lt;&lt;a href=&quot;http://www.raspberrypi.org/documentation/configuration/config-txt/overclocking.md&quot;&gt;www.raspberrypi.org/documentation/configuration/config-txt/overclocking.md&lt;/a&gt;&amp;gt;&lt;/p&gt;
&lt;p&gt;These are the speeds I achieve with arm_freq=2048. arm_freq=2047 reports a lower scaling_max_freq which can be noticed in games like God of War: Chains of Olympus (one of the games I used as benchmark). v3d_freq=750 is the max GPU overclock, over_voltage=6 required to provide extra juice (over_voltage=5 worked for me with arm_freq=2000).&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;2194967&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;echo performance &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;vcgencmd measure_clock arm
frequency(48)=2048519552&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As for hdmi_enable_4kp60=1 I also use it for overclocking reasons, as the only way to increase the GPU core_freq from 500 to 550, enable_tvout underclocks to 360:
&quot;Specific to Pi 4B: The core_freq of the Raspberry Pi 4 can change from the default if either hdmi_enable_4kp60 or enable_tvout are used, due to relationship between internal clocks and the particular requirements of the requested display modes.&quot;&lt;/p&gt;
&lt;h5&gt;HDMI options and resolution&lt;/h5&gt;
&lt;p&gt;Reference: &amp;lt;&lt;a href=&quot;http://www.raspberrypi.org/documentation/configuration/config-txt/video.md&quot;&gt;www.raspberrypi.org/documentation/configuration/config-txt/video.md&lt;/a&gt;&amp;gt;&lt;/p&gt;
&lt;p&gt;hdmi_group=1, hdmi_mode=4, hdmi_drive=2 : these options set the RPi at 16:9 720p using the standard CEA TV timings and sending audio through HDMI.&lt;/p&gt;
&lt;p&gt;hdmi_ignore_cec_init=1 &quot;prevents a CEC-enabled TV from coming out of standby and channel-switching when you are rebooting your Raspberry Pi.&quot;
Channel switching on reboots was quite annoying indeed :)&lt;/p&gt;
&lt;h5&gt;No gpu_mem parameters??&lt;/h5&gt;
&lt;p&gt;Reference: &amp;lt;&lt;a href=&quot;http://www.raspberrypi.org/documentation/configuration/config-txt/memory.md&quot;&gt;www.raspberrypi.org/documentation/configuration/config-txt/memory.md&lt;/a&gt;&amp;gt;&lt;/p&gt;
&lt;p&gt;That&apos;s right! :) &quot;On the Raspberry Pi 4 the 3D component of the GPU has its own memory management unit (MMU), and does not use memory from the gpu_mem allocation. Instead memory is allocated dynamically within Linux. This may allow a smaller value to be specified for gpu_mem on the Pi 4, compared to previous models.&quot; Note: Still recommended for Pi 3&apos;s if using for emulation!&lt;/p&gt;
&lt;p&gt;The performance of N64 Conker&apos;s Bad Fur Day increased noticeably after removing all gpu_mem parameters.&lt;/p&gt;
&lt;p&gt;Information pulled from retropie community forum: &lt;a href=&quot;https://retropie.org.uk/forum/topic/27430/howto-optimized-boot-config-txt&quot;&gt;https://retropie.org.uk/forum/topic/27430/howto-optimized-boot-config-txt&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;RetroPie Addition&lt;/h3&gt;
&lt;p&gt;Check official documentation from RetroPie @ &lt;a href=&quot;https://retropie.org.uk/docs/Manual-Installation/&quot;&gt;https://retropie.org.uk/docs/Manual-Installation/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/z6Ut8zSCczU&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Tue, 25 Apr 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;TitusPi is a raspberrypi desktop that can play retro games and also substitute for a full desktop.&lt;/p&gt;

&lt;h2&gt;What is it?&lt;/h2&gt;
&lt;p&gt;Linux ARM is at its roots using the Raspbian server lite spin. Official Raspbian Desktop uses XFCE and I don&apos;t like it&apos;s configuration, look, or performance. TitusPi changes it to what I have found to be the best for a new user.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;KDE Desktop&lt;/li&gt;
&lt;li&gt;Optimized for RaspberryPi 3 and 4&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;How is Different from Raspbian Desktop?&lt;/h2&gt;
&lt;p&gt;The desktop offers much better customization, style, and features compared to the official one. The stock KDE experience has performance issues due to the compositing. I optimized this by disabling the compositor in KWIN and making the entire interface much more responsive.&lt;/p&gt;
&lt;p&gt;A customized terminal using my &lt;a href=&quot;https://github.com/ChrisTitusTech/mybash&quot;&gt;custom bash settings&lt;/a&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Terminal&lt;/th&gt;
&lt;th&gt;Desktop&lt;/th&gt;
&lt;th&gt;KDE Profile&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;/images/2023/tituspi/terminal.webp&quot; alt=&quot;Terminal&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;/images/2023/tituspi/desktop.webp&quot; alt=&quot;Desktop&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;/images/2023/tituspi/konsave.webp&quot; alt=&quot;Konsave&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;Build instructions&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Install Raspberry Pi OS LITE (NOT THE DESKTOP)&lt;/li&gt;
&lt;li&gt;From console on login use &lt;code&gt;tasksel&lt;/code&gt; and select KDE&lt;/li&gt;
&lt;li&gt;Modify KDE to DISABLE composition in KWIN (Massive performance boost)&lt;/li&gt;
&lt;li&gt;Modify &lt;code&gt;/boot/cmdline.txt&lt;/code&gt; for leverage graphics acceleration and other boot modifications (quiet boot).&lt;/li&gt;
&lt;li&gt;Use &lt;a href=&quot;https://github.com/Prayag2/konsave&quot;&gt;konsave&lt;/a&gt; and tituspi.knsv (extracted from tituspi.7z files - 7Zip Required) to copy fonts, KDE settings and more!&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;disable_splash=1
disable_overscan=1
hdmi_group=1
hdmi_mode=4
hdmi_drive=2
hdmi_ignore_cec_init=1
arm_freq=2048
v3d_freq=750
over_voltage=6
dtparam=i2c_arm=on
dtparam=audio=on
enable_uart=1
[pi4]
dtoverlay=vc4-fkms-v3d
[all]
hdmi_enable_4kp60=1
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;boot cmdline.txt explainations&lt;/h4&gt;
&lt;p&gt;&amp;lt;&lt;a href=&quot;http://www.raspberrypi.org/documentation/hardware/raspberrypi/revision-codes/README.md&quot;&gt;www.raspberrypi.org/documentation/hardware/raspberrypi/revision-codes/README.md&lt;/a&gt;&amp;gt;
&amp;lt;&lt;a href=&quot;http://www.cnx-software.com/2020/02/24/raspberry-pi-4-rev-1-2-fixes-usb-c-power-issues-improves-sd-card-resilience/&quot;&gt;www.cnx-software.com/2020/02/24/raspberry-pi-4-rev-1-2-fixes-usb-c-power-issues-improves-sd-card-resilience/&lt;/a&gt;&amp;gt;&lt;/p&gt;
&lt;p&gt;Seems my RPi4 version is more sensitive to what chargers I can use, therefore limits overclocking options.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cat /proc/cpuinfo | grep Revision
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;Revision : c03111&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h5&gt;Overclocking&lt;/h5&gt;
&lt;p&gt;Reference: &amp;lt;&lt;a href=&quot;http://www.raspberrypi.org/documentation/configuration/config-txt/overclocking.md&quot;&gt;www.raspberrypi.org/documentation/configuration/config-txt/overclocking.md&lt;/a&gt;&amp;gt;&lt;/p&gt;
&lt;p&gt;These are the speeds I achieve with arm_freq=2048. arm_freq=2047 reports a lower scaling_max_freq which can be noticed in games like God of War: Chains of Olympus (one of the games I used as benchmark). v3d_freq=750 is the max GPU overclock, over_voltage=6 required to provide extra juice (over_voltage=5 worked for me with arm_freq=2000).&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;2194967&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;echo performance &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;vcgencmd measure_clock arm
frequency(48)=2048519552&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As for hdmi_enable_4kp60=1 I also use it for overclocking reasons, as the only way to increase the GPU core_freq from 500 to 550, enable_tvout underclocks to 360:
&quot;Specific to Pi 4B: The core_freq of the Raspberry Pi 4 can change from the default if either hdmi_enable_4kp60 or enable_tvout are used, due to relationship between internal clocks and the particular requirements of the requested display modes.&quot;&lt;/p&gt;
&lt;h5&gt;HDMI options and resolution&lt;/h5&gt;
&lt;p&gt;Reference: &amp;lt;&lt;a href=&quot;http://www.raspberrypi.org/documentation/configuration/config-txt/video.md&quot;&gt;www.raspberrypi.org/documentation/configuration/config-txt/video.md&lt;/a&gt;&amp;gt;&lt;/p&gt;
&lt;p&gt;hdmi_group=1, hdmi_mode=4, hdmi_drive=2 : these options set the RPi at 16:9 720p using the standard CEA TV timings and sending audio through HDMI.&lt;/p&gt;
&lt;p&gt;hdmi_ignore_cec_init=1 &quot;prevents a CEC-enabled TV from coming out of standby and channel-switching when you are rebooting your Raspberry Pi.&quot;
Channel switching on reboots was quite annoying indeed :)&lt;/p&gt;
&lt;h5&gt;No gpu_mem parameters??&lt;/h5&gt;
&lt;p&gt;Reference: &amp;lt;&lt;a href=&quot;http://www.raspberrypi.org/documentation/configuration/config-txt/memory.md&quot;&gt;www.raspberrypi.org/documentation/configuration/config-txt/memory.md&lt;/a&gt;&amp;gt;&lt;/p&gt;
&lt;p&gt;That&apos;s right! :) &quot;On the Raspberry Pi 4 the 3D component of the GPU has its own memory management unit (MMU), and does not use memory from the gpu_mem allocation. Instead memory is allocated dynamically within Linux. This may allow a smaller value to be specified for gpu_mem on the Pi 4, compared to previous models.&quot; Note: Still recommended for Pi 3&apos;s if using for emulation!&lt;/p&gt;
&lt;p&gt;The performance of N64 Conker&apos;s Bad Fur Day increased noticeably after removing all gpu_mem parameters.&lt;/p&gt;
&lt;p&gt;Information pulled from retropie community forum: &lt;a href=&quot;https://retropie.org.uk/forum/topic/27430/howto-optimized-boot-config-txt&quot;&gt;https://retropie.org.uk/forum/topic/27430/howto-optimized-boot-config-txt&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;RetroPie Addition&lt;/h3&gt;
&lt;p&gt;Check official documentation from RetroPie @ &lt;a href=&quot;https://retropie.org.uk/docs/Manual-Installation/&quot;&gt;https://retropie.org.uk/docs/Manual-Installation/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/z6Ut8zSCczU&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Recovering Deleted Windows Boot Partition</title><link>https://christitus.com/recovering-deleted-windows-boot-partition/</link><guid isPermaLink="true">https://christitus.com/recovering-deleted-windows-boot-partition/</guid><description>&lt;p&gt;Is your Windows boot partition missing? This guide fixes it!&lt;/p&gt;

&lt;h2&gt;Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Windows Boot media Download here: &lt;a href=&quot;https://www.microsoft.com/software-download/windows11&quot;&gt;https://www.microsoft.com/software-download/windows11&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Linux Live USB for partition resizing. I recommend gparted: &lt;a href=&quot;https://gparted.org/download.php&quot;&gt;https://gparted.org/download.php&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Partitioning the Drive&lt;/h2&gt;
&lt;p&gt;This is meant for a GPT Drive using EFI boot on a modern Windows. If you computer is less than 5 years old, this is probably how your system is setup. If you are using an old system it might be DOS/MBR based and this guide is NOT to be used!&lt;/p&gt;
&lt;p&gt;From Gparted in Linux create a FAT32 partition at least 300 MB in size with the &lt;code&gt;boot&lt;/code&gt; flag.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/recover-deleted-partition/bootflag.webp&quot; alt=&quot;bootflag&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Copy Boot Files from Windows ISO&lt;/h2&gt;
&lt;p&gt;Boot into your Windows ISO you downloaded above and press &lt;code&gt;Shift + F10&lt;/code&gt; to pull up command prompt&lt;/p&gt;
&lt;p&gt;Run the utility &lt;code&gt;DISKPART&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;list vol&lt;/code&gt; - list volumes and make note of what they are called&lt;/li&gt;
&lt;li&gt;&lt;code&gt;select partition #&lt;/code&gt; - select the new EFI Partition you created in Gparted&lt;/li&gt;
&lt;li&gt;&lt;code&gt;assign letter g:&lt;/code&gt; - pick something that is NOT C:&lt;/li&gt;
&lt;li&gt;&lt;code&gt;exit&lt;/code&gt; - exit the program&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Note: If you have problems your main partition with the installed windows is probably not assigned as C: and just follow the steps above to assign it letter C:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Create the Boot files on the new EFI partition with &lt;code&gt;bcdboot&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;bcdboot c:\Windows /s g: /f ALL
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Once this is done you can check to see if Windows will detect your boot partition with this command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;bootrec /scanos
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/UGqBZwPIOqc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 24 Apr 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Is your Windows boot partition missing? This guide fixes it!&lt;/p&gt;

&lt;h2&gt;Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Windows Boot media Download here: &lt;a href=&quot;https://www.microsoft.com/software-download/windows11&quot;&gt;https://www.microsoft.com/software-download/windows11&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Linux Live USB for partition resizing. I recommend gparted: &lt;a href=&quot;https://gparted.org/download.php&quot;&gt;https://gparted.org/download.php&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Partitioning the Drive&lt;/h2&gt;
&lt;p&gt;This is meant for a GPT Drive using EFI boot on a modern Windows. If you computer is less than 5 years old, this is probably how your system is setup. If you are using an old system it might be DOS/MBR based and this guide is NOT to be used!&lt;/p&gt;
&lt;p&gt;From Gparted in Linux create a FAT32 partition at least 300 MB in size with the &lt;code&gt;boot&lt;/code&gt; flag.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/recover-deleted-partition/bootflag.webp&quot; alt=&quot;bootflag&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Copy Boot Files from Windows ISO&lt;/h2&gt;
&lt;p&gt;Boot into your Windows ISO you downloaded above and press &lt;code&gt;Shift + F10&lt;/code&gt; to pull up command prompt&lt;/p&gt;
&lt;p&gt;Run the utility &lt;code&gt;DISKPART&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;list vol&lt;/code&gt; - list volumes and make note of what they are called&lt;/li&gt;
&lt;li&gt;&lt;code&gt;select partition #&lt;/code&gt; - select the new EFI Partition you created in Gparted&lt;/li&gt;
&lt;li&gt;&lt;code&gt;assign letter g:&lt;/code&gt; - pick something that is NOT C:&lt;/li&gt;
&lt;li&gt;&lt;code&gt;exit&lt;/code&gt; - exit the program&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Note: If you have problems your main partition with the installed windows is probably not assigned as C: and just follow the steps above to assign it letter C:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Create the Boot files on the new EFI partition with &lt;code&gt;bcdboot&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;bcdboot c:\Windows /s g: /f ALL
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Once this is done you can check to see if Windows will detect your boot partition with this command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;bootrec /scanos
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/UGqBZwPIOqc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Tiny11 Has Problems</title><link>https://christitus.com/tiny11-has-problems/</link><guid isPermaLink="true">https://christitus.com/tiny11-has-problems/</guid><description>&lt;p&gt;Using any custom Windows ISO is problematic for many reasons outlined in this article.&lt;/p&gt;

&lt;h2&gt;The Main Problems&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Botnets&lt;/li&gt;
&lt;li&gt;Viruses&lt;/li&gt;
&lt;li&gt;Keyloggers&lt;/li&gt;
&lt;li&gt;Crypto Miners&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;But what about Virus scan? Tiny11 is CLEAN!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Antivirus is just a security layer and should NEVER be relied on. More often than not, it will allow viruses through or classify legit programs as viruses.&lt;/p&gt;
&lt;h3&gt;How do they bypass Antivirus?&lt;/h3&gt;
&lt;p&gt;When you are distributing an entire operating system, like Tiny11, anything can be modified. Keyloggers can be loaded before an antivirus or have them part of edge. You could steal session tokens from your logged in accounts, or modify Windows defender to exclude the viruses at a system level.&lt;/p&gt;
&lt;h3&gt;By why would Tiny11 do this?&lt;/h3&gt;
&lt;p&gt;Redistributing any form of a modified Windows is illegal. A man was sentenced to 15 months in prison just for Redistributing restore discs preventing ewaste &lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://www.polygon.com/windows/2018/4/25/17280178/eric-lundgren-windows-restore-disks-microsoft-prison&quot;&gt;https://www.polygon.com/windows/2018/4/25/17280178/eric-lundgren-windows-restore-disks-microsoft-prison&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Not only is the Tiny11 developer risking prison time if caught, but what motivates any custom iso maker given the risks? These are real questions that anyone with ANY common sense would come to the conclusion there has to be a payout somewhere. A small harmless program using your system to mine resources? keylogging passwords or credit cards? Spread chaos? or use you to attack others in a Botnet?&lt;/p&gt;
&lt;p&gt;All these are strong motivators, but it&apos;s possible they are breaking the law just so you can have a clean version of Windows out of the goodness in their heart. You decide, but don&apos;t be shocked when you are compromised when using any custom ISO.&lt;/p&gt;
&lt;h2&gt;Building Yourself&lt;/h2&gt;
&lt;p&gt;Build with &lt;a href=&quot;https://github.com/ntdevlabs/tiny11builder&quot;&gt;https://github.com/ntdevlabs/tiny11builder&lt;/a&gt;, but do NOT use the oscdimg.exe as the signing is missing a proper timestamp. Always use official Microsoft tools from their website. oscdimg.exe is included in the Windows ADK Package located @ &lt;a href=&quot;https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install&quot;&gt;https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why should you not trust digital signatures&lt;/strong&gt; - Check out the latest hack from 3cx and it exploiting them in this article: &lt;a href=&quot;https://www.bleepingcomputer.com/news/microsoft/10-year-old-windows-bug-with-opt-in-fix-exploited-in-3cx-attack/&quot;&gt;https://www.bleepingcomputer.com/news/microsoft/10-year-old-windows-bug-with-opt-in-fix-exploited-in-3cx-attack/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/3UVKfliA_Rc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 07 Apr 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Using any custom Windows ISO is problematic for many reasons outlined in this article.&lt;/p&gt;

&lt;h2&gt;The Main Problems&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Botnets&lt;/li&gt;
&lt;li&gt;Viruses&lt;/li&gt;
&lt;li&gt;Keyloggers&lt;/li&gt;
&lt;li&gt;Crypto Miners&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;But what about Virus scan? Tiny11 is CLEAN!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Antivirus is just a security layer and should NEVER be relied on. More often than not, it will allow viruses through or classify legit programs as viruses.&lt;/p&gt;
&lt;h3&gt;How do they bypass Antivirus?&lt;/h3&gt;
&lt;p&gt;When you are distributing an entire operating system, like Tiny11, anything can be modified. Keyloggers can be loaded before an antivirus or have them part of edge. You could steal session tokens from your logged in accounts, or modify Windows defender to exclude the viruses at a system level.&lt;/p&gt;
&lt;h3&gt;By why would Tiny11 do this?&lt;/h3&gt;
&lt;p&gt;Redistributing any form of a modified Windows is illegal. A man was sentenced to 15 months in prison just for Redistributing restore discs preventing ewaste &lt;em&gt;Source:&lt;/em&gt; &lt;a href=&quot;https://www.polygon.com/windows/2018/4/25/17280178/eric-lundgren-windows-restore-disks-microsoft-prison&quot;&gt;https://www.polygon.com/windows/2018/4/25/17280178/eric-lundgren-windows-restore-disks-microsoft-prison&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Not only is the Tiny11 developer risking prison time if caught, but what motivates any custom iso maker given the risks? These are real questions that anyone with ANY common sense would come to the conclusion there has to be a payout somewhere. A small harmless program using your system to mine resources? keylogging passwords or credit cards? Spread chaos? or use you to attack others in a Botnet?&lt;/p&gt;
&lt;p&gt;All these are strong motivators, but it&apos;s possible they are breaking the law just so you can have a clean version of Windows out of the goodness in their heart. You decide, but don&apos;t be shocked when you are compromised when using any custom ISO.&lt;/p&gt;
&lt;h2&gt;Building Yourself&lt;/h2&gt;
&lt;p&gt;Build with &lt;a href=&quot;https://github.com/ntdevlabs/tiny11builder&quot;&gt;https://github.com/ntdevlabs/tiny11builder&lt;/a&gt;, but do NOT use the oscdimg.exe as the signing is missing a proper timestamp. Always use official Microsoft tools from their website. oscdimg.exe is included in the Windows ADK Package located @ &lt;a href=&quot;https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install&quot;&gt;https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why should you not trust digital signatures&lt;/strong&gt; - Check out the latest hack from 3cx and it exploiting them in this article: &lt;a href=&quot;https://www.bleepingcomputer.com/news/microsoft/10-year-old-windows-bug-with-opt-in-fix-exploited-in-3cx-attack/&quot;&gt;https://www.bleepingcomputer.com/news/microsoft/10-year-old-windows-bug-with-opt-in-fix-exploited-in-3cx-attack/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/3UVKfliA_Rc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Changes</title><link>https://christitus.com/changes/</link><guid isPermaLink="true">https://christitus.com/changes/</guid><description>&lt;p&gt;Moving to Twitch from YouTube in 2023... for project development and daily work.&lt;/p&gt;

&lt;h2&gt;Why&lt;/h2&gt;
&lt;p&gt;This was not a monetary decision, YouTube will pay more than Twitch, but I have done enough YouTube videos to understand that my growth from a personal level will be limited with YouTube&apos;s 3 videos a-week schedule. By moving to Twitch, I can live stream project work and not rely on finishing projects every 1-2 days to make videos. I can do larger projects and make more polished ones that aren&apos;t rushed out before moving to the next video.&lt;/p&gt;
&lt;h2&gt;Growth&lt;/h2&gt;
&lt;p&gt;By focusing on one project for a week, a month, or more... I can grow my skills much faster and in a way that will benefit all, including myself.&lt;/p&gt;
&lt;h2&gt;Money&lt;/h2&gt;
&lt;p&gt;YouTube pays me roughly $3000-$4000 in ad revenue per month pre-tax. Twitch is about $100 per month.&lt;/p&gt;
&lt;p&gt;By switching, and reducing my YouTube content, I anticipate a 50%-70% reduction from YouTube, but Twitch would need to make $2000 a month to balance this out. I&apos;m not sure if that is possible, but I can make this up in real life outside of social media if needed.&lt;/p&gt;
&lt;h2&gt;Youtube Future&lt;/h2&gt;
&lt;p&gt;I would have liked to keep everything on YouTube with live streams, but after looking at a year of doing that on YouTube, I would be better off doing nothing over there based on past performance. Its live streaming is not good from a broken chat moderation system, lack of features, and having live streams on youtube hurts video content on the same channel from doing it over 100 times.&lt;/p&gt;
&lt;p&gt;For videos, I will only make a video once a project wraps up or has a major update. I won&apos;t make a video to meet a quota or meet an arbitrary schedule. I&apos;ll publish a video when there is major progress on a project from the Twitch streams.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/hv3bfDhEyAI&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Tue, 21 Mar 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Moving to Twitch from YouTube in 2023... for project development and daily work.&lt;/p&gt;

&lt;h2&gt;Why&lt;/h2&gt;
&lt;p&gt;This was not a monetary decision, YouTube will pay more than Twitch, but I have done enough YouTube videos to understand that my growth from a personal level will be limited with YouTube&apos;s 3 videos a-week schedule. By moving to Twitch, I can live stream project work and not rely on finishing projects every 1-2 days to make videos. I can do larger projects and make more polished ones that aren&apos;t rushed out before moving to the next video.&lt;/p&gt;
&lt;h2&gt;Growth&lt;/h2&gt;
&lt;p&gt;By focusing on one project for a week, a month, or more... I can grow my skills much faster and in a way that will benefit all, including myself.&lt;/p&gt;
&lt;h2&gt;Money&lt;/h2&gt;
&lt;p&gt;YouTube pays me roughly $3000-$4000 in ad revenue per month pre-tax. Twitch is about $100 per month.&lt;/p&gt;
&lt;p&gt;By switching, and reducing my YouTube content, I anticipate a 50%-70% reduction from YouTube, but Twitch would need to make $2000 a month to balance this out. I&apos;m not sure if that is possible, but I can make this up in real life outside of social media if needed.&lt;/p&gt;
&lt;h2&gt;Youtube Future&lt;/h2&gt;
&lt;p&gt;I would have liked to keep everything on YouTube with live streams, but after looking at a year of doing that on YouTube, I would be better off doing nothing over there based on past performance. Its live streaming is not good from a broken chat moderation system, lack of features, and having live streams on youtube hurts video content on the same channel from doing it over 100 times.&lt;/p&gt;
&lt;p&gt;For videos, I will only make a video once a project wraps up or has a major update. I won&apos;t make a video to meet a quota or meet an arbitrary schedule. I&apos;ll publish a video when there is major progress on a project from the Twitch streams.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/hv3bfDhEyAI&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Microsoft Is Driving Users Away</title><link>https://christitus.com/microsoft-is-driving-users-away/</link><guid isPermaLink="true">https://christitus.com/microsoft-is-driving-users-away/</guid><description>&lt;p&gt;What will be the end of Windows? Microsoft.&lt;/p&gt;

&lt;p&gt;I&apos;ve been a lifelong Windows user since the 90s and even MS-DOS back in the 80s, but things are changing. I&apos;ve been using other operating systems more and more. MacOS and Linux are getting mixed into my workflow more and Windows less. Why? Microsoft is actively angering it power users by removing features. By trying to simplify Windows they are actively making administering it worse.&lt;/p&gt;
&lt;h2&gt;The Problem&lt;/h2&gt;
&lt;p&gt;Microsoft is in a panic from the continued loss of it&apos;s user base. They are making some improvements like the GUI and cleaning up other elements that give a more cohesive look. No more mixing Metro UI and Legacy panels like Windows 10. While this is good on the surface, they aren&apos;t fixing anything. In fact, things are about to get much worse with the removal of these panels. On Tuesday, I had a printer issue at a client site and I was going to pull up the &quot;Devices and Printers&quot; panel to manage the drives and printing default settings. In the most recent 22H2 Windows 11 update, they hid it!&lt;/p&gt;
&lt;p&gt;Using old Control Panel (Start-&amp;gt;Run-&amp;gt;&lt;code&gt;control&lt;/code&gt;)&lt;/p&gt;
&lt;p&gt;Clicking on this will redirect you to the new settings printer that gives NO options to do any advanced troubleshooting and removes the ability to FIX the issue!&lt;/p&gt;
&lt;p&gt;What about the old &lt;code&gt;control printers&lt;/code&gt; shortcut? remapped to the new crap.&lt;/p&gt;
&lt;h2&gt;The Solution&lt;/h2&gt;
&lt;p&gt;With any Windows problem, Microsoft never really removes ANYTHING! Remember, this company is still using legacy code from the 90s in spots and just slapping in new coat of paint on top of it every 5 years when they need to extract more money from its users.&lt;/p&gt;
&lt;p&gt;To Access the old devices and printer use the run prompt and type the following:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Alternatively, you can create a new shortcut and assign the key combination to it.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create a new shortcut on your desktop&lt;/li&gt;
&lt;li&gt;Set the location to: explorer.exe shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}&lt;/li&gt;
&lt;li&gt;Set the name to Devices and Printers&lt;/li&gt;
&lt;li&gt;Choose the shortcut icon&lt;/li&gt;
&lt;li&gt;Add the key combination shortcut (CTRL + ALT + D is default for this window)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This provides you an easy to access link as well as overwriting the keyboard shortcut to open the old version.&lt;/p&gt;
&lt;p&gt;Success for now...&lt;/p&gt;
&lt;h2&gt;The Future&lt;/h2&gt;
&lt;p&gt;MacOS and Linux will keep gaining market share. Microsoft needs to stop actively sabotaging it&apos;s users. MacOS is bland and hasn&apos;t changed in years, while Linux has a technical barrier of entry with little support. Yet, both of these options are better than modern Windows unless you need Gaming. However, Steam with it&apos;s steamdeck might be changing the game...&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/q7JmN8_URGY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 17 Feb 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;What will be the end of Windows? Microsoft.&lt;/p&gt;

&lt;p&gt;I&apos;ve been a lifelong Windows user since the 90s and even MS-DOS back in the 80s, but things are changing. I&apos;ve been using other operating systems more and more. MacOS and Linux are getting mixed into my workflow more and Windows less. Why? Microsoft is actively angering it power users by removing features. By trying to simplify Windows they are actively making administering it worse.&lt;/p&gt;
&lt;h2&gt;The Problem&lt;/h2&gt;
&lt;p&gt;Microsoft is in a panic from the continued loss of it&apos;s user base. They are making some improvements like the GUI and cleaning up other elements that give a more cohesive look. No more mixing Metro UI and Legacy panels like Windows 10. While this is good on the surface, they aren&apos;t fixing anything. In fact, things are about to get much worse with the removal of these panels. On Tuesday, I had a printer issue at a client site and I was going to pull up the &quot;Devices and Printers&quot; panel to manage the drives and printing default settings. In the most recent 22H2 Windows 11 update, they hid it!&lt;/p&gt;
&lt;p&gt;Using old Control Panel (Start-&amp;gt;Run-&amp;gt;&lt;code&gt;control&lt;/code&gt;)&lt;/p&gt;
&lt;p&gt;Clicking on this will redirect you to the new settings printer that gives NO options to do any advanced troubleshooting and removes the ability to FIX the issue!&lt;/p&gt;
&lt;p&gt;What about the old &lt;code&gt;control printers&lt;/code&gt; shortcut? remapped to the new crap.&lt;/p&gt;
&lt;h2&gt;The Solution&lt;/h2&gt;
&lt;p&gt;With any Windows problem, Microsoft never really removes ANYTHING! Remember, this company is still using legacy code from the 90s in spots and just slapping in new coat of paint on top of it every 5 years when they need to extract more money from its users.&lt;/p&gt;
&lt;p&gt;To Access the old devices and printer use the run prompt and type the following:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Alternatively, you can create a new shortcut and assign the key combination to it.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create a new shortcut on your desktop&lt;/li&gt;
&lt;li&gt;Set the location to: explorer.exe shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}&lt;/li&gt;
&lt;li&gt;Set the name to Devices and Printers&lt;/li&gt;
&lt;li&gt;Choose the shortcut icon&lt;/li&gt;
&lt;li&gt;Add the key combination shortcut (CTRL + ALT + D is default for this window)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This provides you an easy to access link as well as overwriting the keyboard shortcut to open the old version.&lt;/p&gt;
&lt;p&gt;Success for now...&lt;/p&gt;
&lt;h2&gt;The Future&lt;/h2&gt;
&lt;p&gt;MacOS and Linux will keep gaining market share. Microsoft needs to stop actively sabotaging it&apos;s users. MacOS is bland and hasn&apos;t changed in years, while Linux has a technical barrier of entry with little support. Yet, both of these options are better than modern Windows unless you need Gaming. However, Steam with it&apos;s steamdeck might be changing the game...&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/q7JmN8_URGY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Replace Google Fonts With Bunny Fonts</title><link>https://christitus.com/replace-google-fonts-with-bunny-fonts/</link><guid isPermaLink="true">https://christitus.com/replace-google-fonts-with-bunny-fonts/</guid><description>&lt;p&gt;Did you know Google Fonts is bloated and can cause longer load times? Bunny fonts to the rescue!&lt;/p&gt;

&lt;p&gt;Oh, I forgot to mention, Google fonts is also NOT GDPR compliant. For legal reasons and traffic you might switch over to bunny because it IS GDPR compliant.&lt;/p&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;Wordpress Install: &lt;a href=&quot;https://wordpress.org/plugins/replace-google-fonts-with-bunny-fonts/&quot;&gt;https://wordpress.org/plugins/replace-google-fonts-with-bunny-fonts/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Using a static site like me? or are a web designer? Great! It&apos;s even easier.&lt;/p&gt;
&lt;p&gt;The Bunny Fonts API was designed to be fully compatible with the Google Fonts CSS v1 API, making the switch as easy as changing the hostname.&lt;/p&gt;
&lt;p&gt;Simply swap &lt;code&gt;https://fonts.bunny.net/css&lt;/code&gt; in place of &lt;code&gt;https://fonts.googleapis.com/css&lt;/code&gt; on your website&apos;s source code and let your users enjoy better privacy.&lt;/p&gt;
&lt;p&gt;Thanks to DigitalSparky for the Pull Request and updating my website for me! Here is Bunny font implementation pull request on this website: &lt;a href=&quot;https://github.com/ChrisTitusTech/website/pull/108&quot;&gt;https://github.com/ChrisTitusTech/website/pull/108&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Future Improvements&lt;/h2&gt;
&lt;p&gt;There are so many more improvements to make! Thanks to feedback from users here is the to-do list.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use both Netlify AND Cloudflare utilizing round-robin DNS (Thanks Larry!)&lt;/li&gt;
&lt;li&gt;Fix &quot;Total Blocking Time&quot; delays with either a new theme or using Partytown to debloat Javascript &lt;a href=&quot;https://github.com/BuilderIO/partytown&quot;&gt;https://github.com/BuilderIO/partytown&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/nBcZASOwo1Q&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 15 Feb 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Did you know Google Fonts is bloated and can cause longer load times? Bunny fonts to the rescue!&lt;/p&gt;

&lt;p&gt;Oh, I forgot to mention, Google fonts is also NOT GDPR compliant. For legal reasons and traffic you might switch over to bunny because it IS GDPR compliant.&lt;/p&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;Wordpress Install: &lt;a href=&quot;https://wordpress.org/plugins/replace-google-fonts-with-bunny-fonts/&quot;&gt;https://wordpress.org/plugins/replace-google-fonts-with-bunny-fonts/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Using a static site like me? or are a web designer? Great! It&apos;s even easier.&lt;/p&gt;
&lt;p&gt;The Bunny Fonts API was designed to be fully compatible with the Google Fonts CSS v1 API, making the switch as easy as changing the hostname.&lt;/p&gt;
&lt;p&gt;Simply swap &lt;code&gt;https://fonts.bunny.net/css&lt;/code&gt; in place of &lt;code&gt;https://fonts.googleapis.com/css&lt;/code&gt; on your website&apos;s source code and let your users enjoy better privacy.&lt;/p&gt;
&lt;p&gt;Thanks to DigitalSparky for the Pull Request and updating my website for me! Here is Bunny font implementation pull request on this website: &lt;a href=&quot;https://github.com/ChrisTitusTech/website/pull/108&quot;&gt;https://github.com/ChrisTitusTech/website/pull/108&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Future Improvements&lt;/h2&gt;
&lt;p&gt;There are so many more improvements to make! Thanks to feedback from users here is the to-do list.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use both Netlify AND Cloudflare utilizing round-robin DNS (Thanks Larry!)&lt;/li&gt;
&lt;li&gt;Fix &quot;Total Blocking Time&quot; delays with either a new theme or using Partytown to debloat Javascript &lt;a href=&quot;https://github.com/BuilderIO/partytown&quot;&gt;https://github.com/BuilderIO/partytown&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/nBcZASOwo1Q&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>The Teamviewer Scam</title><link>https://christitus.com/the-teamviewer-scam/</link><guid isPermaLink="true">https://christitus.com/the-teamviewer-scam/</guid><description>&lt;p&gt;This keeps getting worse... removal of lifetime memberships, subscriptions for everything, and now predatory tactics to force it&apos;s users to keep paying by removing cancellations of the subscriptions.&lt;/p&gt;

&lt;h2&gt;Still the most used Remote Software?&lt;/h2&gt;
&lt;p&gt;Teamviewer rose to the #1 spot after logmein stopped offering a free tier. In the beginning it was a great piece of software and even offered a lifetime membership. You pay for it once and have it forever. The free tier was also really nice in a pinch you could load up their software and easily remote in to any PC. To this day, it is one of the most used remote software applications on the market.&lt;/p&gt;
&lt;h2&gt;The Downfall&lt;/h2&gt;
&lt;p&gt;On June 1st, 2021 Teamviewer stopped supporting Teamviewr 9 &amp;amp; 10 versions that had the last of the lifetime subscriptions. This forced anyone that bought these &quot;lifetime&quot; licenses to purchase a subscription or move to a different product. However, something else happened behind the scenes that has NOT been talked about. The Lock in and predatory behaviors were being escalated to force people to continue paying them far beyond their intended expiration date.&lt;/p&gt;
&lt;h2&gt;The Scam&lt;/h2&gt;
&lt;p&gt;Behind the scenes, Teamviewer has removed the ability to CANCEL any subscriptions. This used to not be the case, but you have to create a support ticket to cancel is the official text on their site.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/the-teamviewer-scam/cancel-ticket.webp&quot; alt=&quot;Cancel Ticket&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Finding the support ticket creation is difficult and hidden through a sister site with a DIFFERENT login.&lt;/p&gt;
&lt;p&gt;Use this website: &lt;a href=&quot;https://support.teamviewer.com/en/support/tickets&quot;&gt;https://support.teamviewer.com/en/support/tickets&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you do NOT cancel within 28 days of the renewal you WILL BE CHARGED for an ENTIRE YEAR!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/the-teamviewer-scam/28days.webp&quot; alt=&quot;28days&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Ticket answer time? 7-10 DAYS!&lt;/p&gt;
&lt;p&gt;Need to talk with someone now? Call their phone number at +1-800-638-0253 Use option 4 and then Option 3 to Cancel&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/zbrPQsMK2gU&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 13 Feb 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This keeps getting worse... removal of lifetime memberships, subscriptions for everything, and now predatory tactics to force it&apos;s users to keep paying by removing cancellations of the subscriptions.&lt;/p&gt;

&lt;h2&gt;Still the most used Remote Software?&lt;/h2&gt;
&lt;p&gt;Teamviewer rose to the #1 spot after logmein stopped offering a free tier. In the beginning it was a great piece of software and even offered a lifetime membership. You pay for it once and have it forever. The free tier was also really nice in a pinch you could load up their software and easily remote in to any PC. To this day, it is one of the most used remote software applications on the market.&lt;/p&gt;
&lt;h2&gt;The Downfall&lt;/h2&gt;
&lt;p&gt;On June 1st, 2021 Teamviewer stopped supporting Teamviewr 9 &amp;amp; 10 versions that had the last of the lifetime subscriptions. This forced anyone that bought these &quot;lifetime&quot; licenses to purchase a subscription or move to a different product. However, something else happened behind the scenes that has NOT been talked about. The Lock in and predatory behaviors were being escalated to force people to continue paying them far beyond their intended expiration date.&lt;/p&gt;
&lt;h2&gt;The Scam&lt;/h2&gt;
&lt;p&gt;Behind the scenes, Teamviewer has removed the ability to CANCEL any subscriptions. This used to not be the case, but you have to create a support ticket to cancel is the official text on their site.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/the-teamviewer-scam/cancel-ticket.webp&quot; alt=&quot;Cancel Ticket&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Finding the support ticket creation is difficult and hidden through a sister site with a DIFFERENT login.&lt;/p&gt;
&lt;p&gt;Use this website: &lt;a href=&quot;https://support.teamviewer.com/en/support/tickets&quot;&gt;https://support.teamviewer.com/en/support/tickets&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you do NOT cancel within 28 days of the renewal you WILL BE CHARGED for an ENTIRE YEAR!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/the-teamviewer-scam/28days.webp&quot; alt=&quot;28days&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Ticket answer time? 7-10 DAYS!&lt;/p&gt;
&lt;p&gt;Need to talk with someone now? Call their phone number at +1-800-638-0253 Use option 4 and then Option 3 to Cancel&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/zbrPQsMK2gU&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Flatseal: The Best Flatpak Addon</title><link>https://christitus.com/flatseal-required-flatpak-addon/</link><guid isPermaLink="true">https://christitus.com/flatseal-required-flatpak-addon/</guid><description>&lt;p&gt;Managing Flatpak permissions and file storage outside of the flatpak can be difficult to manage. Flatseal fixes all that!&lt;/p&gt;

&lt;h2&gt;Installing Flatseal&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;flatpak install flathub com.github.tchx84.Flatseal
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Using Flatseal&lt;/h2&gt;
&lt;p&gt;View each flatpak permissions&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/flatseal-required-flatpak-addon/perms.webp&quot; alt=&quot;Perms&quot; /&gt;&lt;/p&gt;
&lt;p&gt;See user modified permissions&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/flatseal-required-flatpak-addon/user-perms.webp&quot; alt=&quot;User Perms&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Reset permissions in the top right corner&lt;/p&gt;
&lt;p&gt;The thing I use the most is filesystem access. This lets you specify the flatpak can read from other parts in the filesystem.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/flatseal-required-flatpak-addon/filesystem.webp&quot; alt=&quot;Filesystem&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This is the best way to manage and maintain flatpaks with ease and it&apos;s the first thing I install after the base flatpak!&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/IfDUXZfDhEI&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 10 Feb 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Managing Flatpak permissions and file storage outside of the flatpak can be difficult to manage. Flatseal fixes all that!&lt;/p&gt;

&lt;h2&gt;Installing Flatseal&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;flatpak install flathub com.github.tchx84.Flatseal
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Using Flatseal&lt;/h2&gt;
&lt;p&gt;View each flatpak permissions&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/flatseal-required-flatpak-addon/perms.webp&quot; alt=&quot;Perms&quot; /&gt;&lt;/p&gt;
&lt;p&gt;See user modified permissions&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/flatseal-required-flatpak-addon/user-perms.webp&quot; alt=&quot;User Perms&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Reset permissions in the top right corner&lt;/p&gt;
&lt;p&gt;The thing I use the most is filesystem access. This lets you specify the flatpak can read from other parts in the filesystem.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/flatseal-required-flatpak-addon/filesystem.webp&quot; alt=&quot;Filesystem&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This is the best way to manage and maintain flatpaks with ease and it&apos;s the first thing I install after the base flatpak!&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/IfDUXZfDhEI&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Im Sorry Netlify</title><link>https://christitus.com/im-sorry-netlify/</link><guid isPermaLink="true">https://christitus.com/im-sorry-netlify/</guid><description>&lt;p&gt;I&apos;ve used Netlify for years on my website and it&apos;s a fantastic service! As I&apos;ve grown it&apos;s becoming unaffordable. I submitted a support request and this is what happened...&lt;/p&gt;

&lt;h2&gt;Excess Bandwidth&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/im-sorry-netlify/intro.webp&quot; alt=&quot;Intro&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/im-sorry-netlify/graph.webp&quot; alt=&quot;Graph&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The statistics on the website have grown with data usage. More Users = More Bandwidth Used. At this rate of growth I&apos;m going to be spending well over $100 a month in bandwidth usage. Don&apos;t get me wrong for starting a website, Netlify limits won&apos;t be a problem. Heck, for the past year I had a 1TB of bandwidth per month for $19! The downside? Over 1TB it starts getting REALLY EXPENSIVE, every 100GB after that is $55! It isn&apos;t sustainable.&lt;/p&gt;
&lt;h2&gt;The Switch&lt;/h2&gt;
&lt;p&gt;There are many competitors to Netlify launching competing services, but one in particular caught my eye. Cloudflare launched it&apos;s &quot;Pages&quot; service that hooks in with GitHub in 2020. The free tier even gives you UNLIMITED bandwidth! Having used Cloudflare extensively for DNS and DDoS setups in business this is a no brainer. The best part? Analytics are also free!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/im-sorry-netlify/cloudflare.webp&quot; alt=&quot;Cloudflare&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;The Experience&lt;/h2&gt;
&lt;p&gt;I setup pages and click &quot;Connect to GitHub&quot; then selected my existing Netlify website to see if it could build the HUGO site. FAILURE.&lt;/p&gt;
&lt;p&gt;The stock hugo instance is v0.50 which is old (Netlify does the same thing) so I added an Environmental Variable. Fixed with the following:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/im-sorry-netlify/hugo-variable.webp&quot; alt=&quot;Hugo Variable&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The other downside? Netlify redirect rules do NOT apply. Cloudflare takes a different approach with Page Rules. This might get expensive for anyone doing a LOT of redirects, as you only get 20 rules for free or pro plan.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/im-sorry-netlify/rules.webp&quot; alt=&quot;Rules&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Overall, I&apos;m pretty darn happy with Cloudflare.&lt;/p&gt;
&lt;p&gt;They also have a bunch of optimization rules, DDoS prevention, and more, but its about on par with Netlify and haven&apos;t noticed any speed or optimization difference.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/Cfr4YNbKrB8&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 08 Feb 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;ve used Netlify for years on my website and it&apos;s a fantastic service! As I&apos;ve grown it&apos;s becoming unaffordable. I submitted a support request and this is what happened...&lt;/p&gt;

&lt;h2&gt;Excess Bandwidth&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/im-sorry-netlify/intro.webp&quot; alt=&quot;Intro&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/im-sorry-netlify/graph.webp&quot; alt=&quot;Graph&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The statistics on the website have grown with data usage. More Users = More Bandwidth Used. At this rate of growth I&apos;m going to be spending well over $100 a month in bandwidth usage. Don&apos;t get me wrong for starting a website, Netlify limits won&apos;t be a problem. Heck, for the past year I had a 1TB of bandwidth per month for $19! The downside? Over 1TB it starts getting REALLY EXPENSIVE, every 100GB after that is $55! It isn&apos;t sustainable.&lt;/p&gt;
&lt;h2&gt;The Switch&lt;/h2&gt;
&lt;p&gt;There are many competitors to Netlify launching competing services, but one in particular caught my eye. Cloudflare launched it&apos;s &quot;Pages&quot; service that hooks in with GitHub in 2020. The free tier even gives you UNLIMITED bandwidth! Having used Cloudflare extensively for DNS and DDoS setups in business this is a no brainer. The best part? Analytics are also free!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/im-sorry-netlify/cloudflare.webp&quot; alt=&quot;Cloudflare&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;The Experience&lt;/h2&gt;
&lt;p&gt;I setup pages and click &quot;Connect to GitHub&quot; then selected my existing Netlify website to see if it could build the HUGO site. FAILURE.&lt;/p&gt;
&lt;p&gt;The stock hugo instance is v0.50 which is old (Netlify does the same thing) so I added an Environmental Variable. Fixed with the following:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/im-sorry-netlify/hugo-variable.webp&quot; alt=&quot;Hugo Variable&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The other downside? Netlify redirect rules do NOT apply. Cloudflare takes a different approach with Page Rules. This might get expensive for anyone doing a LOT of redirects, as you only get 20 rules for free or pro plan.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/im-sorry-netlify/rules.webp&quot; alt=&quot;Rules&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Overall, I&apos;m pretty darn happy with Cloudflare.&lt;/p&gt;
&lt;p&gt;They also have a bunch of optimization rules, DDoS prevention, and more, but its about on par with Netlify and haven&apos;t noticed any speed or optimization difference.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/Cfr4YNbKrB8&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Hardest Game to Play on Steamdeck</title><link>https://christitus.com/hardest-game-to-play-on-steamdeck/</link><guid isPermaLink="true">https://christitus.com/hardest-game-to-play-on-steamdeck/</guid><description>&lt;p&gt;Most games work great on Steamdeck, but Final Fantasy XI is one that doesn&apos;t. It requires dotnet, injection of 3rd party tool, and other modifications to make it playable.&lt;/p&gt;

&lt;h2&gt;Launcher Problems&lt;/h2&gt;
&lt;p&gt;PlayOnline has a TON of problems, as do many other games with independent launchers. This is complicated even more with another tool that makes gearswaps, adds minimaps, and other quality of life tools that aren&apos;t in the vanilla game.&lt;/p&gt;
&lt;h3&gt;Workarounds&lt;/h3&gt;
&lt;p&gt;Multiple launchers are the kiss of death for most emulation and compatibility layers. To get around this, we need to bypass launchers.&lt;/p&gt;
&lt;p&gt;Steam has some fantastic bypass arguments for a LOT of games. Example: Cyberpunk 2077 (Set Launch Options) &lt;code&gt;--launcher-skip -skipStartScreen&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;There is also modding the game files themselves to bypass intro movies and other problematic launches. For FFXI we need to do this.&lt;/p&gt;
&lt;h2&gt;Setting up the Environment&lt;/h2&gt;
&lt;p&gt;Wine bottles are folders that contain all the operating variables. These folders can be anywhere when using WINE, but for the steamdeck I like using bottles flatpak which isolates them to &lt;code&gt;~/.var/app/com.usebottles.bottles/data/bottles&lt;/code&gt;. You&apos;d be shocked how far you can get with the stock &quot;Gaming&quot; bottle.&lt;/p&gt;
&lt;p&gt;Bottle Flatpak Install&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;flatpak install flathub com.usebottles.bottles
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/hardest-game-to-play-on-steamdeck/gaming-bottle.webp&quot; alt=&quot;Gaming Bottle&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Set Launch Options&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/hardest-game-to-play-on-steamdeck/launch-options.webp&quot; alt=&quot;Launch Options&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bottles Bug: Nothing Happens when selection launch options&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/hardest-game-to-play-on-steamdeck/bottle-bug.webp&quot; alt=&quot;Bottle Bug&quot; /&gt;&lt;/p&gt;
&lt;p&gt;If you run into this bug, then you need to manually edit the yml file at the root directory.&lt;/p&gt;
&lt;p&gt;Change this section to include &lt;code&gt;arguments=&apos;&apos;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;External_Programs:
    f43fe6b6-29c6-49b4-88f8-dc724361f3d5:
        arguments: horizonxi.ini &amp;lt;-- Added Line
        executable: Ashita-cli.exe
        folder: /home/titus/Games/horizonxi/drive_c/HorizonXI/Game
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After this line is added, you will now be able to use the launch options or just add the arguments you need directly in the yml file.&lt;/p&gt;
&lt;h3&gt;FFXI Injection&lt;/h3&gt;
&lt;p&gt;Using the new HorizonXI fan made server, we can see that it is using Ashita. Ashita/Windower were the main projects almost every FFXI player uses on PC. These days Ashita is by far my favorite as the lead developer, Atm0s, has been developing and re-writing it for more than 10 years. His dedication has made strides to the community and made HorizonXI launcher possible.&lt;/p&gt;
&lt;p&gt;The Official Horizon XI Launcher is written in 2022 Visual C++ and those libraries aren&apos;t possible yet, at least to my knowledge. So how do we get the game files? Use Windows with Syncthing if you have another PC or just load up a VM and share the local folder.&lt;/p&gt;
&lt;p&gt;Then add that folder in the the bottles directory so it has access to it, and the argument &lt;code&gt;horizonxi.ini&lt;/code&gt; using the executable &lt;code&gt;Ashita-cli.exe&lt;/code&gt; and we are almost done.&lt;/p&gt;
&lt;p&gt;There are two modifications to make: Auto-Login and Controller Support for Steamdeck. The steamdeck uses an XInput (Xbox Style) controller scheme and autologin is just adding a few lines to the ini.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[ashita.boot]
; Retail Server Usage
file        = .\\bootloader\\horizon-loader.exe
command     = --server betabox.horizonxi.com --user USERNAMEHERE --pass PASSWORDHERE
gamemodule  = ffximain.dll
script      = default.txt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Gamepad config&lt;/p&gt;
&lt;p&gt;Change the following lines to mimic these at the end of &lt;code&gt;[ffxi.registry]&lt;/code&gt; entry.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;padmode000 = 1,0,0,0,0,1
padsin000 = 8,9,13,12,10,0,1,3,2,15,-1,-1,14,-33,-33,32,32,-36,-36,35,35,6,7,5,4,16,-1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now when you run the FFXI Bottle it will auto launch into the game WITHOUT ANY LAUNCHER!&lt;/p&gt;
&lt;p&gt;_Note: My personal setup is using syncthing on my windows machine and automatically syncing the files directly in the bottle.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/DCwGENR5scE&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 06 Feb 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Most games work great on Steamdeck, but Final Fantasy XI is one that doesn&apos;t. It requires dotnet, injection of 3rd party tool, and other modifications to make it playable.&lt;/p&gt;

&lt;h2&gt;Launcher Problems&lt;/h2&gt;
&lt;p&gt;PlayOnline has a TON of problems, as do many other games with independent launchers. This is complicated even more with another tool that makes gearswaps, adds minimaps, and other quality of life tools that aren&apos;t in the vanilla game.&lt;/p&gt;
&lt;h3&gt;Workarounds&lt;/h3&gt;
&lt;p&gt;Multiple launchers are the kiss of death for most emulation and compatibility layers. To get around this, we need to bypass launchers.&lt;/p&gt;
&lt;p&gt;Steam has some fantastic bypass arguments for a LOT of games. Example: Cyberpunk 2077 (Set Launch Options) &lt;code&gt;--launcher-skip -skipStartScreen&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;There is also modding the game files themselves to bypass intro movies and other problematic launches. For FFXI we need to do this.&lt;/p&gt;
&lt;h2&gt;Setting up the Environment&lt;/h2&gt;
&lt;p&gt;Wine bottles are folders that contain all the operating variables. These folders can be anywhere when using WINE, but for the steamdeck I like using bottles flatpak which isolates them to &lt;code&gt;~/.var/app/com.usebottles.bottles/data/bottles&lt;/code&gt;. You&apos;d be shocked how far you can get with the stock &quot;Gaming&quot; bottle.&lt;/p&gt;
&lt;p&gt;Bottle Flatpak Install&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;flatpak install flathub com.usebottles.bottles
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/hardest-game-to-play-on-steamdeck/gaming-bottle.webp&quot; alt=&quot;Gaming Bottle&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Set Launch Options&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/hardest-game-to-play-on-steamdeck/launch-options.webp&quot; alt=&quot;Launch Options&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bottles Bug: Nothing Happens when selection launch options&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/hardest-game-to-play-on-steamdeck/bottle-bug.webp&quot; alt=&quot;Bottle Bug&quot; /&gt;&lt;/p&gt;
&lt;p&gt;If you run into this bug, then you need to manually edit the yml file at the root directory.&lt;/p&gt;
&lt;p&gt;Change this section to include &lt;code&gt;arguments=&apos;&apos;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;External_Programs:
    f43fe6b6-29c6-49b4-88f8-dc724361f3d5:
        arguments: horizonxi.ini &amp;lt;-- Added Line
        executable: Ashita-cli.exe
        folder: /home/titus/Games/horizonxi/drive_c/HorizonXI/Game
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After this line is added, you will now be able to use the launch options or just add the arguments you need directly in the yml file.&lt;/p&gt;
&lt;h3&gt;FFXI Injection&lt;/h3&gt;
&lt;p&gt;Using the new HorizonXI fan made server, we can see that it is using Ashita. Ashita/Windower were the main projects almost every FFXI player uses on PC. These days Ashita is by far my favorite as the lead developer, Atm0s, has been developing and re-writing it for more than 10 years. His dedication has made strides to the community and made HorizonXI launcher possible.&lt;/p&gt;
&lt;p&gt;The Official Horizon XI Launcher is written in 2022 Visual C++ and those libraries aren&apos;t possible yet, at least to my knowledge. So how do we get the game files? Use Windows with Syncthing if you have another PC or just load up a VM and share the local folder.&lt;/p&gt;
&lt;p&gt;Then add that folder in the the bottles directory so it has access to it, and the argument &lt;code&gt;horizonxi.ini&lt;/code&gt; using the executable &lt;code&gt;Ashita-cli.exe&lt;/code&gt; and we are almost done.&lt;/p&gt;
&lt;p&gt;There are two modifications to make: Auto-Login and Controller Support for Steamdeck. The steamdeck uses an XInput (Xbox Style) controller scheme and autologin is just adding a few lines to the ini.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[ashita.boot]
; Retail Server Usage
file        = .\\bootloader\\horizon-loader.exe
command     = --server betabox.horizonxi.com --user USERNAMEHERE --pass PASSWORDHERE
gamemodule  = ffximain.dll
script      = default.txt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Gamepad config&lt;/p&gt;
&lt;p&gt;Change the following lines to mimic these at the end of &lt;code&gt;[ffxi.registry]&lt;/code&gt; entry.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;padmode000 = 1,0,0,0,0,1
padsin000 = 8,9,13,12,10,0,1,3,2,15,-1,-1,14,-33,-33,32,32,-36,-36,35,35,6,7,5,4,16,-1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now when you run the FFXI Bottle it will auto launch into the game WITHOUT ANY LAUNCHER!&lt;/p&gt;
&lt;p&gt;_Note: My personal setup is using syncthing on my windows machine and automatically syncing the files directly in the bottle.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/DCwGENR5scE&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Youtube Comment Scams</title><link>https://christitus.com/youtube-telegram-scams/</link><guid isPermaLink="true">https://christitus.com/youtube-telegram-scams/</guid><description>&lt;p&gt;YouTube telegram and whatsapp scams are everywhere in the comment section of every YouTube channel.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2023/youtube-telegram-scams/scam1.webp&quot; alt=&quot;Scam1&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;How the scam works&lt;/h2&gt;
&lt;p&gt;They impersonate the creator of the channel in a giveaway scam. The end result is to extract money via shipping fees.&lt;/p&gt;
&lt;p&gt;Red Flags:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Never from an official email or the same name as creator&lt;/li&gt;
&lt;li&gt;No creator uses whatsapp or telegram for communication. We&apos;d just leave our email in the comment itself. &lt;em&gt;Note: scammers can&apos;t do this because it would be caught by spam filters&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Shipping fees are high&lt;/li&gt;
&lt;li&gt;I don&apos;t know of a YouTuber that has EVER charged fans for shipping.&lt;/li&gt;
&lt;li&gt;Invoice isn&apos;t from YouTuber and they request &quot;Friends and Family&quot; for faster processing because it is NON-REFUNDABLE.&lt;/li&gt;
&lt;li&gt;Giveaways are rare and dangerous for the YouTuber. An example of this is &quot;The Linux Experiment&quot; did a Tuxedo computer giveaway and the entire channel was deleted by YouTube. I will never do a giveaway because of these dangers.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Do people fall for these scams?&lt;/h2&gt;
&lt;p&gt;Yes - Here are screenshots from a victim that contacted me&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/youtube-telegram-scams/victim1.webp&quot; alt=&quot;Victim1&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Amount lost - Notice that it was sent via &quot;Friends and Family&quot; Gift that is NON-REFUNDABLE&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/youtube-telegram-scams/victim2.webp&quot; alt=&quot;Victim2&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The trick to give you to gift it? Faster Processing via bogus invoice.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/youtube-telegram-scams/bogus-invoice.webp&quot; alt=&quot;Bogus Invoice&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Folks get caught up in the excitement of winning something and ignore these red flags. Emotions are how we all make bad decisions and why you shouldn&apos;t rush into these scenarios.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/L1QM4blK-54&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 03 Feb 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;YouTube telegram and whatsapp scams are everywhere in the comment section of every YouTube channel.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2023/youtube-telegram-scams/scam1.webp&quot; alt=&quot;Scam1&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;How the scam works&lt;/h2&gt;
&lt;p&gt;They impersonate the creator of the channel in a giveaway scam. The end result is to extract money via shipping fees.&lt;/p&gt;
&lt;p&gt;Red Flags:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Never from an official email or the same name as creator&lt;/li&gt;
&lt;li&gt;No creator uses whatsapp or telegram for communication. We&apos;d just leave our email in the comment itself. &lt;em&gt;Note: scammers can&apos;t do this because it would be caught by spam filters&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Shipping fees are high&lt;/li&gt;
&lt;li&gt;I don&apos;t know of a YouTuber that has EVER charged fans for shipping.&lt;/li&gt;
&lt;li&gt;Invoice isn&apos;t from YouTuber and they request &quot;Friends and Family&quot; for faster processing because it is NON-REFUNDABLE.&lt;/li&gt;
&lt;li&gt;Giveaways are rare and dangerous for the YouTuber. An example of this is &quot;The Linux Experiment&quot; did a Tuxedo computer giveaway and the entire channel was deleted by YouTube. I will never do a giveaway because of these dangers.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Do people fall for these scams?&lt;/h2&gt;
&lt;p&gt;Yes - Here are screenshots from a victim that contacted me&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/youtube-telegram-scams/victim1.webp&quot; alt=&quot;Victim1&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Amount lost - Notice that it was sent via &quot;Friends and Family&quot; Gift that is NON-REFUNDABLE&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/youtube-telegram-scams/victim2.webp&quot; alt=&quot;Victim2&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The trick to give you to gift it? Faster Processing via bogus invoice.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/youtube-telegram-scams/bogus-invoice.webp&quot; alt=&quot;Bogus Invoice&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Folks get caught up in the excitement of winning something and ignore these red flags. Emotions are how we all make bad decisions and why you shouldn&apos;t rush into these scenarios.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/L1QM4blK-54&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Fix Windows Network and Sharing</title><link>https://christitus.com/windows-network-and-sharing/</link><guid isPermaLink="true">https://christitus.com/windows-network-and-sharing/</guid><description>&lt;p&gt;Fixing problems with windows file sharing using the following methods.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: Check ALL these methods as anyone of them can cause file sharing to fail!&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Network and File Sharing&lt;/h2&gt;
&lt;p&gt;Launch old control panel with &lt;code&gt;Start -&amp;gt; Run -&amp;gt; control&lt;/code&gt; or &lt;code&gt;Windows Key + R&lt;/code&gt; and select Network and Sharing Center.&lt;/p&gt;
&lt;p&gt;Follow these Steps from Network and Sharing Center&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Select Advanced Sharing Settings&lt;/li&gt;
&lt;li&gt;Turn on network discovery and check Turn on automatic setup of network connected devices.&lt;/li&gt;
&lt;li&gt;Turn on file and printer sharing&lt;/li&gt;
&lt;li&gt;Optional: If you don&apos;t want passwords click &quot;All Networks and turn off Password protected sharing&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Check if Network is classified Public&lt;/h2&gt;
&lt;p&gt;If your network is classified as Public it will NOT allow you to share files or printers! Check it with powershell:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Launch Powershell (right-click start menu and select powershell with admin or terminal with admin)&lt;/li&gt;
&lt;li&gt;Type &lt;code&gt;Get-NetConnectionProfile&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Verify NetworkCategory is PRIVATE!&lt;/li&gt;
&lt;li&gt;If it is Public Type &lt;code&gt;Set-NetConnectionProfile -Name &quot;Network #&quot; -NetworkCategory Private&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Note: Change Network # to the NAME of your Network from &lt;code&gt;Get-NetConnectionProfile&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Share your folders&lt;/h2&gt;
&lt;p&gt;Right-click any folder and select &quot;give access to&quot; and select your login user. On new Windows 11/10 systems this is often your microsoft account (&lt;a href=&quot;mailto:user@outlook.com&quot;&gt;user@outlook.com&lt;/a&gt;). If you turned off password sharing and want EVERYONE to see those files then type &quot;Everyone&quot; and give access to them.&lt;/p&gt;
&lt;p&gt;Another option is to right-click the folder and select properties. Then select the sharing tab and give access through there.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/X4Ba7wYlbMA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 01 Feb 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Fixing problems with windows file sharing using the following methods.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: Check ALL these methods as anyone of them can cause file sharing to fail!&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Network and File Sharing&lt;/h2&gt;
&lt;p&gt;Launch old control panel with &lt;code&gt;Start -&amp;gt; Run -&amp;gt; control&lt;/code&gt; or &lt;code&gt;Windows Key + R&lt;/code&gt; and select Network and Sharing Center.&lt;/p&gt;
&lt;p&gt;Follow these Steps from Network and Sharing Center&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Select Advanced Sharing Settings&lt;/li&gt;
&lt;li&gt;Turn on network discovery and check Turn on automatic setup of network connected devices.&lt;/li&gt;
&lt;li&gt;Turn on file and printer sharing&lt;/li&gt;
&lt;li&gt;Optional: If you don&apos;t want passwords click &quot;All Networks and turn off Password protected sharing&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Check if Network is classified Public&lt;/h2&gt;
&lt;p&gt;If your network is classified as Public it will NOT allow you to share files or printers! Check it with powershell:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Launch Powershell (right-click start menu and select powershell with admin or terminal with admin)&lt;/li&gt;
&lt;li&gt;Type &lt;code&gt;Get-NetConnectionProfile&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Verify NetworkCategory is PRIVATE!&lt;/li&gt;
&lt;li&gt;If it is Public Type &lt;code&gt;Set-NetConnectionProfile -Name &quot;Network #&quot; -NetworkCategory Private&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Note: Change Network # to the NAME of your Network from &lt;code&gt;Get-NetConnectionProfile&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Share your folders&lt;/h2&gt;
&lt;p&gt;Right-click any folder and select &quot;give access to&quot; and select your login user. On new Windows 11/10 systems this is often your microsoft account (&lt;a href=&quot;mailto:user@outlook.com&quot;&gt;user@outlook.com&lt;/a&gt;). If you turned off password sharing and want EVERYONE to see those files then type &quot;Everyone&quot; and give access to them.&lt;/p&gt;
&lt;p&gt;Another option is to right-click the folder and select properties. Then select the sharing tab and give access through there.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/X4Ba7wYlbMA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Script for Optimizing Images</title><link>https://christitus.com/script-for-optimizing-images/</link><guid isPermaLink="true">https://christitus.com/script-for-optimizing-images/</guid><description>&lt;p&gt;Optimizing images is easy with this script! Img-optimizer + ImageMagicK leverages multiple CLI tools to give the best results.&lt;/p&gt;

&lt;h2&gt;Dependencies&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;imagemagick&lt;/li&gt;
&lt;li&gt;optipng&lt;/li&gt;
&lt;li&gt;jpegoptim&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Install script&lt;/p&gt;
&lt;h3&gt;Debian Command&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install jpegoptim optipng imagemagick webp -y
git clone https://github.com/VirtuBox/img-optimize.git $HOME/.img-optimize
sudo ln -s $HOME/.img-optimize/optimize.sh /usr/local/bin/img-optimize
sudo chmod +x /usr/local/bin/img-optimize
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Arch Command&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;yay -S jpegoptim optipng imagemagick webp -y
git clone https://github.com/VirtuBox/img-optimize.git $HOME/.img-optimize
sudo ln -s $HOME/.img-optimize/optimize.sh /usr/local/bin/img-optimize
sudo chmod +x /usr/local/bin/img-optimize
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;My Custom Script&lt;/h2&gt;
&lt;p&gt;Change the variables for FOLDER, WIDTH, and HEIGHT.&lt;/p&gt;
&lt;p&gt;The script used at the time of writing is included below.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash
# Dependancies
# - img-optimize - https://virtubox.github.io/img-optimize/
# - imagemagick
# - jpegoptim
# - optipng

FOLDER=&quot;/home/titus/github/website/content/images&quot;

# max width
WIDTH=800

# max height
HEIGHT=600

#resize png or jpg to either height or width, keeps proportions using imagemagick
find ${FOLDER} -iname &apos;*.webp&apos; -o -iname &apos;*.webp&apos; -exec convert \{} -verbose -resize $WIDTHx$HEIGHT\&amp;gt; \{} \;
img-optimize --std --path ${FOLDER}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/Fq3HBk6swuQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 30 Jan 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Optimizing images is easy with this script! Img-optimizer + ImageMagicK leverages multiple CLI tools to give the best results.&lt;/p&gt;

&lt;h2&gt;Dependencies&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;imagemagick&lt;/li&gt;
&lt;li&gt;optipng&lt;/li&gt;
&lt;li&gt;jpegoptim&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Install script&lt;/p&gt;
&lt;h3&gt;Debian Command&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install jpegoptim optipng imagemagick webp -y
git clone https://github.com/VirtuBox/img-optimize.git $HOME/.img-optimize
sudo ln -s $HOME/.img-optimize/optimize.sh /usr/local/bin/img-optimize
sudo chmod +x /usr/local/bin/img-optimize
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Arch Command&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;yay -S jpegoptim optipng imagemagick webp -y
git clone https://github.com/VirtuBox/img-optimize.git $HOME/.img-optimize
sudo ln -s $HOME/.img-optimize/optimize.sh /usr/local/bin/img-optimize
sudo chmod +x /usr/local/bin/img-optimize
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;My Custom Script&lt;/h2&gt;
&lt;p&gt;Change the variables for FOLDER, WIDTH, and HEIGHT.&lt;/p&gt;
&lt;p&gt;The script used at the time of writing is included below.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash
# Dependancies
# - img-optimize - https://virtubox.github.io/img-optimize/
# - imagemagick
# - jpegoptim
# - optipng

FOLDER=&quot;/home/titus/github/website/content/images&quot;

# max width
WIDTH=800

# max height
HEIGHT=600

#resize png or jpg to either height or width, keeps proportions using imagemagick
find ${FOLDER} -iname &apos;*.webp&apos; -o -iname &apos;*.webp&apos; -exec convert \{} -verbose -resize $WIDTHx$HEIGHT\&amp;gt; \{} \;
img-optimize --std --path ${FOLDER}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/Fq3HBk6swuQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Theming Windows With Rainmeter</title><link>https://christitus.com/theming-windows-with-rainmeter/</link><guid isPermaLink="true">https://christitus.com/theming-windows-with-rainmeter/</guid><description>&lt;p&gt;Rainmeter has some amazing themes, but this shows you methods to get a TRULY different look!&lt;/p&gt;

&lt;h2&gt;Removing the Taskbar&lt;/h2&gt;
&lt;p&gt;The taskbar is often in the way of a clean looking desktop and we can remove it for those minimalists out there.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use NirCMD &lt;a href=&quot;https://www.nirsoft.net/utils/nircmd.html&quot;&gt;https://www.nirsoft.net/utils/nircmd.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Download NirCMD &lt;a href=&quot;https://www.nirsoft.net/utils/nircmd-x64.zip&quot;&gt;https://www.nirsoft.net/utils/nircmd-x64.zip&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This command line tool allows us to modify Windows in ways that we normally aren&apos;t able to. Launch the &lt;code&gt;nircmd.exe&lt;/code&gt; file and it will ask to copy itself to the Windows directory.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: Auto-hide taskbar BEFORE removing it!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Command to &quot;remove&quot; the taskbar&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nircmd.exe win trans class Shell_TrayWnd 256
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Command to restore the taskbar&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nircmd.exe win trans class Shell_TrayWnd 255
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Install Rainmeter&lt;/h2&gt;
&lt;p&gt;Official Site: &lt;a href=&quot;https://www.rainmeter.net/&quot;&gt;https://www.rainmeter.net/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Download and install from mainpage or use Winget (below).&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;winget install -e Rainmeter.Rainmeter
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Rainmeter Skins&lt;/h2&gt;
&lt;p&gt;There are multiple download sites for Rainmeter skins, but here are some that I use.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.deviantart.com/rainmeter&quot;&gt;Rainmeter DeviantArt group&lt;/a&gt; (downloads require an account)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://forum.rainmeter.net/viewforum.php?f=27&quot;&gt;Rainmeter forums&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GitHub &lt;a href=&quot;https://github.com/topics/rainmeter-skin&quot;&gt;#rainmeter-skin topic&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Using Rainmeter Skins&lt;/h2&gt;
&lt;p&gt;After you download the skin that includes the &lt;code&gt;*.rmskin&lt;/code&gt; file. You install it by opening it. &lt;em&gt;(Note: Some skins are inside zip files and require extraction of the rmskin file.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Enable the components you want and edit the ini files to your needs.&lt;/p&gt;
&lt;h2&gt;Issues&lt;/h2&gt;
&lt;p&gt;Rainmeter has been around since 2001! This means a lot of skins are out of date. A common bug I see with themes is they use an old weather API which is no longer open. This means most of the weather widgets do NOT work! Keep this in mind when using old skins that haven&apos;t been updated in years.&lt;/p&gt;
&lt;p&gt;There&apos;s a non-exhaustive list of &lt;a href=&quot;https://forum.rainmeter.net/viewtopic.php?f=13&amp;amp;t=34689&quot;&gt;working weather skins&lt;/a&gt; on the Rainmeter forum.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/WROzWPK3iw8&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 25 Jan 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Rainmeter has some amazing themes, but this shows you methods to get a TRULY different look!&lt;/p&gt;

&lt;h2&gt;Removing the Taskbar&lt;/h2&gt;
&lt;p&gt;The taskbar is often in the way of a clean looking desktop and we can remove it for those minimalists out there.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use NirCMD &lt;a href=&quot;https://www.nirsoft.net/utils/nircmd.html&quot;&gt;https://www.nirsoft.net/utils/nircmd.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Download NirCMD &lt;a href=&quot;https://www.nirsoft.net/utils/nircmd-x64.zip&quot;&gt;https://www.nirsoft.net/utils/nircmd-x64.zip&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This command line tool allows us to modify Windows in ways that we normally aren&apos;t able to. Launch the &lt;code&gt;nircmd.exe&lt;/code&gt; file and it will ask to copy itself to the Windows directory.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: Auto-hide taskbar BEFORE removing it!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Command to &quot;remove&quot; the taskbar&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nircmd.exe win trans class Shell_TrayWnd 256
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Command to restore the taskbar&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nircmd.exe win trans class Shell_TrayWnd 255
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Install Rainmeter&lt;/h2&gt;
&lt;p&gt;Official Site: &lt;a href=&quot;https://www.rainmeter.net/&quot;&gt;https://www.rainmeter.net/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Download and install from mainpage or use Winget (below).&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;winget install -e Rainmeter.Rainmeter
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Rainmeter Skins&lt;/h2&gt;
&lt;p&gt;There are multiple download sites for Rainmeter skins, but here are some that I use.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.deviantart.com/rainmeter&quot;&gt;Rainmeter DeviantArt group&lt;/a&gt; (downloads require an account)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://forum.rainmeter.net/viewforum.php?f=27&quot;&gt;Rainmeter forums&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GitHub &lt;a href=&quot;https://github.com/topics/rainmeter-skin&quot;&gt;#rainmeter-skin topic&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Using Rainmeter Skins&lt;/h2&gt;
&lt;p&gt;After you download the skin that includes the &lt;code&gt;*.rmskin&lt;/code&gt; file. You install it by opening it. &lt;em&gt;(Note: Some skins are inside zip files and require extraction of the rmskin file.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Enable the components you want and edit the ini files to your needs.&lt;/p&gt;
&lt;h2&gt;Issues&lt;/h2&gt;
&lt;p&gt;Rainmeter has been around since 2001! This means a lot of skins are out of date. A common bug I see with themes is they use an old weather API which is no longer open. This means most of the weather widgets do NOT work! Keep this in mind when using old skins that haven&apos;t been updated in years.&lt;/p&gt;
&lt;p&gt;There&apos;s a non-exhaustive list of &lt;a href=&quot;https://forum.rainmeter.net/viewtopic.php?f=13&amp;amp;t=34689&quot;&gt;working weather skins&lt;/a&gt; on the Rainmeter forum.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/WROzWPK3iw8&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>My New Desktop Hyprland</title><link>https://christitus.com/my-new-desktop-hyprland/</link><guid isPermaLink="true">https://christitus.com/my-new-desktop-hyprland/</guid><description>&lt;p&gt;Hyprland is an amazing desktop that feels amazing. Here is my current setup that is being made.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Please Note: This is beta and not for a beginner. You WILL encounter bugs!&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;The Desktop&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://github.com/ChrisTitusTech/hyprland-titus/raw/main/hyprland-titus.png&quot; alt=&quot;Screenshot&quot; /&gt;&lt;/p&gt;
&lt;p&gt;GitHub Project: &lt;a href=&quot;https://github.com/ChrisTitusTech/hyprland-titus&quot;&gt;https://github.com/ChrisTitusTech/hyprland-titus&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Install&lt;/h2&gt;
&lt;h3&gt;Yay&lt;/h3&gt;
&lt;p&gt;Run as user NOT ROOT!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone https://aur.archlinux.org/yay-bin
cd yay-bin
makepkg -si
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Packages&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;yay -S hyprland-bin polkit-gnome ffmpeg neovim viewnior       \
rofi pavucontrol thunar starship wl-clipboard wf-recorder     \
swaybg grimblast-git ffmpegthumbnailer tumbler playerctl      \
noise-suppression-for-voice thunar-archive-plugin kitty       \
waybar-hyprland wlogout swaylock-effects sddm-git pamixer     \
nwg-look-bin nordic-theme papirus-icon-theme dunst otf-sora   \
ttf-nerd-fonts-symbols-common otf-firamono-nerd inter-font    \
ttf-fantasque-nerd noto-fonts noto-fonts-emoji ttf-comfortaa  \
ttf-jetbrains-mono-nerd ttf-icomoon-feather ttf-iosevka-nerd  \
adobe-source-code-pro-fonts
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Workarounds that need to be addressed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Recommend archinstall with Sway as desktop for base&lt;/li&gt;
&lt;li&gt;SDDM-GIT is required or you will run into shutdown bugs and delays&lt;/li&gt;
&lt;li&gt;SDDM needs to be configured for autologin (recommend using swaylock on start of script for security)&lt;/li&gt;
&lt;li&gt;Replace xdg-desktop-portal-wlr with
&lt;strong&gt;&lt;a href=&quot;https://wiki.hypr.land/Hypr-Ecosystem/xdg-desktop-portal-hyprland/&quot;&gt;xdg-desktop-portal-hyprland-git&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Bugs&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Hyprland is still in beta (0.2) as of the creation of these dot files&lt;/li&gt;
&lt;li&gt;Sometimes my RX5700XT goes to sleep and requires a reload, because it is stuck on black screen.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Work In Progress&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[ ] Help Popup with Hotkey&lt;/li&gt;
&lt;li&gt;[ ] Wayland guide for nwg-look, wlr-randr, etc.&lt;/li&gt;
&lt;li&gt;[ ] Synergy Workaround - Looking at waynergy or just using KVM&lt;/li&gt;
&lt;li&gt;[ ] Gamescope Addition - Adding more parity with Steamdeck features&lt;/li&gt;
&lt;li&gt;[X] More Customizations for Waybar - Battery, Backlight, etc.&lt;/li&gt;
&lt;li&gt;[ ] Auto-configuration - Long term goal&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Sources used making these&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Official Hyprland Github &lt;a href=&quot;https://github.com/hyprwm/Hyprland&quot;&gt;https://github.com/hyprwm/Hyprland&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Linux Mobiles Hyprland dot files &lt;a href=&quot;https://github.com/linuxmobile/hyprland-dots&quot;&gt;https://github.com/linuxmobile/hyprland-dots&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4 Hour Live Stream Attempt&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/sDmLCBI9L4E&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/wNL6eIoksd8&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 23 Jan 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Hyprland is an amazing desktop that feels amazing. Here is my current setup that is being made.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Please Note: This is beta and not for a beginner. You WILL encounter bugs!&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;The Desktop&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://github.com/ChrisTitusTech/hyprland-titus/raw/main/hyprland-titus.png&quot; alt=&quot;Screenshot&quot; /&gt;&lt;/p&gt;
&lt;p&gt;GitHub Project: &lt;a href=&quot;https://github.com/ChrisTitusTech/hyprland-titus&quot;&gt;https://github.com/ChrisTitusTech/hyprland-titus&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Install&lt;/h2&gt;
&lt;h3&gt;Yay&lt;/h3&gt;
&lt;p&gt;Run as user NOT ROOT!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone https://aur.archlinux.org/yay-bin
cd yay-bin
makepkg -si
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Packages&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;yay -S hyprland-bin polkit-gnome ffmpeg neovim viewnior       \
rofi pavucontrol thunar starship wl-clipboard wf-recorder     \
swaybg grimblast-git ffmpegthumbnailer tumbler playerctl      \
noise-suppression-for-voice thunar-archive-plugin kitty       \
waybar-hyprland wlogout swaylock-effects sddm-git pamixer     \
nwg-look-bin nordic-theme papirus-icon-theme dunst otf-sora   \
ttf-nerd-fonts-symbols-common otf-firamono-nerd inter-font    \
ttf-fantasque-nerd noto-fonts noto-fonts-emoji ttf-comfortaa  \
ttf-jetbrains-mono-nerd ttf-icomoon-feather ttf-iosevka-nerd  \
adobe-source-code-pro-fonts
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Workarounds that need to be addressed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Recommend archinstall with Sway as desktop for base&lt;/li&gt;
&lt;li&gt;SDDM-GIT is required or you will run into shutdown bugs and delays&lt;/li&gt;
&lt;li&gt;SDDM needs to be configured for autologin (recommend using swaylock on start of script for security)&lt;/li&gt;
&lt;li&gt;Replace xdg-desktop-portal-wlr with
&lt;strong&gt;&lt;a href=&quot;https://wiki.hypr.land/Hypr-Ecosystem/xdg-desktop-portal-hyprland/&quot;&gt;xdg-desktop-portal-hyprland-git&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Bugs&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Hyprland is still in beta (0.2) as of the creation of these dot files&lt;/li&gt;
&lt;li&gt;Sometimes my RX5700XT goes to sleep and requires a reload, because it is stuck on black screen.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Work In Progress&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[ ] Help Popup with Hotkey&lt;/li&gt;
&lt;li&gt;[ ] Wayland guide for nwg-look, wlr-randr, etc.&lt;/li&gt;
&lt;li&gt;[ ] Synergy Workaround - Looking at waynergy or just using KVM&lt;/li&gt;
&lt;li&gt;[ ] Gamescope Addition - Adding more parity with Steamdeck features&lt;/li&gt;
&lt;li&gt;[X] More Customizations for Waybar - Battery, Backlight, etc.&lt;/li&gt;
&lt;li&gt;[ ] Auto-configuration - Long term goal&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Sources used making these&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Official Hyprland Github &lt;a href=&quot;https://github.com/hyprwm/Hyprland&quot;&gt;https://github.com/hyprwm/Hyprland&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Linux Mobiles Hyprland dot files &lt;a href=&quot;https://github.com/linuxmobile/hyprland-dots&quot;&gt;https://github.com/linuxmobile/hyprland-dots&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4 Hour Live Stream Attempt&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/sDmLCBI9L4E&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/wNL6eIoksd8&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>How to Sync Local Files</title><link>https://christitus.com/sync-local-files/</link><guid isPermaLink="true">https://christitus.com/sync-local-files/</guid><description>&lt;p&gt;A guide over how to set up Syncthing for local sync only.&lt;/p&gt;

&lt;h2&gt;Things you NEED to know&lt;/h2&gt;
&lt;p&gt;Syncthing by defaults it will sync files through relays across the internet. This is useful when needing to grab a file while you are outside your network, but slow and can cause security issues. While the information is encrypted, it still poses a threat to some. Also, the slowdown is relaying that information outside the network even in a LAN transfer.&lt;/p&gt;
&lt;p&gt;The following guide shows you how to make it sync only in a LAN environment. Note: This will make your files NOT sync when outside your own network!&lt;/p&gt;
&lt;h2&gt;Installing Syncthing&lt;/h2&gt;
&lt;p&gt;There is a cli service that you can install via syncthing. I prefer to take a GUI approach to the configuration as it helps when troubleshooting. Here are the following tools I recommend based on the operating system.&lt;/p&gt;
&lt;h3&gt;Windows and Linux&lt;/h3&gt;
&lt;p&gt;Syncthing-GTK is a proven companion I&apos;ve used with syncthing for years. It is open source and you can download the latest releases here: &lt;a href=&quot;https://github.com/kozec/syncthing-gtk/releases&quot;&gt;https://github.com/kozec/syncthing-gtk/releases&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;During the install process choose the default selections and manage via localhost.&lt;/p&gt;
&lt;p&gt;Installing on Steamdeck? Checkout it&apos;s flatpak: &lt;a href=&quot;https://flathub.org/apps/details/me.kozec.syncthingtk&quot;&gt;https://flathub.org/apps/details/me.kozec.syncthingtk&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;MacOS&lt;/h3&gt;
&lt;p&gt;Syncthing for MacOS is a great open source project @ &lt;a href=&quot;https://github.com/syncthing/syncthing-macos&quot;&gt;https://github.com/syncthing/syncthing-macos&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Homebrew install method:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;brew install --cask syncthing
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Configuration&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/sync-local-files/config.webp&quot; alt=&quot;Config&quot; /&gt;&lt;/p&gt;
&lt;p&gt;With multiple syncthing clients you can connect one using &quot;Connect Remote Device&quot; this is what the server interface looks like.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/sync-local-files/server.webp&quot; alt=&quot;Server&quot; /&gt;&lt;/p&gt;
&lt;p&gt;On the other system it will prompt to connect the two.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/sync-local-files/client.webp&quot; alt=&quot;Client&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I generally always have a main server that manages all the connects and hosts the share. You don&apos;t have to do this, but it&apos;s easier to manage. To start syncing -&amp;gt; Create a folder -&amp;gt; Edit Folder -&amp;gt; Click Sharing Options -&amp;gt; Check the other syncthing computers to share it to!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/sync-local-files/share.webp&quot; alt=&quot;Share&quot; /&gt;&lt;/p&gt;
&lt;p&gt;On the client computers click add and watch the sync happen. This is the final result of the sync:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/sync-local-files/final-sync.webp&quot; alt=&quot;Final Sync&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Disable External Access&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/sync-local-files/settings.webp&quot; alt=&quot;Settings&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This simple configuration will set everything to LAN only. Making sure anon usage and Global Discovery are disabled will work for most.&lt;/p&gt;
&lt;p&gt;However, for a deeper dive for those security minded and configuration junkies, here is another tidbit. (Advanced Users Only)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sync Listen Address - This is where the incoming sync is and can be set to be IPv4 or a specific address if you want. It&apos;s a bit overkill but by default it runs on 22000. Adjusting this value isn&apos;t recommended and can cause headaches in a dynamic environment. Highly recommend using hostnames to resolve instead of IPs unless they are static!&lt;/li&gt;
&lt;li&gt;GUI Listen Address - Syncthings web interface runs on port 8080 and typically only listens from localhost (local connections).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Syncthing Backups&lt;/h2&gt;
&lt;p&gt;Here is Syncthing&apos;s wonderful backup system. I always use this for the times I delete something or need to recover from a bad sync. The options are: simple, trash can, staggered, and external. If you want basic backups, choose simple. Trash can is good for deleted files and often you want to grab an older version of an existing file when using sync. Personally, I do the overkill option of staggered versioning. This hold all the different version in a hour, day, week, month format til the end of the retention period. This will use a TON of space where the folder is synced from, so be CAREFUL!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/sync-local-files/backup.webp&quot; alt=&quot;Backup&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/dBVTedUWbfg&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 20 Jan 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;A guide over how to set up Syncthing for local sync only.&lt;/p&gt;

&lt;h2&gt;Things you NEED to know&lt;/h2&gt;
&lt;p&gt;Syncthing by defaults it will sync files through relays across the internet. This is useful when needing to grab a file while you are outside your network, but slow and can cause security issues. While the information is encrypted, it still poses a threat to some. Also, the slowdown is relaying that information outside the network even in a LAN transfer.&lt;/p&gt;
&lt;p&gt;The following guide shows you how to make it sync only in a LAN environment. Note: This will make your files NOT sync when outside your own network!&lt;/p&gt;
&lt;h2&gt;Installing Syncthing&lt;/h2&gt;
&lt;p&gt;There is a cli service that you can install via syncthing. I prefer to take a GUI approach to the configuration as it helps when troubleshooting. Here are the following tools I recommend based on the operating system.&lt;/p&gt;
&lt;h3&gt;Windows and Linux&lt;/h3&gt;
&lt;p&gt;Syncthing-GTK is a proven companion I&apos;ve used with syncthing for years. It is open source and you can download the latest releases here: &lt;a href=&quot;https://github.com/kozec/syncthing-gtk/releases&quot;&gt;https://github.com/kozec/syncthing-gtk/releases&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;During the install process choose the default selections and manage via localhost.&lt;/p&gt;
&lt;p&gt;Installing on Steamdeck? Checkout it&apos;s flatpak: &lt;a href=&quot;https://flathub.org/apps/details/me.kozec.syncthingtk&quot;&gt;https://flathub.org/apps/details/me.kozec.syncthingtk&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;MacOS&lt;/h3&gt;
&lt;p&gt;Syncthing for MacOS is a great open source project @ &lt;a href=&quot;https://github.com/syncthing/syncthing-macos&quot;&gt;https://github.com/syncthing/syncthing-macos&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Homebrew install method:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;brew install --cask syncthing
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Configuration&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/sync-local-files/config.webp&quot; alt=&quot;Config&quot; /&gt;&lt;/p&gt;
&lt;p&gt;With multiple syncthing clients you can connect one using &quot;Connect Remote Device&quot; this is what the server interface looks like.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/sync-local-files/server.webp&quot; alt=&quot;Server&quot; /&gt;&lt;/p&gt;
&lt;p&gt;On the other system it will prompt to connect the two.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/sync-local-files/client.webp&quot; alt=&quot;Client&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I generally always have a main server that manages all the connects and hosts the share. You don&apos;t have to do this, but it&apos;s easier to manage. To start syncing -&amp;gt; Create a folder -&amp;gt; Edit Folder -&amp;gt; Click Sharing Options -&amp;gt; Check the other syncthing computers to share it to!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/sync-local-files/share.webp&quot; alt=&quot;Share&quot; /&gt;&lt;/p&gt;
&lt;p&gt;On the client computers click add and watch the sync happen. This is the final result of the sync:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/sync-local-files/final-sync.webp&quot; alt=&quot;Final Sync&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Disable External Access&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/sync-local-files/settings.webp&quot; alt=&quot;Settings&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This simple configuration will set everything to LAN only. Making sure anon usage and Global Discovery are disabled will work for most.&lt;/p&gt;
&lt;p&gt;However, for a deeper dive for those security minded and configuration junkies, here is another tidbit. (Advanced Users Only)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sync Listen Address - This is where the incoming sync is and can be set to be IPv4 or a specific address if you want. It&apos;s a bit overkill but by default it runs on 22000. Adjusting this value isn&apos;t recommended and can cause headaches in a dynamic environment. Highly recommend using hostnames to resolve instead of IPs unless they are static!&lt;/li&gt;
&lt;li&gt;GUI Listen Address - Syncthings web interface runs on port 8080 and typically only listens from localhost (local connections).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Syncthing Backups&lt;/h2&gt;
&lt;p&gt;Here is Syncthing&apos;s wonderful backup system. I always use this for the times I delete something or need to recover from a bad sync. The options are: simple, trash can, staggered, and external. If you want basic backups, choose simple. Trash can is good for deleted files and often you want to grab an older version of an existing file when using sync. Personally, I do the overkill option of staggered versioning. This hold all the different version in a hour, day, week, month format til the end of the retention period. This will use a TON of space where the folder is synced from, so be CAREFUL!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/sync-local-files/backup.webp&quot; alt=&quot;Backup&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/dBVTedUWbfg&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Replace Windows Search</title><link>https://christitus.com/everything-toolbar/</link><guid isPermaLink="true">https://christitus.com/everything-toolbar/</guid><description>&lt;p&gt;Everything Search is faster, more efficient, and a better Windows Search. This guide shows you how to setup everything and a toolbar for quick access.&lt;/p&gt;

&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;Everything Search Official Download Site: &lt;a href=&quot;https://www.voidtools.com/downloads/&quot;&gt;https://www.voidtools.com/downloads/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Powershell Install:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;choco install Everything
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;OR&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;winget install voidtools.Everything
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Everything Toolbar&lt;/h3&gt;
&lt;p&gt;Getting the right version of everything toolbar is important. Version 0.8+ (Currently Beta ONLY) is compatible with Windows 11 and The official everything toolbar version 0.7.4 or earlier will ONLY work with Windows 10.&lt;/p&gt;
&lt;p&gt;Download the beta at: &lt;a href=&quot;https://github.com/stnkl/EverythingToolbar/releases&quot;&gt;https://github.com/stnkl/EverythingToolbar/releases&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;OR&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;winget install stnkl.EverythingToolbar.Beta
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For earlier versions (Windows 10 ONLY)&lt;/p&gt;
&lt;p&gt;Download the stable release at: &lt;a href=&quot;https://github.com/stnkl/EverythingToolbar/releases&quot;&gt;https://github.com/stnkl/EverythingToolbar/releases&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;choco install everythingtoolbar
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;OR&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;winget install stnkl.EverythingToolbar
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Disable Windows Indexer&lt;/h2&gt;
&lt;p&gt;Easiest way to disable indexing and the performance hog that it is. Disable the service!&lt;/p&gt;
&lt;p&gt;Open Run command: Right-click start button and select run&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/everything-toolbar/run.webp&quot; alt=&quot;Run&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Disable the Service by stopping and disabling it&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/everything-toolbar/service.webp&quot; alt=&quot;Service&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/6Xg-BRA3rgQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 18 Jan 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Everything Search is faster, more efficient, and a better Windows Search. This guide shows you how to setup everything and a toolbar for quick access.&lt;/p&gt;

&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;Everything Search Official Download Site: &lt;a href=&quot;https://www.voidtools.com/downloads/&quot;&gt;https://www.voidtools.com/downloads/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Powershell Install:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;choco install Everything
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;OR&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;winget install voidtools.Everything
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Everything Toolbar&lt;/h3&gt;
&lt;p&gt;Getting the right version of everything toolbar is important. Version 0.8+ (Currently Beta ONLY) is compatible with Windows 11 and The official everything toolbar version 0.7.4 or earlier will ONLY work with Windows 10.&lt;/p&gt;
&lt;p&gt;Download the beta at: &lt;a href=&quot;https://github.com/stnkl/EverythingToolbar/releases&quot;&gt;https://github.com/stnkl/EverythingToolbar/releases&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;OR&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;winget install stnkl.EverythingToolbar.Beta
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For earlier versions (Windows 10 ONLY)&lt;/p&gt;
&lt;p&gt;Download the stable release at: &lt;a href=&quot;https://github.com/stnkl/EverythingToolbar/releases&quot;&gt;https://github.com/stnkl/EverythingToolbar/releases&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;choco install everythingtoolbar
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;OR&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;winget install stnkl.EverythingToolbar
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Disable Windows Indexer&lt;/h2&gt;
&lt;p&gt;Easiest way to disable indexing and the performance hog that it is. Disable the service!&lt;/p&gt;
&lt;p&gt;Open Run command: Right-click start button and select run&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/everything-toolbar/run.webp&quot; alt=&quot;Run&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Disable the Service by stopping and disabling it&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/everything-toolbar/service.webp&quot; alt=&quot;Service&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/6Xg-BRA3rgQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Steamdeck as a Desktop</title><link>https://christitus.com/steamdeck-as-a-desktop/</link><guid isPermaLink="true">https://christitus.com/steamdeck-as-a-desktop/</guid><description>&lt;p&gt;No, do NOT modify the system. This guide shows you how to retain the system while adding package management and the things you need to make the steamdeck your desktop!&lt;/p&gt;

&lt;h2&gt;Adding NIX as your Package Manager&lt;/h2&gt;
&lt;p&gt;NIX is an amazing package manager and far better than the flatpak and other solutions I&apos;ve seen. We create a home directory called nix and map it&apos;s package manager to it, so on updates all our installed packages still work! Not familiar with NIX? Check out this article: &lt;a href=&quot;https://christitus.com/nix-package-manager/&quot;&gt;https://christitus.com/nix-package-manager/&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Install NIX on Steamdeck&lt;/h3&gt;
&lt;p&gt;You may need to make the system writeable with &lt;code&gt;steamos-readonly disable&lt;/code&gt;, but &lt;strong&gt;DO NOT MODIFY EXISTING FILES!&lt;/strong&gt;. When steam updates, you could lose your customizations! We will only be making new files.&lt;/p&gt;
&lt;p&gt;Credit for this idea comes from &lt;a href=&quot;https://determinate.systems/posts/nix-on-the-steam-deck#enabling-an-install&quot;&gt;https://determinate.systems/posts/nix-on-the-steam-deck#enabling-an-install&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Create &lt;code&gt;/etc/systemd/system/nix-directory.service&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=Create a `/nix` directory to be used for bind mounting
PropagatesStopTo=nix-daemon.service
PropagatesStopTo=nix.mount
DefaultDependencies=no
After=grub-recordfail.service
After=steamos-finish-oobe-migration.service

[Service]
Type=oneshot
ExecStart=steamos-readonly disable
ExecStart=mkdir -vp /nix
ExecStart=chmod -v 0755 /nix
ExecStart=chown -v root /nix
ExecStart=chgrp -v root /nix
ExecStart=steamos-readonly enable
ExecStop=steamos-readonly disable
ExecStop=rmdir /nix
ExecStop=steamos-readonly enable
RemainAfterExit=true
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Create &lt;code&gt;/etc/systemd/system/nix.mount&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=Mount `/home/nix` on `/nix`
PropagatesStopTo=nix-daemon.service
PropagatesStopTo=nix-directory.service
After=nix-directory.service
Requires=nix-directory.service
ConditionPathIsDirectory=/nix
DefaultDependencies=no

[Mount]
What=/home/nix
Where=/nix
Type=none
DirectoryMode=0755
Options=bind
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Create &lt;code&gt;/etc/systemd/system/ensure-symlinked-units-resolve.service&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=Ensure Nix related units which are symlinked resolve
After=nix.mount
Requires=nix-directory.service
Requires=nix.mount
PropagatesStopTo=nix-directory.service
PropagatesStopTo=nix.mount
DefaultDependencies=no

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/systemctl daemon-reload
ExecStart=/usr/bin/systemctl restart --no-block sockets.target timers.target multi-user.target

[Install]
WantedBy=sysinit.target
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Enable and start it all with:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl enable --now ensure-symlinked-units-resolve.service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Install NIX&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sh &amp;lt;(curl -L https://nixos.org/nix/install) --daemon
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Searching and Installing Packages&lt;/h3&gt;
&lt;p&gt;Search for packages @ &lt;a href=&quot;https://search.nixos.org/packages&quot;&gt;https://search.nixos.org/packages&lt;/a&gt; Or you can use this from terminal: &lt;code&gt;nix search nixpkgs packagename&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: Look under nix-env and &quot;On Non NixOS&quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Install packages with &lt;code&gt;nix-env -iA nixpkgs.packagename&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Improving Performance&lt;/h2&gt;
&lt;p&gt;Change Swappiness 100 to 10 (Reduces use of Swap file)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;echo &quot;vm.swappiness=10&quot; | sudo tee /etc/sysctl.d/99-custom-swappiness.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Change Swap File Size from 1G to 10G (&lt;em&gt;Note:This will take up more space!&lt;/em&gt;)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;echo 0
echo &quot;# Disabling swap...&quot;
sudo swapoff -a
echo 25
echo &quot;# Creating new 8 GB swapfile (be patient, this can take between 10 seconds and 30 minutes)...&quot;
sudo dd if=/dev/zero of=/home/swapfile bs=1G count=&quot;8&quot; status=none
echo 50
echo &quot;# Setting permissions on swapfile...&quot;
sudo chmod 0600 /home/swapfile
echo 75
echo &quot;# Initializing new swapfile...&quot;
sudo mkswap /home/swapfile  
sudo swapon /home/swapfile 
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/ttOs5iWgNzk&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 16 Jan 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;No, do NOT modify the system. This guide shows you how to retain the system while adding package management and the things you need to make the steamdeck your desktop!&lt;/p&gt;

&lt;h2&gt;Adding NIX as your Package Manager&lt;/h2&gt;
&lt;p&gt;NIX is an amazing package manager and far better than the flatpak and other solutions I&apos;ve seen. We create a home directory called nix and map it&apos;s package manager to it, so on updates all our installed packages still work! Not familiar with NIX? Check out this article: &lt;a href=&quot;https://christitus.com/nix-package-manager/&quot;&gt;https://christitus.com/nix-package-manager/&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Install NIX on Steamdeck&lt;/h3&gt;
&lt;p&gt;You may need to make the system writeable with &lt;code&gt;steamos-readonly disable&lt;/code&gt;, but &lt;strong&gt;DO NOT MODIFY EXISTING FILES!&lt;/strong&gt;. When steam updates, you could lose your customizations! We will only be making new files.&lt;/p&gt;
&lt;p&gt;Credit for this idea comes from &lt;a href=&quot;https://determinate.systems/posts/nix-on-the-steam-deck#enabling-an-install&quot;&gt;https://determinate.systems/posts/nix-on-the-steam-deck#enabling-an-install&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Create &lt;code&gt;/etc/systemd/system/nix-directory.service&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=Create a `/nix` directory to be used for bind mounting
PropagatesStopTo=nix-daemon.service
PropagatesStopTo=nix.mount
DefaultDependencies=no
After=grub-recordfail.service
After=steamos-finish-oobe-migration.service

[Service]
Type=oneshot
ExecStart=steamos-readonly disable
ExecStart=mkdir -vp /nix
ExecStart=chmod -v 0755 /nix
ExecStart=chown -v root /nix
ExecStart=chgrp -v root /nix
ExecStart=steamos-readonly enable
ExecStop=steamos-readonly disable
ExecStop=rmdir /nix
ExecStop=steamos-readonly enable
RemainAfterExit=true
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Create &lt;code&gt;/etc/systemd/system/nix.mount&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=Mount `/home/nix` on `/nix`
PropagatesStopTo=nix-daemon.service
PropagatesStopTo=nix-directory.service
After=nix-directory.service
Requires=nix-directory.service
ConditionPathIsDirectory=/nix
DefaultDependencies=no

[Mount]
What=/home/nix
Where=/nix
Type=none
DirectoryMode=0755
Options=bind
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Create &lt;code&gt;/etc/systemd/system/ensure-symlinked-units-resolve.service&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=Ensure Nix related units which are symlinked resolve
After=nix.mount
Requires=nix-directory.service
Requires=nix.mount
PropagatesStopTo=nix-directory.service
PropagatesStopTo=nix.mount
DefaultDependencies=no

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/systemctl daemon-reload
ExecStart=/usr/bin/systemctl restart --no-block sockets.target timers.target multi-user.target

[Install]
WantedBy=sysinit.target
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Enable and start it all with:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl enable --now ensure-symlinked-units-resolve.service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Install NIX&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sh &amp;lt;(curl -L https://nixos.org/nix/install) --daemon
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Searching and Installing Packages&lt;/h3&gt;
&lt;p&gt;Search for packages @ &lt;a href=&quot;https://search.nixos.org/packages&quot;&gt;https://search.nixos.org/packages&lt;/a&gt; Or you can use this from terminal: &lt;code&gt;nix search nixpkgs packagename&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: Look under nix-env and &quot;On Non NixOS&quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Install packages with &lt;code&gt;nix-env -iA nixpkgs.packagename&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Improving Performance&lt;/h2&gt;
&lt;p&gt;Change Swappiness 100 to 10 (Reduces use of Swap file)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;echo &quot;vm.swappiness=10&quot; | sudo tee /etc/sysctl.d/99-custom-swappiness.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Change Swap File Size from 1G to 10G (&lt;em&gt;Note:This will take up more space!&lt;/em&gt;)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;echo 0
echo &quot;# Disabling swap...&quot;
sudo swapoff -a
echo 25
echo &quot;# Creating new 8 GB swapfile (be patient, this can take between 10 seconds and 30 minutes)...&quot;
sudo dd if=/dev/zero of=/home/swapfile bs=1G count=&quot;8&quot; status=none
echo 50
echo &quot;# Setting permissions on swapfile...&quot;
sudo chmod 0600 /home/swapfile
echo 75
echo &quot;# Initializing new swapfile...&quot;
sudo mkswap /home/swapfile  
sudo swapon /home/swapfile 
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/ttOs5iWgNzk&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Dism++</title><link>https://christitus.com/dism-plus/</link><guid isPermaLink="true">https://christitus.com/dism-plus/</guid><description>&lt;p&gt;Dism++ enables users to modify Windows images before installing them, as well as providing tools to address and repair common issues like missing or corrupted files.&lt;/p&gt;

&lt;h2&gt;Before Using&lt;/h2&gt;
&lt;p&gt;DISM++ is an open source github project located @ &lt;a href=&quot;https://github.com/Chuyu-Team/Dism-Multi-language/tree/master/www.chuyu.me&quot;&gt;https://github.com/Chuyu-Team/Dism-Multi-language/tree/master/www.chuyu.me&lt;/a&gt; but is a bit dated. The last activity on the project was February 2022, but the main site is down.&lt;/p&gt;
&lt;p&gt;It is created by Chuyu, which is a Chinese developer and I&apos;d recommend NOT using this tool for secure environments. In short, if you use TikTok or Discord, then is a giant nothing burger for you and use away.&lt;/p&gt;
&lt;h2&gt;Download&lt;/h2&gt;
&lt;h2&gt;Usage and Features&lt;/h2&gt;
&lt;h3&gt;Disk Cleanup&lt;/h3&gt;
&lt;p&gt;Advanced cleanup of Windows updates and misc. files.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/dism-plus/cleanup.webp&quot; alt=&quot;Cleanup&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Startup Check&lt;/h3&gt;
&lt;p&gt;See what programs are starting and what programs will get installed when a new user is created.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/dism-plus/startup.webp&quot; alt=&quot;Startup&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Appx Uninstaller&lt;/h3&gt;
&lt;p&gt;Bulk uninstall Microsoft Store Apps.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/dism-plus/appx.webp&quot; alt=&quot;Appx&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Updates&lt;/h3&gt;
&lt;p&gt;Uninstalled Built-In Updates? Use the DISM++ Updates tab to scan and install new updates.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/dism-plus/updates.webp&quot; alt=&quot;Updates&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;The Rest - Toolbox, Deploy, Drivers, etc&lt;/h3&gt;
&lt;p&gt;Since this is seeing less and less updates, I wouldn&apos;t use these tools. Microsoft is constantly updating and modifying Windows, hence using the less targeted tools is NOT Recommended.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/2hEde5WuCSY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 13 Jan 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Dism++ enables users to modify Windows images before installing them, as well as providing tools to address and repair common issues like missing or corrupted files.&lt;/p&gt;

&lt;h2&gt;Before Using&lt;/h2&gt;
&lt;p&gt;DISM++ is an open source github project located @ &lt;a href=&quot;https://github.com/Chuyu-Team/Dism-Multi-language/tree/master/www.chuyu.me&quot;&gt;https://github.com/Chuyu-Team/Dism-Multi-language/tree/master/www.chuyu.me&lt;/a&gt; but is a bit dated. The last activity on the project was February 2022, but the main site is down.&lt;/p&gt;
&lt;p&gt;It is created by Chuyu, which is a Chinese developer and I&apos;d recommend NOT using this tool for secure environments. In short, if you use TikTok or Discord, then is a giant nothing burger for you and use away.&lt;/p&gt;
&lt;h2&gt;Download&lt;/h2&gt;
&lt;h2&gt;Usage and Features&lt;/h2&gt;
&lt;h3&gt;Disk Cleanup&lt;/h3&gt;
&lt;p&gt;Advanced cleanup of Windows updates and misc. files.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/dism-plus/cleanup.webp&quot; alt=&quot;Cleanup&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Startup Check&lt;/h3&gt;
&lt;p&gt;See what programs are starting and what programs will get installed when a new user is created.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/dism-plus/startup.webp&quot; alt=&quot;Startup&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Appx Uninstaller&lt;/h3&gt;
&lt;p&gt;Bulk uninstall Microsoft Store Apps.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/dism-plus/appx.webp&quot; alt=&quot;Appx&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Updates&lt;/h3&gt;
&lt;p&gt;Uninstalled Built-In Updates? Use the DISM++ Updates tab to scan and install new updates.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/dism-plus/updates.webp&quot; alt=&quot;Updates&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;The Rest - Toolbox, Deploy, Drivers, etc&lt;/h3&gt;
&lt;p&gt;Since this is seeing less and less updates, I wouldn&apos;t use these tools. Microsoft is constantly updating and modifying Windows, hence using the less targeted tools is NOT Recommended.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/2hEde5WuCSY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Ext4 in Windows</title><link>https://christitus.com/ext4-in-windows/</link><guid isPermaLink="true">https://christitus.com/ext4-in-windows/</guid><description>&lt;p&gt;Pulling in EXT4 drives is easy now with Windows WSL2. There are a few tricks that you need to know about though!&lt;/p&gt;

&lt;h2&gt;Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Any version of Windows 11&lt;/li&gt;
&lt;li&gt;Any version of Windows 10 (Build 22000+) &lt;em&gt;Note: check with &lt;code&gt;winver&lt;/code&gt; from Run&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Powershell as Admin and WSL 2 installed&lt;/li&gt;
&lt;li&gt;ONLY Internal drives are supported. No USB Drives.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Syntax pulled from &lt;a href=&quot;https://learn.microsoft.com/en-us/windows/wsl/wsl2-mount-disk&quot;&gt;https://learn.microsoft.com/en-us/windows/wsl/wsl2-mount-disk&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Determine Partition to Mount&lt;/h2&gt;
&lt;h3&gt;PowerShell as Admin&lt;/h3&gt;
&lt;p&gt;List Drives&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;GET-CimInstance -query &quot;SELECT * from Win32_DiskDrive&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Mount and list Drive Partitions&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wsl --mount &amp;lt;DiskPath&amp;gt; --bare
wsl
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Linux WSL2 Instance&lt;/h3&gt;
&lt;p&gt;List Drive Partitions from WSL Instance&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;lsblk
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;List Drive Types and IDs&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo blkid
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Mount from PowerShell as Admin&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Note: By default Windows will always assume it is EXT4, unless the &lt;code&gt;-t vfat&lt;/code&gt; option is used.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;From Windows PowerShell&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wsl --mount \\.\PhysicalDrive1 --partition 2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This will make it available in both Windows Explorer and WSL &lt;code&gt;/mnt/wsl/PhysicalDrive1&lt;/code&gt; path.&lt;/p&gt;
&lt;h4&gt;Unmount&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;wsl --unmount \\.\PhysicalDrive1
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/aX1vH1j7m7U&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 11 Jan 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Pulling in EXT4 drives is easy now with Windows WSL2. There are a few tricks that you need to know about though!&lt;/p&gt;

&lt;h2&gt;Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Any version of Windows 11&lt;/li&gt;
&lt;li&gt;Any version of Windows 10 (Build 22000+) &lt;em&gt;Note: check with &lt;code&gt;winver&lt;/code&gt; from Run&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Powershell as Admin and WSL 2 installed&lt;/li&gt;
&lt;li&gt;ONLY Internal drives are supported. No USB Drives.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Syntax pulled from &lt;a href=&quot;https://learn.microsoft.com/en-us/windows/wsl/wsl2-mount-disk&quot;&gt;https://learn.microsoft.com/en-us/windows/wsl/wsl2-mount-disk&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Determine Partition to Mount&lt;/h2&gt;
&lt;h3&gt;PowerShell as Admin&lt;/h3&gt;
&lt;p&gt;List Drives&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;GET-CimInstance -query &quot;SELECT * from Win32_DiskDrive&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Mount and list Drive Partitions&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wsl --mount &amp;lt;DiskPath&amp;gt; --bare
wsl
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Linux WSL2 Instance&lt;/h3&gt;
&lt;p&gt;List Drive Partitions from WSL Instance&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;lsblk
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;List Drive Types and IDs&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo blkid
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Mount from PowerShell as Admin&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Note: By default Windows will always assume it is EXT4, unless the &lt;code&gt;-t vfat&lt;/code&gt; option is used.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;From Windows PowerShell&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wsl --mount \\.\PhysicalDrive1 --partition 2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This will make it available in both Windows Explorer and WSL &lt;code&gt;/mnt/wsl/PhysicalDrive1&lt;/code&gt; path.&lt;/p&gt;
&lt;h4&gt;Unmount&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;wsl --unmount \\.\PhysicalDrive1
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/aX1vH1j7m7U&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Why Open Source?</title><link>https://christitus.com/why-open-source/</link><guid isPermaLink="true">https://christitus.com/why-open-source/</guid><description>&lt;p&gt;Why is open source done? The developer gives up all his code and potential for profit from the code.&lt;/p&gt;

&lt;h2&gt;The Reason&lt;/h2&gt;
&lt;p&gt;The main reason for open source is for collaboration and standardization. Without open source, you are reliant on a team of developers you hire and you are responsible for maintenance and all development. Hire less talented people? You have less development with a high cost. You also don&apos;t have the ability to learn past what skills the people on the project has. One man band? You can&apos;t learn much because you have no contributions and are reliant on your abilities.&lt;/p&gt;
&lt;p&gt;On the flip side, you can learn and collaborate with thousands of people around the world WITH open source. What about the loss of money from sales? I remind myself that I&apos;m not John Carmack, which was one of the first commercial open source successes with Quake and making it&apos;s engine open source. He did close source the content of the Game, but is a gifted individual. The game made millions while also being open source at its core. When I open source all my projects, I do so with the intent of learning something. The knowledge I pickup is MORE valuable to me than if I sold the project as a closed source tool.&lt;/p&gt;
&lt;h2&gt;Making Profit&lt;/h2&gt;
&lt;p&gt;Let&apos;s analyse how I make a million dollars off a project:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Closed Source - Project requires a purchase and little longer development time to put in DRM so it can&apos;t be copied or stolen. The software can only be as good as the developer. Even with a gifted developer, the chances of success are slim to even make $1000. However, if the program has a successful launch with massive adoption making a million dollars off a $50 sale price is easy. The main issue is marketing, which can be solved with social media. The downside is the programmer learns just what is needed for project completion if anything at all. The only person that should consider this option is the truly elite or companies that hire teams of people to complete the program.&lt;/li&gt;
&lt;li&gt;Open Source - Project can develop at a rapid pace with issues coming in from users, collaboration happening with pull requests from other programmers that have different knowledge sets than you. The amount of knowledge you gain by doing this is vast. I value the knowledge gained greater than the possibilities of closed source development. Also, since there are more eyeballs on the project the program itself will be more complete and feature rich. Instead of making with profit in mind, you are programming with the end user experience at the forefront.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Open Source Myths&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Crowdfunding - Doesn&apos;t work or rarely works in many instances. If you need a paycheck from a program, you need to go punch a clock somewhere. Every project I follow needs VC or private funding to see it to the finish line when time and money are priorities.&lt;/li&gt;
&lt;li&gt;Everything should be FREE - Quake is a perfect example of a properly monetized project. Engine was open source, but the content was not. Just because something is open source doesn&apos;t mean the compiled project needs to be.&lt;/li&gt;
&lt;li&gt;Less Secure - This is a strange belief that some subscribe to the security by obscurity line of thought. Popular open source projects have its code reviewed almost daily and security holes plugged quicker than closed source that might never even have an independent code review!&lt;/li&gt;
&lt;li&gt;Hard to Maintain - Since more people are pushing requests and issues it becomes harder to maintain as a few have said. Any project that I stopped maintaining or it just became unwieldy was my fault. The person in charge of the open source project has to be willing to deny and refuse MANY pull requests. It is up to the project maintainer to be vigilant, clean the code, and have strict rules for contribution. Anytime I&apos;ve failed to maintain a project, it was because of a poor understanding of a PR or GitHub in general.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/dhox4jNrBQM&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 09 Jan 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Why is open source done? The developer gives up all his code and potential for profit from the code.&lt;/p&gt;

&lt;h2&gt;The Reason&lt;/h2&gt;
&lt;p&gt;The main reason for open source is for collaboration and standardization. Without open source, you are reliant on a team of developers you hire and you are responsible for maintenance and all development. Hire less talented people? You have less development with a high cost. You also don&apos;t have the ability to learn past what skills the people on the project has. One man band? You can&apos;t learn much because you have no contributions and are reliant on your abilities.&lt;/p&gt;
&lt;p&gt;On the flip side, you can learn and collaborate with thousands of people around the world WITH open source. What about the loss of money from sales? I remind myself that I&apos;m not John Carmack, which was one of the first commercial open source successes with Quake and making it&apos;s engine open source. He did close source the content of the Game, but is a gifted individual. The game made millions while also being open source at its core. When I open source all my projects, I do so with the intent of learning something. The knowledge I pickup is MORE valuable to me than if I sold the project as a closed source tool.&lt;/p&gt;
&lt;h2&gt;Making Profit&lt;/h2&gt;
&lt;p&gt;Let&apos;s analyse how I make a million dollars off a project:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Closed Source - Project requires a purchase and little longer development time to put in DRM so it can&apos;t be copied or stolen. The software can only be as good as the developer. Even with a gifted developer, the chances of success are slim to even make $1000. However, if the program has a successful launch with massive adoption making a million dollars off a $50 sale price is easy. The main issue is marketing, which can be solved with social media. The downside is the programmer learns just what is needed for project completion if anything at all. The only person that should consider this option is the truly elite or companies that hire teams of people to complete the program.&lt;/li&gt;
&lt;li&gt;Open Source - Project can develop at a rapid pace with issues coming in from users, collaboration happening with pull requests from other programmers that have different knowledge sets than you. The amount of knowledge you gain by doing this is vast. I value the knowledge gained greater than the possibilities of closed source development. Also, since there are more eyeballs on the project the program itself will be more complete and feature rich. Instead of making with profit in mind, you are programming with the end user experience at the forefront.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Open Source Myths&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Crowdfunding - Doesn&apos;t work or rarely works in many instances. If you need a paycheck from a program, you need to go punch a clock somewhere. Every project I follow needs VC or private funding to see it to the finish line when time and money are priorities.&lt;/li&gt;
&lt;li&gt;Everything should be FREE - Quake is a perfect example of a properly monetized project. Engine was open source, but the content was not. Just because something is open source doesn&apos;t mean the compiled project needs to be.&lt;/li&gt;
&lt;li&gt;Less Secure - This is a strange belief that some subscribe to the security by obscurity line of thought. Popular open source projects have its code reviewed almost daily and security holes plugged quicker than closed source that might never even have an independent code review!&lt;/li&gt;
&lt;li&gt;Hard to Maintain - Since more people are pushing requests and issues it becomes harder to maintain as a few have said. Any project that I stopped maintaining or it just became unwieldy was my fault. The person in charge of the open source project has to be willing to deny and refuse MANY pull requests. It is up to the project maintainer to be vigilant, clean the code, and have strict rules for contribution. Anytime I&apos;ve failed to maintain a project, it was because of a poor understanding of a PR or GitHub in general.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/dhox4jNrBQM&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Thumbnails in Windows</title><link>https://christitus.com/thumbnails-in-windows/</link><guid isPermaLink="true">https://christitus.com/thumbnails-in-windows/</guid><description>&lt;p&gt;The thumbnail system in Windows has 4 major configuration areas dating back to 2000. From thumbs.db files, checkboxes, group policy, and registry edits, the Windows thumbnail system is, like everything in Windows, old and layered.&lt;/p&gt;

&lt;h2&gt;Where are thumbnails stored?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;thumbs.db&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;EVERY folder has this hidden file. It is a database of small images for that given directory. Delete it and it will replicate itself if there are files in that folder and you have NOT disabled thumbnails.&lt;/p&gt;
&lt;h2&gt;How do I configure thumbnails?&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;Oh, how do I count the ways...&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Any one of the following options will cause thumbnails NOT to work. Genius design...&lt;/p&gt;
&lt;h3&gt;File Options in File explorer&lt;/h3&gt;
&lt;p&gt;Make sure this option is UNCHECKED &quot;Always show icons, never thumbnails&quot; to DISPLAY thumbnails.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/thumbnails-in-windows/file-options.webp&quot; alt=&quot;File Options&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;System Performance Options&lt;/h3&gt;
&lt;p&gt;Open up this old hidden panel &lt;code&gt;sysdm.cpl&lt;/code&gt; using run and you can configure it here as well!&lt;/p&gt;
&lt;p&gt;Make sure this one is CHECKED! &quot;Show Thumbnails instead of icons&quot;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/thumbnails-in-windows/system-options.webp&quot; alt=&quot;System Options&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Group Policy&lt;/h3&gt;
&lt;p&gt;There are FOUR, yes, FOUR options to disable thumbnails in group policy. Launch it with &lt;code&gt;gpedit.msc&lt;/code&gt; from Run.&lt;/p&gt;
&lt;p&gt;Make sure these aren&apos;t configured:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/thumbnails-in-windows/gpedit.webp&quot; alt=&quot;Gpedit&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Registry&lt;/h3&gt;
&lt;p&gt;With every Windows option there is a corresponding registry entry.&lt;/p&gt;
&lt;p&gt;The main one is in &lt;code&gt;HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced&lt;/code&gt; with DWORD &lt;code&gt;DisableThumbnailCache&lt;/code&gt; with value of &lt;code&gt;1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Screenshot of &lt;code&gt;regedit&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/thumbnails-in-windows/regedit.webp&quot; alt=&quot;Regedit&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/JUEBG-_U1vc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 06 Jan 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The thumbnail system in Windows has 4 major configuration areas dating back to 2000. From thumbs.db files, checkboxes, group policy, and registry edits, the Windows thumbnail system is, like everything in Windows, old and layered.&lt;/p&gt;

&lt;h2&gt;Where are thumbnails stored?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;thumbs.db&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;EVERY folder has this hidden file. It is a database of small images for that given directory. Delete it and it will replicate itself if there are files in that folder and you have NOT disabled thumbnails.&lt;/p&gt;
&lt;h2&gt;How do I configure thumbnails?&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;Oh, how do I count the ways...&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Any one of the following options will cause thumbnails NOT to work. Genius design...&lt;/p&gt;
&lt;h3&gt;File Options in File explorer&lt;/h3&gt;
&lt;p&gt;Make sure this option is UNCHECKED &quot;Always show icons, never thumbnails&quot; to DISPLAY thumbnails.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/thumbnails-in-windows/file-options.webp&quot; alt=&quot;File Options&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;System Performance Options&lt;/h3&gt;
&lt;p&gt;Open up this old hidden panel &lt;code&gt;sysdm.cpl&lt;/code&gt; using run and you can configure it here as well!&lt;/p&gt;
&lt;p&gt;Make sure this one is CHECKED! &quot;Show Thumbnails instead of icons&quot;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/thumbnails-in-windows/system-options.webp&quot; alt=&quot;System Options&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Group Policy&lt;/h3&gt;
&lt;p&gt;There are FOUR, yes, FOUR options to disable thumbnails in group policy. Launch it with &lt;code&gt;gpedit.msc&lt;/code&gt; from Run.&lt;/p&gt;
&lt;p&gt;Make sure these aren&apos;t configured:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/thumbnails-in-windows/gpedit.webp&quot; alt=&quot;Gpedit&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Registry&lt;/h3&gt;
&lt;p&gt;With every Windows option there is a corresponding registry entry.&lt;/p&gt;
&lt;p&gt;The main one is in &lt;code&gt;HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced&lt;/code&gt; with DWORD &lt;code&gt;DisableThumbnailCache&lt;/code&gt; with value of &lt;code&gt;1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Screenshot of &lt;code&gt;regedit&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/thumbnails-in-windows/regedit.webp&quot; alt=&quot;Regedit&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/JUEBG-_U1vc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Fix Screen Tearing Linux</title><link>https://christitus.com/fix-screen-tearing-linux/</link><guid isPermaLink="true">https://christitus.com/fix-screen-tearing-linux/</guid><description>&lt;p&gt;The guide shows you ALL the methods to remove screen tearing. VSync, Monitor Composition, and Drivers that are problem childs.&lt;/p&gt;

&lt;h2&gt;Why it happens?&lt;/h2&gt;
&lt;p&gt;Screen tearing is the hardware driving more frames than the monitor is capable of displaying or displaying more than 1 frame in a single draw. On Linux the stock configurations are awful and you see it a LOT on nVidia AND Intel. Not so much on AMD, because the display drivers are baked into the kernel and one more reason for using AMD graphics on Linux when you can.&lt;/p&gt;
&lt;h2&gt;Compositors (Problem #1)&lt;/h2&gt;
&lt;p&gt;There are 3 main compositors that Linux distributions generally use.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;KWin (KDE)&lt;/li&gt;
&lt;li&gt;Mutter (GNOME)&lt;/li&gt;
&lt;li&gt;picom/compton (Various - picom is the evolution of compton)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In these there is options for VSync. This doesn&apos;t generally fix the issue, but it does help when you have BAD screen tearing when moving windows in you Linux system.&lt;/p&gt;
&lt;p&gt;KWin (KDE) Example:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/fix-screen-tearing-linux/kwin.webp&quot; alt=&quot;Kwin&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Mutter (Gnome) is enabled by default, but has made advancements with Variable Rate Refresh to fix some tearing back in July of 2022. This VRR improvement means you need to update to the latest GNOME and you can see improvements.&lt;/p&gt;
&lt;p&gt;Compton/picom Configuration: (ex. ~/picom.conf)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#################################
#       General Settings        #
#################################
vsync = true;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Intel/AMD X11 Configurations&lt;/h2&gt;
&lt;p&gt;The configuration to enable vsync/freesync support when the graphics are initialized is the primary method to fix tearing. Here are the options for BOTH Intel and AMD.&lt;/p&gt;
&lt;h3&gt;Intel X11 Config&lt;/h3&gt;
&lt;p&gt;File to Edit/Add: &lt;code&gt;/etc/X11/xorg.conf.d/20-intel.conf&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Section &quot;Device&quot;
    Identifier    &quot;Intel Graphics&quot;
    Driver        &quot;intel&quot;
    Option        &quot;TearFree&quot;  &quot;true&quot;
EndSection
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: There are extra options that can help like: &lt;code&gt;Option  &quot;AccelMethod&quot; &quot;uxa&quot;&lt;/code&gt; or &lt;code&gt;Option  &quot;TripleBuffer&quot; &quot;true&quot;&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;ISSUE: After enabling and rebooting if you start to see screen artifacts there is a BAD Driver package that causes this. Remove &lt;code&gt;sudo apt remove xserver-xorg-video-intel&lt;/code&gt;. This is an old intel display driver that is NOT being maintained. The newer the computer, the more problems this package will cause. These drivers aren&apos;t even needed and I don&apos;t know why they are installed by default and not removed altogether!&lt;/p&gt;
&lt;h3&gt;AMD X11 Config&lt;/h3&gt;
&lt;p&gt;File to Edit/Add: &lt;code&gt;/etc/X11/xorg.conf.d/20-amd.conf&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Section &quot;Device&quot;
    Identifier  &quot;AMD Graphics&quot;
    Driver      &quot;amdgpu&quot;
    Option      &quot;TearFree&quot; &quot;true&quot;
EndSection
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;nVidia Configuration - Why is it always nVidia?&lt;/h2&gt;
&lt;p&gt;I hope in 2 years nVidia cards stop sucking as bad in Linux, because it is an AWFUL experience. Yes, you can fix it with drivers and custom settings, but the first impressions from users with nVidia cards is seldom a good one. Let&apos;s start with making sure you have the &lt;code&gt;nvidia-driver&lt;/code&gt; installed with &lt;code&gt;nvidia-settings&lt;/code&gt; package.&lt;/p&gt;
&lt;h3&gt;nvidia-settings&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/fix-screen-tearing-linux/nvidia-settings.webp&quot; alt=&quot;Nvidia Settings&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Go to &lt;strong&gt;X Server Display Configuration &amp;gt; Advanced&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Enable &lt;strong&gt;Force Full Composition Pipeline&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Apply and Save to X Configuration File.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;CLI Method&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nvidia-settings --assign CurrentMetaMode=&quot;nvidia-auto-select +0+0 {ForceFullCompositionPipeline=On}&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Reboot!&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/rVBq6d3c1gM&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 04 Jan 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The guide shows you ALL the methods to remove screen tearing. VSync, Monitor Composition, and Drivers that are problem childs.&lt;/p&gt;

&lt;h2&gt;Why it happens?&lt;/h2&gt;
&lt;p&gt;Screen tearing is the hardware driving more frames than the monitor is capable of displaying or displaying more than 1 frame in a single draw. On Linux the stock configurations are awful and you see it a LOT on nVidia AND Intel. Not so much on AMD, because the display drivers are baked into the kernel and one more reason for using AMD graphics on Linux when you can.&lt;/p&gt;
&lt;h2&gt;Compositors (Problem #1)&lt;/h2&gt;
&lt;p&gt;There are 3 main compositors that Linux distributions generally use.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;KWin (KDE)&lt;/li&gt;
&lt;li&gt;Mutter (GNOME)&lt;/li&gt;
&lt;li&gt;picom/compton (Various - picom is the evolution of compton)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In these there is options for VSync. This doesn&apos;t generally fix the issue, but it does help when you have BAD screen tearing when moving windows in you Linux system.&lt;/p&gt;
&lt;p&gt;KWin (KDE) Example:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/fix-screen-tearing-linux/kwin.webp&quot; alt=&quot;Kwin&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Mutter (Gnome) is enabled by default, but has made advancements with Variable Rate Refresh to fix some tearing back in July of 2022. This VRR improvement means you need to update to the latest GNOME and you can see improvements.&lt;/p&gt;
&lt;p&gt;Compton/picom Configuration: (ex. ~/picom.conf)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#################################
#       General Settings        #
#################################
vsync = true;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Intel/AMD X11 Configurations&lt;/h2&gt;
&lt;p&gt;The configuration to enable vsync/freesync support when the graphics are initialized is the primary method to fix tearing. Here are the options for BOTH Intel and AMD.&lt;/p&gt;
&lt;h3&gt;Intel X11 Config&lt;/h3&gt;
&lt;p&gt;File to Edit/Add: &lt;code&gt;/etc/X11/xorg.conf.d/20-intel.conf&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Section &quot;Device&quot;
    Identifier    &quot;Intel Graphics&quot;
    Driver        &quot;intel&quot;
    Option        &quot;TearFree&quot;  &quot;true&quot;
EndSection
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: There are extra options that can help like: &lt;code&gt;Option  &quot;AccelMethod&quot; &quot;uxa&quot;&lt;/code&gt; or &lt;code&gt;Option  &quot;TripleBuffer&quot; &quot;true&quot;&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;ISSUE: After enabling and rebooting if you start to see screen artifacts there is a BAD Driver package that causes this. Remove &lt;code&gt;sudo apt remove xserver-xorg-video-intel&lt;/code&gt;. This is an old intel display driver that is NOT being maintained. The newer the computer, the more problems this package will cause. These drivers aren&apos;t even needed and I don&apos;t know why they are installed by default and not removed altogether!&lt;/p&gt;
&lt;h3&gt;AMD X11 Config&lt;/h3&gt;
&lt;p&gt;File to Edit/Add: &lt;code&gt;/etc/X11/xorg.conf.d/20-amd.conf&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Section &quot;Device&quot;
    Identifier  &quot;AMD Graphics&quot;
    Driver      &quot;amdgpu&quot;
    Option      &quot;TearFree&quot; &quot;true&quot;
EndSection
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;nVidia Configuration - Why is it always nVidia?&lt;/h2&gt;
&lt;p&gt;I hope in 2 years nVidia cards stop sucking as bad in Linux, because it is an AWFUL experience. Yes, you can fix it with drivers and custom settings, but the first impressions from users with nVidia cards is seldom a good one. Let&apos;s start with making sure you have the &lt;code&gt;nvidia-driver&lt;/code&gt; installed with &lt;code&gt;nvidia-settings&lt;/code&gt; package.&lt;/p&gt;
&lt;h3&gt;nvidia-settings&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2023/fix-screen-tearing-linux/nvidia-settings.webp&quot; alt=&quot;Nvidia Settings&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Go to &lt;strong&gt;X Server Display Configuration &amp;gt; Advanced&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Enable &lt;strong&gt;Force Full Composition Pipeline&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Apply and Save to X Configuration File.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;CLI Method&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nvidia-settings --assign CurrentMetaMode=&quot;nvidia-auto-select +0+0 {ForceFullCompositionPipeline=On}&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Reboot!&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/rVBq6d3c1gM&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Block Razer Bloatware</title><link>https://christitus.com/block-razer-bloatware/</link><guid isPermaLink="true">https://christitus.com/block-razer-bloatware/</guid><description>&lt;p&gt;This script is made due to the frustration of the bloatware that gets install for all Razer devices.&lt;/p&gt;

&lt;h2&gt;The Problem&lt;/h2&gt;
&lt;p&gt;The hardware works fine without any software and just installing the BASE synapse software it runs almost 500 MB installer that has 3 services and 15 RUNNING PROCESSES! This gets worse the more software you select past Synapse. The worst part about all this? It auto-installs when you plug in ANY Razer USB product. It is classified as malware because the hardware doesn&apos;t need it AND it slow yours your computer down.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/block-razer-bloatware/bloatware.webp&quot; alt=&quot;Bloatware&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;The Solution&lt;/h2&gt;
&lt;p&gt;I&apos;ve developed a simplistic approach, but may need to expand when Razer learns of this project. This script, locates the installer folder and deletes it while protecting from being written to again. This prevents the hardware from running Razer installers.&lt;/p&gt;
&lt;p&gt;GitHub Project: &lt;a href=&quot;https://github.com/ChrisTitusTech/block-razer&quot;&gt;https://github.com/ChrisTitusTech/block-razer&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;One line Script: (Run As Administrator in Powershell)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;irm https://raw.githubusercontent.com/ChrisTitusTech/block-razer/main/block.ps1 | iex
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/OlFR6PeJA4U&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 02 Jan 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This script is made due to the frustration of the bloatware that gets install for all Razer devices.&lt;/p&gt;

&lt;h2&gt;The Problem&lt;/h2&gt;
&lt;p&gt;The hardware works fine without any software and just installing the BASE synapse software it runs almost 500 MB installer that has 3 services and 15 RUNNING PROCESSES! This gets worse the more software you select past Synapse. The worst part about all this? It auto-installs when you plug in ANY Razer USB product. It is classified as malware because the hardware doesn&apos;t need it AND it slow yours your computer down.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/block-razer-bloatware/bloatware.webp&quot; alt=&quot;Bloatware&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;The Solution&lt;/h2&gt;
&lt;p&gt;I&apos;ve developed a simplistic approach, but may need to expand when Razer learns of this project. This script, locates the installer folder and deletes it while protecting from being written to again. This prevents the hardware from running Razer installers.&lt;/p&gt;
&lt;p&gt;GitHub Project: &lt;a href=&quot;https://github.com/ChrisTitusTech/block-razer&quot;&gt;https://github.com/ChrisTitusTech/block-razer&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;One line Script: (Run As Administrator in Powershell)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;irm https://raw.githubusercontent.com/ChrisTitusTech/block-razer/main/block.ps1 | iex
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/OlFR6PeJA4U&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Worst Tech of 2022</title><link>https://christitus.com/worst-tech-of-2022/</link><guid isPermaLink="true">https://christitus.com/worst-tech-of-2022/</guid><description>&lt;p&gt;Last year I did the top 5 worst devices in 2021, lets go over the worst technology that hurts all of us daily for 2022.&lt;/p&gt;

&lt;h2&gt;Smartphones&lt;/h2&gt;
&lt;p&gt;This year I&apos;ve done 3 videos going over my smartphone addiction (which was less than the average person at 1 hour of usage a day) and how I fixed it. It is alarming to me that my addiction, which I considered bad, was still 1/3 of the average person. It is ALARMING that we still consider these devices good. There are aspects of them which do help, but a vast majority of our interactions have a negative effect on our lives. See the journey @ &lt;a href=&quot;https://youtu.be/tzbKqTRuRzU&quot;&gt;https://youtu.be/tzbKqTRuRzU&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;What did I gain from &quot;ditching&quot; a smart phone?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;3x more productivity&lt;/li&gt;
&lt;li&gt;Mindfulness: Less Anxiety, More at Rest, and no longer overwhelmed&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What did I lose?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No news on the toilet&lt;/li&gt;
&lt;li&gt;Email on the go&lt;/li&gt;
&lt;li&gt;Music while working out&lt;/li&gt;
&lt;li&gt;Workout apps&lt;/li&gt;
&lt;li&gt;Food apps&lt;/li&gt;
&lt;li&gt;Social Media&lt;/li&gt;
&lt;li&gt;Uber&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are things above that many consider essential. However, as a business owner and an employee I have found none of them are. I did miss them, and as such decided to recreate my smart phone. I took a base Pixel 4a and stripped it down to the bare minimum and ONLY installed the essential apps that would not distract me or come with a negative side-effect. See &quot;&lt;a href=&quot;https://christitus.com/making-the-perfect-phone/&quot;&gt;Make the Perfect Phone&lt;/a&gt;&quot;.&lt;/p&gt;
&lt;h2&gt;Social Media&lt;/h2&gt;
&lt;p&gt;Shocking, I know... It&apos;s bad for us. Welcome to 5 years ago! YouTube has become a substantial amount of my revenue. This makes it hard for me to just quit, but I always hate a good excuse. &quot;You either do or do not!&quot; - Yoda&lt;/p&gt;
&lt;p&gt;I&apos;m not going to bore you with a 10 minute lecture about social media making us compare each other, making us materialistic, worried about others opinions, and the laundry list of other terrible things tearing the fabric of our society apart. I stole that last bit from Chamath Palihapitiya (One of the people responsible for the rise of Facebook).&lt;/p&gt;
&lt;p&gt;So is all Social Media bad? Nope. YouTube can be a great thing and I&apos;ve learned impossible things at amazing speed because of it. The correct question is... Is Social Media algorithms bad? Absolutely! They are designed to take up as much of our time and show us a bunch of garbage that is interesting but often isn&apos;t educational. My solution? RSS. Check out my post on fixing the internet: &lt;a href=&quot;https://christitus.com/why-we-dont-browse-the-internet-anymore/&quot;&gt;https://christitus.com/why-we-dont-browse-the-internet-anymore/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;The Future&lt;/h2&gt;
&lt;p&gt;If we do nothing we will become slaves to our technology and allow corporations to use and abuse us. Or we can seek solutions and identify bad habits that negatively effect us. We use all the opportunity and technology in a constructive way that makes us damn near superhuman. The choice is ours.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/HqDXV_2doVY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 30 Dec 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Last year I did the top 5 worst devices in 2021, lets go over the worst technology that hurts all of us daily for 2022.&lt;/p&gt;

&lt;h2&gt;Smartphones&lt;/h2&gt;
&lt;p&gt;This year I&apos;ve done 3 videos going over my smartphone addiction (which was less than the average person at 1 hour of usage a day) and how I fixed it. It is alarming to me that my addiction, which I considered bad, was still 1/3 of the average person. It is ALARMING that we still consider these devices good. There are aspects of them which do help, but a vast majority of our interactions have a negative effect on our lives. See the journey @ &lt;a href=&quot;https://youtu.be/tzbKqTRuRzU&quot;&gt;https://youtu.be/tzbKqTRuRzU&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;What did I gain from &quot;ditching&quot; a smart phone?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;3x more productivity&lt;/li&gt;
&lt;li&gt;Mindfulness: Less Anxiety, More at Rest, and no longer overwhelmed&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What did I lose?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No news on the toilet&lt;/li&gt;
&lt;li&gt;Email on the go&lt;/li&gt;
&lt;li&gt;Music while working out&lt;/li&gt;
&lt;li&gt;Workout apps&lt;/li&gt;
&lt;li&gt;Food apps&lt;/li&gt;
&lt;li&gt;Social Media&lt;/li&gt;
&lt;li&gt;Uber&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are things above that many consider essential. However, as a business owner and an employee I have found none of them are. I did miss them, and as such decided to recreate my smart phone. I took a base Pixel 4a and stripped it down to the bare minimum and ONLY installed the essential apps that would not distract me or come with a negative side-effect. See &quot;&lt;a href=&quot;https://christitus.com/making-the-perfect-phone/&quot;&gt;Make the Perfect Phone&lt;/a&gt;&quot;.&lt;/p&gt;
&lt;h2&gt;Social Media&lt;/h2&gt;
&lt;p&gt;Shocking, I know... It&apos;s bad for us. Welcome to 5 years ago! YouTube has become a substantial amount of my revenue. This makes it hard for me to just quit, but I always hate a good excuse. &quot;You either do or do not!&quot; - Yoda&lt;/p&gt;
&lt;p&gt;I&apos;m not going to bore you with a 10 minute lecture about social media making us compare each other, making us materialistic, worried about others opinions, and the laundry list of other terrible things tearing the fabric of our society apart. I stole that last bit from Chamath Palihapitiya (One of the people responsible for the rise of Facebook).&lt;/p&gt;
&lt;p&gt;So is all Social Media bad? Nope. YouTube can be a great thing and I&apos;ve learned impossible things at amazing speed because of it. The correct question is... Is Social Media algorithms bad? Absolutely! They are designed to take up as much of our time and show us a bunch of garbage that is interesting but often isn&apos;t educational. My solution? RSS. Check out my post on fixing the internet: &lt;a href=&quot;https://christitus.com/why-we-dont-browse-the-internet-anymore/&quot;&gt;https://christitus.com/why-we-dont-browse-the-internet-anymore/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;The Future&lt;/h2&gt;
&lt;p&gt;If we do nothing we will become slaves to our technology and allow corporations to use and abuse us. Or we can seek solutions and identify bad habits that negatively effect us. We use all the opportunity and technology in a constructive way that makes us damn near superhuman. The choice is ours.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/HqDXV_2doVY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Customizing Steam Games in Linux</title><link>https://christitus.com/customizing-steam-games-in-linux/</link><guid isPermaLink="true">https://christitus.com/customizing-steam-games-in-linux/</guid><description>&lt;p&gt;Installing steam games on Linux is easy but running executables inside those games to add mods, maps, and other Windows programs that enhance the gaming experience is essential. This guide shows you how to do this.&lt;/p&gt;

&lt;h2&gt;Protontricks&lt;/h2&gt;
&lt;p&gt;This package has evolved and a fantastic way of fixing broken games and enhancing existing games. The source repo is @ &lt;a href=&quot;https://github.com/Matoking/protontricks&quot;&gt;https://github.com/Matoking/protontricks&lt;/a&gt; and it has a couple dependencies.&lt;/p&gt;
&lt;p&gt;I caution you from using the built-in packages on Ubuntu 22.04 because it uses an old package. If you are reading this in 2024 this might have changed, but until then I recommend installing it through the official method using &lt;code&gt;pipx&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;Installing&lt;/h3&gt;
&lt;p&gt;First install pipx&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install python3-pip python3-setuptools python3-venv pipx winetricks
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then use pipx to install protontricks&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pipx install protontricks
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Using Protontricks&lt;/h2&gt;
&lt;p&gt;List all installed steam games with &lt;code&gt;protontricks -l&lt;/code&gt; &lt;em&gt;Note: Old versions do NOT have this feature&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/customizing-steam-games-in-linux/list-proton.webp&quot; alt=&quot;List Proton&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Adding corefonts to a prefix (this fixes a LOT of black screens or if launchers don&apos;t display fonts/text properly)&lt;/p&gt;
&lt;p&gt;Syntax: &lt;code&gt;protontricks APPID corefonts&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Example of adding corefonts to Lord of The Rings Online.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/customizing-steam-games-in-linux/corefont-install.webp&quot; alt=&quot;Corefont Install&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Running custom commands (executables inside the game directories)&lt;/p&gt;
&lt;p&gt;Syntax: &lt;code&gt;protontricks-launch --appid APPID COMMANDEXE&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Example launching a plugin installer for Lord of the Rings Online&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/customizing-steam-games-in-linux/plugin-launch.webp&quot; alt=&quot;Plugin Launch&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/nRiUdVSeuFU&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 28 Dec 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Installing steam games on Linux is easy but running executables inside those games to add mods, maps, and other Windows programs that enhance the gaming experience is essential. This guide shows you how to do this.&lt;/p&gt;

&lt;h2&gt;Protontricks&lt;/h2&gt;
&lt;p&gt;This package has evolved and a fantastic way of fixing broken games and enhancing existing games. The source repo is @ &lt;a href=&quot;https://github.com/Matoking/protontricks&quot;&gt;https://github.com/Matoking/protontricks&lt;/a&gt; and it has a couple dependencies.&lt;/p&gt;
&lt;p&gt;I caution you from using the built-in packages on Ubuntu 22.04 because it uses an old package. If you are reading this in 2024 this might have changed, but until then I recommend installing it through the official method using &lt;code&gt;pipx&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;Installing&lt;/h3&gt;
&lt;p&gt;First install pipx&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install python3-pip python3-setuptools python3-venv pipx winetricks
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then use pipx to install protontricks&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pipx install protontricks
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Using Protontricks&lt;/h2&gt;
&lt;p&gt;List all installed steam games with &lt;code&gt;protontricks -l&lt;/code&gt; &lt;em&gt;Note: Old versions do NOT have this feature&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/customizing-steam-games-in-linux/list-proton.webp&quot; alt=&quot;List Proton&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Adding corefonts to a prefix (this fixes a LOT of black screens or if launchers don&apos;t display fonts/text properly)&lt;/p&gt;
&lt;p&gt;Syntax: &lt;code&gt;protontricks APPID corefonts&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Example of adding corefonts to Lord of The Rings Online.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/customizing-steam-games-in-linux/corefont-install.webp&quot; alt=&quot;Corefont Install&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Running custom commands (executables inside the game directories)&lt;/p&gt;
&lt;p&gt;Syntax: &lt;code&gt;protontricks-launch --appid APPID COMMANDEXE&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Example launching a plugin installer for Lord of the Rings Online&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/customizing-steam-games-in-linux/plugin-launch.webp&quot; alt=&quot;Plugin Launch&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/nRiUdVSeuFU&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>2022 Recap</title><link>https://christitus.com/2022-recap/</link><guid isPermaLink="true">https://christitus.com/2022-recap/</guid><description>&lt;p&gt;Recap of 2022.&lt;/p&gt;

&lt;h2&gt;The 2022 Goals&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[x] Live Streams expanded&lt;/li&gt;
&lt;li&gt;[x] More Virtualization Videos&lt;/li&gt;
&lt;li&gt;[x] More GitHub Projects (Over 500+ Contributions)&lt;/li&gt;
&lt;li&gt;[ ] Custom Debian Build (Debian-Titus)&lt;/li&gt;
&lt;li&gt;[ ] Studio Revamp&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The Live streams experiment were a failure. I&apos;ve ramped up my virtualization content, but find a lot of it go over peoples heads. For GitHub contributions, I started to find my groove about midway through the year, and make substantive progress on projects. The studio revamp is an ongoing project, but to keep making the best use of the space. While I accomplished some of this in 2022, it will be an ongoing process that I will complete next year with a far better layout and feel.&lt;/p&gt;
&lt;h2&gt;2023 Goals&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[ ] Finish Ubuntu-Titus&lt;/li&gt;
&lt;li&gt;[ ] 1000+ Github Contributions&lt;/li&gt;
&lt;li&gt;[ ] Add Shorts / Live into Weekly workflow while maintaining 3 videos per week&lt;/li&gt;
&lt;li&gt;[ ] Get in best shape of my life&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This year will be the best year all around. I made mistakes in 2022 and have a better starting block than I&apos;ve had in my life both professionally and personally. I can&apos;t wait to crush 2023 and make it the best year of my life thus far.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/8UvGMmGxlyc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Sat, 24 Dec 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Recap of 2022.&lt;/p&gt;

&lt;h2&gt;The 2022 Goals&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[x] Live Streams expanded&lt;/li&gt;
&lt;li&gt;[x] More Virtualization Videos&lt;/li&gt;
&lt;li&gt;[x] More GitHub Projects (Over 500+ Contributions)&lt;/li&gt;
&lt;li&gt;[ ] Custom Debian Build (Debian-Titus)&lt;/li&gt;
&lt;li&gt;[ ] Studio Revamp&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The Live streams experiment were a failure. I&apos;ve ramped up my virtualization content, but find a lot of it go over peoples heads. For GitHub contributions, I started to find my groove about midway through the year, and make substantive progress on projects. The studio revamp is an ongoing project, but to keep making the best use of the space. While I accomplished some of this in 2022, it will be an ongoing process that I will complete next year with a far better layout and feel.&lt;/p&gt;
&lt;h2&gt;2023 Goals&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[ ] Finish Ubuntu-Titus&lt;/li&gt;
&lt;li&gt;[ ] 1000+ Github Contributions&lt;/li&gt;
&lt;li&gt;[ ] Add Shorts / Live into Weekly workflow while maintaining 3 videos per week&lt;/li&gt;
&lt;li&gt;[ ] Get in best shape of my life&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This year will be the best year all around. I made mistakes in 2022 and have a better starting block than I&apos;ve had in my life both professionally and personally. I can&apos;t wait to crush 2023 and make it the best year of my life thus far.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/8UvGMmGxlyc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Quickemu</title><link>https://christitus.com/quickemu/</link><guid isPermaLink="true">https://christitus.com/quickemu/</guid><description>&lt;p&gt;This is a GitHub project that installs virtual machines for more than 300+ spins of Linux, Windows, and macOS!&lt;/p&gt;

&lt;h2&gt;The Project&lt;/h2&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://github.com/quickemu-project/quickemu&quot;&gt;https://github.com/quickemu-project/quickemu&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;Dependency requirements:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install qemu bash coreutils ovmf grep jq lsb procps python3 genisoimage usbutils util-linux sed spice-client-gtk swtpm wget xdg-user-dirs zsync unzip
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Install for Ubuntu&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-add-repository ppa:flexiondotorg/quickemu
sudo apt update
sudo apt install quickemu
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;GUI Install&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo add-apt-repository ppa:yannick-mauray/quickgui
sudo apt update
sudo apt install quickgui
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Other Distros (Use &lt;a href=&quot;https://christitus.com/nix-package-manager/&quot;&gt;NIX Installer&lt;/a&gt;)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nix-env -iA nixpkgs.quickemu
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Build from Source for GUI &lt;a href=&quot;https://github.com/quickemu-project/quickgui&quot;&gt;https://github.com/quickemu-project/quickgui&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;CLI Usage&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;quickget ubuntu-mate 22.04
quickemu --vm ubuntu-mate-22.04.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is pretty easy to manage with it&apos;s own dedicated directory. Ex. &lt;code&gt;~/VMs&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Downloading via GUI&lt;/h2&gt;
&lt;p&gt;Select your OS and Press Download (Yes, it&apos;s that easy!)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/quickemu/quickgui.webp&quot; alt=&quot;Quickgui&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/quickemu/kubuntu-download.webp&quot; alt=&quot;Kubuntu Download&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/87MCT3Ekjlo&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 21 Dec 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This is a GitHub project that installs virtual machines for more than 300+ spins of Linux, Windows, and macOS!&lt;/p&gt;

&lt;h2&gt;The Project&lt;/h2&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://github.com/quickemu-project/quickemu&quot;&gt;https://github.com/quickemu-project/quickemu&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;Dependency requirements:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install qemu bash coreutils ovmf grep jq lsb procps python3 genisoimage usbutils util-linux sed spice-client-gtk swtpm wget xdg-user-dirs zsync unzip
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Install for Ubuntu&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-add-repository ppa:flexiondotorg/quickemu
sudo apt update
sudo apt install quickemu
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;GUI Install&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo add-apt-repository ppa:yannick-mauray/quickgui
sudo apt update
sudo apt install quickgui
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Other Distros (Use &lt;a href=&quot;https://christitus.com/nix-package-manager/&quot;&gt;NIX Installer&lt;/a&gt;)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nix-env -iA nixpkgs.quickemu
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Build from Source for GUI &lt;a href=&quot;https://github.com/quickemu-project/quickgui&quot;&gt;https://github.com/quickemu-project/quickgui&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;CLI Usage&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;quickget ubuntu-mate 22.04
quickemu --vm ubuntu-mate-22.04.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is pretty easy to manage with it&apos;s own dedicated directory. Ex. &lt;code&gt;~/VMs&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Downloading via GUI&lt;/h2&gt;
&lt;p&gt;Select your OS and Press Download (Yes, it&apos;s that easy!)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/quickemu/quickgui.webp&quot; alt=&quot;Quickgui&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/quickemu/kubuntu-download.webp&quot; alt=&quot;Kubuntu Download&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/87MCT3Ekjlo&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Virtual Machine Formats</title><link>https://christitus.com/virtual-machine-formats/</link><guid isPermaLink="true">https://christitus.com/virtual-machine-formats/</guid><description>&lt;p&gt;This Guide goes over transferring and what each type of virtual machine is used for.&lt;/p&gt;

&lt;h2&gt;The Types&lt;/h2&gt;
&lt;h3&gt;VDI - Virtualbox&lt;/h3&gt;
&lt;p&gt;The only time I&apos;ve seen this format is in Virtualbox instances. They are always converted when moved to other hypervisors. The VDI packaging is open source and considered efficient.&lt;/p&gt;
&lt;h3&gt;VMDK - VMWare&lt;/h3&gt;
&lt;p&gt;This is the market leader and what you will see the most in virtualization environments. Virtualbox and QEMU can run them without conversion.&lt;/p&gt;
&lt;h3&gt;VHD - Microsoft&lt;/h3&gt;
&lt;p&gt;Leave it to Microsoft to make the worst container. VHD only holds a 2 TB capacity and why they created VHDX which improves this to 64 TB. Its not as performant as other containers, but gets the job done. The main benefit to these is they are read natively inside Windows without the need for extra software. You can mount and look at partition layouts with native windows tools like Disk Management.&lt;/p&gt;
&lt;h3&gt;QCOW2 - QEMU&lt;/h3&gt;
&lt;p&gt;QEMU is by far my favorite hypervisor because of the versatility it gives me. QCOW2 is the file format you will use and it fantastic. There is a conversion tool that comes with QEMU that will easily convert any image. I&apos;d recommend first converting the image to OVA as it is the most portable and versatile. Here is a sample script to convert to qcow2.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tar -xvf original.ova
qemu-img convert -O qcow2 original.vmdk original.qcow2
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;OVF and OVA - The Best Way to Share VMs&lt;/h3&gt;
&lt;p&gt;This standard is widely adopted from VMWare, but you will be able to ingest these files into any hypervisor. VMWare, Virtualbox, and XenServer (XCP-ng) do this natively, where QEMU needs a little more conversion, but simple to use. Here is the &lt;a href=&quot;https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vm_admin.doc/GUID-AE61948B-C2EE-436E-BAFB-3C7209088552.html&quot;&gt;official website&lt;/a&gt;  right up on these files.&lt;/p&gt;
&lt;p&gt;The TLDR is use OVA as it grabs all the information from the VMs (VMDK, OVF, and other information) and packages it all into one file for you. This is by far the best way to share a Virtual Machine.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/EdP1Fc-exwY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 19 Dec 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This Guide goes over transferring and what each type of virtual machine is used for.&lt;/p&gt;

&lt;h2&gt;The Types&lt;/h2&gt;
&lt;h3&gt;VDI - Virtualbox&lt;/h3&gt;
&lt;p&gt;The only time I&apos;ve seen this format is in Virtualbox instances. They are always converted when moved to other hypervisors. The VDI packaging is open source and considered efficient.&lt;/p&gt;
&lt;h3&gt;VMDK - VMWare&lt;/h3&gt;
&lt;p&gt;This is the market leader and what you will see the most in virtualization environments. Virtualbox and QEMU can run them without conversion.&lt;/p&gt;
&lt;h3&gt;VHD - Microsoft&lt;/h3&gt;
&lt;p&gt;Leave it to Microsoft to make the worst container. VHD only holds a 2 TB capacity and why they created VHDX which improves this to 64 TB. Its not as performant as other containers, but gets the job done. The main benefit to these is they are read natively inside Windows without the need for extra software. You can mount and look at partition layouts with native windows tools like Disk Management.&lt;/p&gt;
&lt;h3&gt;QCOW2 - QEMU&lt;/h3&gt;
&lt;p&gt;QEMU is by far my favorite hypervisor because of the versatility it gives me. QCOW2 is the file format you will use and it fantastic. There is a conversion tool that comes with QEMU that will easily convert any image. I&apos;d recommend first converting the image to OVA as it is the most portable and versatile. Here is a sample script to convert to qcow2.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tar -xvf original.ova
qemu-img convert -O qcow2 original.vmdk original.qcow2
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;OVF and OVA - The Best Way to Share VMs&lt;/h3&gt;
&lt;p&gt;This standard is widely adopted from VMWare, but you will be able to ingest these files into any hypervisor. VMWare, Virtualbox, and XenServer (XCP-ng) do this natively, where QEMU needs a little more conversion, but simple to use. Here is the &lt;a href=&quot;https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vm_admin.doc/GUID-AE61948B-C2EE-436E-BAFB-3C7209088552.html&quot;&gt;official website&lt;/a&gt;  right up on these files.&lt;/p&gt;
&lt;p&gt;The TLDR is use OVA as it grabs all the information from the VMs (VMDK, OVF, and other information) and packages it all into one file for you. This is by far the best way to share a Virtual Machine.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/EdP1Fc-exwY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Acronis Cyber Protect Home Office</title><link>https://christitus.com/acronis-true-image/</link><guid isPermaLink="true">https://christitus.com/acronis-true-image/</guid><description>&lt;p&gt;Acronis True Image has undergone an expansion and rename in the past couple years to Acronis Cyber Protect Home Office. This is a quick breakdown of their new offering.&lt;/p&gt;

&lt;h2&gt;Backup&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/acronis-true-image/backup.webp&quot; alt=&quot;Backup&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Acronis backup is what the company is known for as it offered block level backup over 10 years ago. Their backup services have always been some of the best and this still holds true today. The interface is simplified and intuitive. It can get a complete copy of the entire system while its online and back it up locally or to the cloud.&lt;/p&gt;
&lt;p&gt;Transfer rates to the cloud on my connection maxed out around 95 Mbps and went as low as 50 Mbps. This is average for most cloud backup speeds in the residential realm.&lt;/p&gt;
&lt;h2&gt;Anti-Virus&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/acronis-true-image/av.webp&quot; alt=&quot;Av&quot; /&gt;&lt;/p&gt;
&lt;p&gt;One of the biggest additions is the inclusion of anti-virus. This protection is adequate and it brings the entire protection suite in-house. I&apos;m not a fan of most AV implementations and what matters is a good backup when these inevitably fail. It makes sense that they included this, but to me it makes the software seem bloated and unnecessary.&lt;/p&gt;
&lt;h2&gt;File Sync&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/acronis-true-image/sync.webp&quot; alt=&quot;Sync&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This addition is beneficial for those with space concerns or multiple computers. The archive feature removes the file from the local device once it uploads it to the Acronis online cloud. The sync function is like Dropbox and syncs files across devices.&lt;/p&gt;
&lt;h2&gt;Other Tools&lt;/h2&gt;
&lt;p&gt;Disk Clone - is helpful when replacing hard drives. I used to use this all the time when SDDs hit the market and I was replacing legacy hard drives.&lt;/p&gt;
&lt;p&gt;It uses 84 FOSS programs listed on their website: &lt;a href=&quot;https://kb.acronis.com/content/69667&quot;&gt;https://kb.acronis.com/content/69667&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Cost&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/acronis-true-image/cost.webp&quot; alt=&quot;Cost&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The product has moved to a subscription model. The essential model is local and offers the core backup services with no cloud. The advanced function could work for those that don&apos;t need a full image of their device, but to utilise the software to its fullest capacity it will cost you $124.99 per year for the software with 1 TB of storage. Each additional TB of storage adds $40. No doubt this is on the high end of cost when compared to the competition and why they added they expanded its offerings past backup to help justify the price.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/VYTCeIHS6Kg&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 16 Dec 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Acronis True Image has undergone an expansion and rename in the past couple years to Acronis Cyber Protect Home Office. This is a quick breakdown of their new offering.&lt;/p&gt;

&lt;h2&gt;Backup&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/acronis-true-image/backup.webp&quot; alt=&quot;Backup&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Acronis backup is what the company is known for as it offered block level backup over 10 years ago. Their backup services have always been some of the best and this still holds true today. The interface is simplified and intuitive. It can get a complete copy of the entire system while its online and back it up locally or to the cloud.&lt;/p&gt;
&lt;p&gt;Transfer rates to the cloud on my connection maxed out around 95 Mbps and went as low as 50 Mbps. This is average for most cloud backup speeds in the residential realm.&lt;/p&gt;
&lt;h2&gt;Anti-Virus&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/acronis-true-image/av.webp&quot; alt=&quot;Av&quot; /&gt;&lt;/p&gt;
&lt;p&gt;One of the biggest additions is the inclusion of anti-virus. This protection is adequate and it brings the entire protection suite in-house. I&apos;m not a fan of most AV implementations and what matters is a good backup when these inevitably fail. It makes sense that they included this, but to me it makes the software seem bloated and unnecessary.&lt;/p&gt;
&lt;h2&gt;File Sync&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/acronis-true-image/sync.webp&quot; alt=&quot;Sync&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This addition is beneficial for those with space concerns or multiple computers. The archive feature removes the file from the local device once it uploads it to the Acronis online cloud. The sync function is like Dropbox and syncs files across devices.&lt;/p&gt;
&lt;h2&gt;Other Tools&lt;/h2&gt;
&lt;p&gt;Disk Clone - is helpful when replacing hard drives. I used to use this all the time when SDDs hit the market and I was replacing legacy hard drives.&lt;/p&gt;
&lt;p&gt;It uses 84 FOSS programs listed on their website: &lt;a href=&quot;https://kb.acronis.com/content/69667&quot;&gt;https://kb.acronis.com/content/69667&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Cost&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/acronis-true-image/cost.webp&quot; alt=&quot;Cost&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The product has moved to a subscription model. The essential model is local and offers the core backup services with no cloud. The advanced function could work for those that don&apos;t need a full image of their device, but to utilise the software to its fullest capacity it will cost you $124.99 per year for the software with 1 TB of storage. Each additional TB of storage adds $40. No doubt this is on the high end of cost when compared to the competition and why they added they expanded its offerings past backup to help justify the price.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/VYTCeIHS6Kg&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Cleanup Docker</title><link>https://christitus.com/cleanup-docker/</link><guid isPermaLink="true">https://christitus.com/cleanup-docker/</guid><description>&lt;p&gt;If you are running docker you will accumulate a lot of unused images and volumes as you update running containers. This makes maintenance a necessity.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1603766983274729472&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;Do you need this?&lt;/h2&gt;
&lt;p&gt;Check your portainer status page and look for &quot;unused&quot; images and containers. If you are seeing a lot of these, then you are wasting space and I&apos;d recommend running this script to clean them up!&lt;/p&gt;
&lt;h2&gt;The Cleanup Script&lt;/h2&gt;
&lt;p&gt;Run this bash script every week to ensure the cleanup gets performed.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash

docker volume rm $(docker volume ls -f dangling=true -q)
docker rmi $(docker images --quiet --filter &quot;dangling=true&quot;)
&lt;/code&gt;&lt;/pre&gt;
</description><pubDate>Fri, 16 Dec 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;If you are running docker you will accumulate a lot of unused images and volumes as you update running containers. This makes maintenance a necessity.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1603766983274729472&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;Do you need this?&lt;/h2&gt;
&lt;p&gt;Check your portainer status page and look for &quot;unused&quot; images and containers. If you are seeing a lot of these, then you are wasting space and I&apos;d recommend running this script to clean them up!&lt;/p&gt;
&lt;h2&gt;The Cleanup Script&lt;/h2&gt;
&lt;p&gt;Run this bash script every week to ensure the cleanup gets performed.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash

docker volume rm $(docker volume ls -f dangling=true -q)
docker rmi $(docker images --quiet --filter &quot;dangling=true&quot;)
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Install Windows Update Powershell</title><link>https://christitus.com/install-windows-update-powershell/</link><guid isPermaLink="true">https://christitus.com/install-windows-update-powershell/</guid><description>&lt;p&gt;Did you know you can install updates with using PowerShell? This is the Guide for doing that!&lt;/p&gt;

&lt;h2&gt;Pre-requisites&lt;/h2&gt;
&lt;p&gt;To install Windows updates via PowerShell, you need to install the module first:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Install-Module PSWindowsUpdate
Add-WUServiceManager -MicrosoftUpdate
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Commands&lt;/h2&gt;
&lt;p&gt;Install all available updates&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot | Out-File &quot;C:\($env.computername-Get-Date -f yyyy-MM-dd)-MSUpdates.log&quot; -Force
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Force other computers to update&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$Computers = &quot;pc2,pc3,pc4&quot;
Invoke-WUJob -ComputerName $Computers -Script {Import-Module PSWindowsUpdate; Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot} -RunNow -Confirm:$false | Out-File &quot;c:\$Computers-$(Get-Date -f yyyy-MM-dd)-MSUpdates.log&quot; -Force
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/M2mMQfPGZsE&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 14 Dec 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Did you know you can install updates with using PowerShell? This is the Guide for doing that!&lt;/p&gt;

&lt;h2&gt;Pre-requisites&lt;/h2&gt;
&lt;p&gt;To install Windows updates via PowerShell, you need to install the module first:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Install-Module PSWindowsUpdate
Add-WUServiceManager -MicrosoftUpdate
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Commands&lt;/h2&gt;
&lt;p&gt;Install all available updates&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot | Out-File &quot;C:\($env.computername-Get-Date -f yyyy-MM-dd)-MSUpdates.log&quot; -Force
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Force other computers to update&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$Computers = &quot;pc2,pc3,pc4&quot;
Invoke-WUJob -ComputerName $Computers -Script {Import-Module PSWindowsUpdate; Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot} -RunNow -Confirm:$false | Out-File &quot;c:\$Computers-$(Get-Date -f yyyy-MM-dd)-MSUpdates.log&quot; -Force
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/M2mMQfPGZsE&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Screensavers</title><link>https://christitus.com/screensavers/</link><guid isPermaLink="true">https://christitus.com/screensavers/</guid><description>&lt;p&gt;Screensavers might be the past, but they are still one of the coolest to do on your PC.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1594450349657821186&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;SCR File Screensavers&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;System47 SCR File - &lt;a href=&quot;https://www.mewho.com/system47/&quot;&gt;https://www.mewho.com/system47/&lt;/a&gt;
&lt;img src=&quot;/images/2022/starfield-screensaver/system47.webp&quot; alt=&quot;System47&quot; /&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/sysinternals/downloads/bluescreen&quot;&gt;Microsoft BSOD&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.screensaversplanet.com/screensavers/?free=on&quot;&gt;Screensavers Website&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Website Screensavers&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.mewho.com/starfield47/&quot;&gt;Starfield meWho&lt;/a&gt;
&lt;img src=&quot;/images/2022/starfield-screensaver/starfield.webp&quot; alt=&quot;Starfield&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://gradiyent.netlify.app/&quot;&gt;Gradient Colors&lt;/a&gt;
&lt;img src=&quot;/images/2022/starfield-screensaver/gradient.webp&quot; alt=&quot;Gradient&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://sourceforge.net/projects/rssavers/&quot;&gt;Really Slick Screensavers&lt;/a&gt;
&lt;img src=&quot;/images/2022/starfield-screensaver/hyperspace.webp&quot; alt=&quot;Hyperspace&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.ravbug.com/bsod/&quot;&gt;Fake BSODs&lt;/a&gt;
&lt;img src=&quot;/images/2022/starfield-screensaver/bsod.webp&quot; alt=&quot;Bsod&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.cryptoprank.com/#/&quot;&gt;Crypto Prank&lt;/a&gt;
&lt;img src=&quot;/images/2022/starfield-screensaver/crypto-prank.webp&quot; alt=&quot;Crypto Prank&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://fakeupdate.net/&quot;&gt;Fake Updates&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/starfield-screensaver/xp.webp&quot; alt=&quot;Xp&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://screen.vercel.app/&quot;&gt;Fake Screens&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://updatefaker.com/&quot;&gt;Update Faker&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Load Screen Savers&lt;/h2&gt;
&lt;h3&gt;Windows&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Copy the *.scr file to &lt;code&gt;c:\Windows\System32&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Launch the Screensaver Windows Module (Start -&amp;gt; Run -&amp;gt; &lt;code&gt;control desk.cpl,,@screensaver&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Select the screensaver you copied&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Copy/Paste Run command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;control desk.cpl,,@screensaver
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Linux&lt;/h3&gt;
&lt;p&gt;Loading scr files on Linux requires you to use WINE. You can launch this using wine.exe, but here is my article on setting it up as a systemd service: &lt;a href=&quot;https://christitus.com/lcars-screensaver/&quot;&gt;https://christitus.com/lcars-screensaver/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/V7aKCCfmJww&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 12 Dec 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Screensavers might be the past, but they are still one of the coolest to do on your PC.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1594450349657821186&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;SCR File Screensavers&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;System47 SCR File - &lt;a href=&quot;https://www.mewho.com/system47/&quot;&gt;https://www.mewho.com/system47/&lt;/a&gt;
&lt;img src=&quot;/images/2022/starfield-screensaver/system47.webp&quot; alt=&quot;System47&quot; /&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/sysinternals/downloads/bluescreen&quot;&gt;Microsoft BSOD&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.screensaversplanet.com/screensavers/?free=on&quot;&gt;Screensavers Website&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Website Screensavers&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.mewho.com/starfield47/&quot;&gt;Starfield meWho&lt;/a&gt;
&lt;img src=&quot;/images/2022/starfield-screensaver/starfield.webp&quot; alt=&quot;Starfield&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://gradiyent.netlify.app/&quot;&gt;Gradient Colors&lt;/a&gt;
&lt;img src=&quot;/images/2022/starfield-screensaver/gradient.webp&quot; alt=&quot;Gradient&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://sourceforge.net/projects/rssavers/&quot;&gt;Really Slick Screensavers&lt;/a&gt;
&lt;img src=&quot;/images/2022/starfield-screensaver/hyperspace.webp&quot; alt=&quot;Hyperspace&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.ravbug.com/bsod/&quot;&gt;Fake BSODs&lt;/a&gt;
&lt;img src=&quot;/images/2022/starfield-screensaver/bsod.webp&quot; alt=&quot;Bsod&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.cryptoprank.com/#/&quot;&gt;Crypto Prank&lt;/a&gt;
&lt;img src=&quot;/images/2022/starfield-screensaver/crypto-prank.webp&quot; alt=&quot;Crypto Prank&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://fakeupdate.net/&quot;&gt;Fake Updates&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/starfield-screensaver/xp.webp&quot; alt=&quot;Xp&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://screen.vercel.app/&quot;&gt;Fake Screens&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://updatefaker.com/&quot;&gt;Update Faker&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Load Screen Savers&lt;/h2&gt;
&lt;h3&gt;Windows&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Copy the *.scr file to &lt;code&gt;c:\Windows\System32&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Launch the Screensaver Windows Module (Start -&amp;gt; Run -&amp;gt; &lt;code&gt;control desk.cpl,,@screensaver&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Select the screensaver you copied&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Copy/Paste Run command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;control desk.cpl,,@screensaver
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Linux&lt;/h3&gt;
&lt;p&gt;Loading scr files on Linux requires you to use WINE. You can launch this using wine.exe, but here is my article on setting it up as a systemd service: &lt;a href=&quot;https://christitus.com/lcars-screensaver/&quot;&gt;https://christitus.com/lcars-screensaver/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/V7aKCCfmJww&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Docker Guide</title><link>https://christitus.com/docker-guide/</link><guid isPermaLink="true">https://christitus.com/docker-guide/</guid><description>&lt;p&gt;This is a full walk-through and guide for Docker.&lt;/p&gt;

&lt;h2&gt;Install and Getting Started&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Official Docker: &lt;a href=&quot;https://docs.docker.com/get-docker/&quot;&gt;https://docs.docker.com/get-docker/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Official Portainer: &lt;a href=&quot;https://docs.portainer.io/start/install/server/docker&quot;&gt;https://docs.portainer.io/start/install/server/docker&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Quick Commands&lt;/h2&gt;
&lt;h3&gt;Run a new container&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New Image - &lt;code&gt;docker run IMAGE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Name Container and Launch Image - &lt;code&gt;docker run --name CONTAINER IMAGE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Map Container Ports and Launch Image -&lt;code&gt;docker run -p HOSTPORT:CONTAINERPORT IMAGE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Map ALL Ports and Launch Image - &lt;code&gt;docker run -P IMAGE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Launch Image as Background Service - &lt;code&gt;docker run -d IMAGE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Map Local Directory and Launch - &lt;code&gt;docker run -v HOSTDIR:TARGETDIR IMAGE&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Manage Containers&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;List RUNNING Containers - &lt;code&gt;docker ps&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;List ALL containers - &lt;code&gt;docker ps -a&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Delete container - &lt;code&gt;docker rm CONTAINER&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Delete a Running Container - &lt;code&gt;docker rm -f CONTAINER&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Stop Container - &lt;code&gt;docker stop CONTAINER&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Start Container - &lt;code&gt;docker start CONTAINER&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Copy File FROM container - &lt;code&gt;docker cp CONTAINER:SOURCE TARGET&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Copy File TO container - &lt;code&gt;docker cp TARGET CONTAINER:SOURCE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Start Shell inside container - &lt;code&gt;docker exec -it CONTAINER bash&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Rename container - &lt;code&gt;docker rename OLD NEW&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Create new Image from Container - &lt;code&gt;docker commit CONTAINER&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Manage Images&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Download Image - &lt;code&gt;docker pull IMAGE[:TAG]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Upload Image to repository - &lt;code&gt;docker push IMAGE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Delete Image - &lt;code&gt;docker rmi IMAGE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;List Images - &lt;code&gt;docker images&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Build Image from Docker file - &lt;code&gt;docker build DIRECTORY&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Tag Image IMAGE - &lt;code&gt;docker tag IMAGE NEWIMAGE:TAG&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Troubleshooting and Information&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Show logs - &lt;code&gt;docker logs CONTAINER&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Show stats - &lt;code&gt;docker stats&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Show processes - &lt;code&gt;docker top CONTAINER&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Show modified files - &lt;code&gt;docker diff CONTAINER&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Show mapped ports - &lt;code&gt;docker port CONTAINER&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/94VQvRpjfO8&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 09 Dec 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This is a full walk-through and guide for Docker.&lt;/p&gt;

&lt;h2&gt;Install and Getting Started&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Official Docker: &lt;a href=&quot;https://docs.docker.com/get-docker/&quot;&gt;https://docs.docker.com/get-docker/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Official Portainer: &lt;a href=&quot;https://docs.portainer.io/start/install/server/docker&quot;&gt;https://docs.portainer.io/start/install/server/docker&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Quick Commands&lt;/h2&gt;
&lt;h3&gt;Run a new container&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New Image - &lt;code&gt;docker run IMAGE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Name Container and Launch Image - &lt;code&gt;docker run --name CONTAINER IMAGE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Map Container Ports and Launch Image -&lt;code&gt;docker run -p HOSTPORT:CONTAINERPORT IMAGE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Map ALL Ports and Launch Image - &lt;code&gt;docker run -P IMAGE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Launch Image as Background Service - &lt;code&gt;docker run -d IMAGE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Map Local Directory and Launch - &lt;code&gt;docker run -v HOSTDIR:TARGETDIR IMAGE&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Manage Containers&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;List RUNNING Containers - &lt;code&gt;docker ps&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;List ALL containers - &lt;code&gt;docker ps -a&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Delete container - &lt;code&gt;docker rm CONTAINER&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Delete a Running Container - &lt;code&gt;docker rm -f CONTAINER&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Stop Container - &lt;code&gt;docker stop CONTAINER&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Start Container - &lt;code&gt;docker start CONTAINER&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Copy File FROM container - &lt;code&gt;docker cp CONTAINER:SOURCE TARGET&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Copy File TO container - &lt;code&gt;docker cp TARGET CONTAINER:SOURCE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Start Shell inside container - &lt;code&gt;docker exec -it CONTAINER bash&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Rename container - &lt;code&gt;docker rename OLD NEW&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Create new Image from Container - &lt;code&gt;docker commit CONTAINER&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Manage Images&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Download Image - &lt;code&gt;docker pull IMAGE[:TAG]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Upload Image to repository - &lt;code&gt;docker push IMAGE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Delete Image - &lt;code&gt;docker rmi IMAGE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;List Images - &lt;code&gt;docker images&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Build Image from Docker file - &lt;code&gt;docker build DIRECTORY&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Tag Image IMAGE - &lt;code&gt;docker tag IMAGE NEWIMAGE:TAG&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Troubleshooting and Information&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Show logs - &lt;code&gt;docker logs CONTAINER&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Show stats - &lt;code&gt;docker stats&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Show processes - &lt;code&gt;docker top CONTAINER&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Show modified files - &lt;code&gt;docker diff CONTAINER&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Show mapped ports - &lt;code&gt;docker port CONTAINER&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/94VQvRpjfO8&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Windows Explorer Stealing CPU</title><link>https://christitus.com/windows-explorer-stealing-cpu/</link><guid isPermaLink="true">https://christitus.com/windows-explorer-stealing-cpu/</guid><description>&lt;p&gt;Windows 11 has a bug effecting some systems. Out of my 3 Windows 11 systems, one of them had this happen.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1597766834094211073&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;Underlying Problem&lt;/h2&gt;
&lt;p&gt;Two services are interacting with Windows Explorer that are the root of this problem. Widgets and Typing experience from Windows 11. Even if you disabled these services, they will relaunch because they use the Microsoft Store. What is causing this behavior? A new pre-launch command that pushes these apps into the background on startup. This means they start up faster, but most don&apos;t even use these apps and do NOT want to use them.&lt;/p&gt;
&lt;h2&gt;Solution&lt;/h2&gt;
&lt;p&gt;Add these Registry entries to fix it!&lt;/p&gt;
&lt;p&gt;&lt;code&gt;FixRegistry.reg&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\input]
&quot;IsInputAppPreloadEnabled&quot;=dword:00000000

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Dsh]
&quot;IsPrelaunchEnabled&quot;=dword:00000000
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Delete old programs&lt;/h3&gt;
&lt;p&gt;Wallpaper Engine caused a big CPU elevation after I updated to 22H2 on Windows 11. Check your programs and if they haven&apos;t been updated in a while, they may not work that well on the new version.&lt;/p&gt;
&lt;p&gt;To uninstall old programs run:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;appwiz.cpl
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/3YaG3YPGCbQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 07 Dec 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Windows 11 has a bug effecting some systems. Out of my 3 Windows 11 systems, one of them had this happen.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1597766834094211073&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;Underlying Problem&lt;/h2&gt;
&lt;p&gt;Two services are interacting with Windows Explorer that are the root of this problem. Widgets and Typing experience from Windows 11. Even if you disabled these services, they will relaunch because they use the Microsoft Store. What is causing this behavior? A new pre-launch command that pushes these apps into the background on startup. This means they start up faster, but most don&apos;t even use these apps and do NOT want to use them.&lt;/p&gt;
&lt;h2&gt;Solution&lt;/h2&gt;
&lt;p&gt;Add these Registry entries to fix it!&lt;/p&gt;
&lt;p&gt;&lt;code&gt;FixRegistry.reg&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\input]
&quot;IsInputAppPreloadEnabled&quot;=dword:00000000

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Dsh]
&quot;IsPrelaunchEnabled&quot;=dword:00000000
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Delete old programs&lt;/h3&gt;
&lt;p&gt;Wallpaper Engine caused a big CPU elevation after I updated to 22H2 on Windows 11. Check your programs and if they haven&apos;t been updated in a while, they may not work that well on the new version.&lt;/p&gt;
&lt;p&gt;To uninstall old programs run:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;appwiz.cpl
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/3YaG3YPGCbQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Bypass Paywalls</title><link>https://christitus.com/bypass-paywalls/</link><guid isPermaLink="true">https://christitus.com/bypass-paywalls/</guid><description>&lt;p&gt;Tired of ads, paywalls, and other garbage in your web browsing experience? These add-ons will improve your experience!&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/nerdz0ne/status/1596178362271207425&quot;&gt;View post by @nerdz0ne on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;The Extensions&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;YouTube Enhancer&lt;/strong&gt; - &lt;a href=&quot;https://chrome.google.com/webstore/detail/enhancer-for-youtube/ponfpcnoihfmfllpaingbgckeeldkhle&quot;&gt;https://chrome.google.com/webstore/detail/enhancer-for-youtube/ponfpcnoihfmfllpaingbgckeeldkhle&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds screenshots, studio, auto-settings, and much more!
&lt;img src=&quot;/images/2022/bypass-paywalls/youtube-enhancer.webp&quot; alt=&quot;Youtube Enhancer&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Self-Destructing Cookies&lt;/strong&gt; - &lt;a href=&quot;https://chrome.google.com/webstore/detail/self-destructing-cookies/igdpjhaninpfanncfifdoogibpdidddf&quot;&gt;https://chrome.google.com/webstore/detail/self-destructing-cookies/igdpjhaninpfanncfifdoogibpdidddf&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;This is a privacy add-on that deletes cookies when the browser or tab is closed. Note: This will cause some sites to log you out if a sign-in is required.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Cookie Remover&lt;/strong&gt; - &lt;a href=&quot;https://chrome.google.com/webstore/detail/cookie-remover/kcgpggonjhmeaejebeoeomdlohicfhce/related&quot;&gt;https://chrome.google.com/webstore/detail/cookie-remover/kcgpggonjhmeaejebeoeomdlohicfhce/related&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;This will remove the current cookies for the site you are on by clicking the cookie icon in the top right&lt;/em&gt;
&lt;img src=&quot;/images/2022/bypass-paywalls/cookie-remover.webp&quot; alt=&quot;Cookie Remover&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Bypass Paywall&lt;/strong&gt; - &lt;a href=&quot;https://github.com/iamadamdev?tab=repositories&quot;&gt;https://github.com/iamadamdev?tab=repositories&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Load with dev mode in chrome.
&lt;img src=&quot;/images/2022/bypass-paywalls/dev-mode-load.webp&quot; alt=&quot;Dev Mode Load&quot; /&gt;
&lt;img src=&quot;/images/2022/bypass-paywalls/bypass-paywalls.webp&quot; alt=&quot;Bypass Paywalls&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Clickbait Removal&lt;/strong&gt; - &lt;a href=&quot;https://chrome.google.com/webstore/detail/clickbait-remover-for-you/omoinegiohhgbikclijaniebjpkeopip&quot;&gt;https://chrome.google.com/webstore/detail/clickbait-remover-for-you/omoinegiohhgbikclijaniebjpkeopip&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Remove all thumbnails and put parts of video in. Also removes CAPS from the titles
&lt;img src=&quot;/images/2022/bypass-paywalls/clickbait-remover.webp&quot; alt=&quot;Clickbait Remover&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/_fG32rdWdes&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 05 Dec 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Tired of ads, paywalls, and other garbage in your web browsing experience? These add-ons will improve your experience!&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/nerdz0ne/status/1596178362271207425&quot;&gt;View post by @nerdz0ne on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;The Extensions&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;YouTube Enhancer&lt;/strong&gt; - &lt;a href=&quot;https://chrome.google.com/webstore/detail/enhancer-for-youtube/ponfpcnoihfmfllpaingbgckeeldkhle&quot;&gt;https://chrome.google.com/webstore/detail/enhancer-for-youtube/ponfpcnoihfmfllpaingbgckeeldkhle&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adds screenshots, studio, auto-settings, and much more!
&lt;img src=&quot;/images/2022/bypass-paywalls/youtube-enhancer.webp&quot; alt=&quot;Youtube Enhancer&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Self-Destructing Cookies&lt;/strong&gt; - &lt;a href=&quot;https://chrome.google.com/webstore/detail/self-destructing-cookies/igdpjhaninpfanncfifdoogibpdidddf&quot;&gt;https://chrome.google.com/webstore/detail/self-destructing-cookies/igdpjhaninpfanncfifdoogibpdidddf&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;This is a privacy add-on that deletes cookies when the browser or tab is closed. Note: This will cause some sites to log you out if a sign-in is required.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Cookie Remover&lt;/strong&gt; - &lt;a href=&quot;https://chrome.google.com/webstore/detail/cookie-remover/kcgpggonjhmeaejebeoeomdlohicfhce/related&quot;&gt;https://chrome.google.com/webstore/detail/cookie-remover/kcgpggonjhmeaejebeoeomdlohicfhce/related&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;This will remove the current cookies for the site you are on by clicking the cookie icon in the top right&lt;/em&gt;
&lt;img src=&quot;/images/2022/bypass-paywalls/cookie-remover.webp&quot; alt=&quot;Cookie Remover&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Bypass Paywall&lt;/strong&gt; - &lt;a href=&quot;https://github.com/iamadamdev?tab=repositories&quot;&gt;https://github.com/iamadamdev?tab=repositories&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Load with dev mode in chrome.
&lt;img src=&quot;/images/2022/bypass-paywalls/dev-mode-load.webp&quot; alt=&quot;Dev Mode Load&quot; /&gt;
&lt;img src=&quot;/images/2022/bypass-paywalls/bypass-paywalls.webp&quot; alt=&quot;Bypass Paywalls&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Clickbait Removal&lt;/strong&gt; - &lt;a href=&quot;https://chrome.google.com/webstore/detail/clickbait-remover-for-you/omoinegiohhgbikclijaniebjpkeopip&quot;&gt;https://chrome.google.com/webstore/detail/clickbait-remover-for-you/omoinegiohhgbikclijaniebjpkeopip&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Remove all thumbnails and put parts of video in. Also removes CAPS from the titles
&lt;img src=&quot;/images/2022/bypass-paywalls/clickbait-remover.webp&quot; alt=&quot;Clickbait Remover&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/_fG32rdWdes&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Twitter Archive Offline</title><link>https://christitus.com/twitter-archive/</link><guid isPermaLink="true">https://christitus.com/twitter-archive/</guid><description>&lt;p&gt;Leaving Twitter? Why not download all your tweets from archive and store it yourself before deleting your account!&lt;/p&gt;

&lt;h2&gt;Projects&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/timhutton/twitter-archive-parser&quot;&gt;Twitter Archive Parser&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/nornagon/twitter-bookmark-archiver&quot;&gt;Twitter Bookmark Tool - Download All Links&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/caarlos0/twitter-cleaner&quot;&gt;Twitter Cleaner&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/walaura/Twitter-photo-downloader&quot;&gt;Twitter Photo Downloader&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Process of Offline Twitter&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Download Twitter Archive
&lt;img src=&quot;/images/2022/twitter-archive/twitter-archive.webp&quot; alt=&quot;Twitter Archive&quot; /&gt;
&lt;em&gt;Note: This can take up to 72 hours to produce a downloadable zip&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Unzip Archive to it&apos;s OWN folder&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Download the Archive parser&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget https://raw.githubusercontent.com/timhutton/twitter-archive-parser/main/parser.py
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run &lt;code&gt;python3 parser.py&lt;/code&gt;
&lt;em&gt;I recommend selecting Yes to download all messages&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Open &lt;code&gt;Your archive.html&lt;/code&gt; in your browser
&lt;img src=&quot;/images/2022/twitter-archive/offline-twitter.webp&quot; alt=&quot;Offline Twitter&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Limitations&lt;/h2&gt;
&lt;p&gt;I put the other projects above to get around the limitations of using the Archive Parser.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bookmark Tool will change the &lt;a href=&quot;http://t.co&quot;&gt;t.co&lt;/a&gt; links to their proper links so it doesn&apos;t use Twitter servers.&lt;/li&gt;
&lt;li&gt;Cleaner will cleanup the archive&lt;/li&gt;
&lt;li&gt;Photo Downloader will download the full photos in your tweets. By default it downloads the thumbnail and references twitter for the full image.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/vwxxNCQpcTA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 02 Dec 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Leaving Twitter? Why not download all your tweets from archive and store it yourself before deleting your account!&lt;/p&gt;

&lt;h2&gt;Projects&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/timhutton/twitter-archive-parser&quot;&gt;Twitter Archive Parser&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/nornagon/twitter-bookmark-archiver&quot;&gt;Twitter Bookmark Tool - Download All Links&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/caarlos0/twitter-cleaner&quot;&gt;Twitter Cleaner&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/walaura/Twitter-photo-downloader&quot;&gt;Twitter Photo Downloader&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Process of Offline Twitter&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Download Twitter Archive
&lt;img src=&quot;/images/2022/twitter-archive/twitter-archive.webp&quot; alt=&quot;Twitter Archive&quot; /&gt;
&lt;em&gt;Note: This can take up to 72 hours to produce a downloadable zip&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Unzip Archive to it&apos;s OWN folder&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Download the Archive parser&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget https://raw.githubusercontent.com/timhutton/twitter-archive-parser/main/parser.py
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run &lt;code&gt;python3 parser.py&lt;/code&gt;
&lt;em&gt;I recommend selecting Yes to download all messages&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Open &lt;code&gt;Your archive.html&lt;/code&gt; in your browser
&lt;img src=&quot;/images/2022/twitter-archive/offline-twitter.webp&quot; alt=&quot;Offline Twitter&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Limitations&lt;/h2&gt;
&lt;p&gt;I put the other projects above to get around the limitations of using the Archive Parser.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bookmark Tool will change the &lt;a href=&quot;http://t.co&quot;&gt;t.co&lt;/a&gt; links to their proper links so it doesn&apos;t use Twitter servers.&lt;/li&gt;
&lt;li&gt;Cleaner will cleanup the archive&lt;/li&gt;
&lt;li&gt;Photo Downloader will download the full photos in your tweets. By default it downloads the thumbnail and references twitter for the full image.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/vwxxNCQpcTA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Docker Macos</title><link>https://christitus.com/docker-macos/</link><guid isPermaLink="true">https://christitus.com/docker-macos/</guid><description>&lt;p&gt;Don&apos;t have a Mac and need MacOS? No problem, run it in a docker container.&lt;/p&gt;

&lt;p&gt;Credit goes to this twitter user:&lt;/p&gt;
&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/justArRinze/status/1591779981390413826&quot;&gt;View post by @justArRinze on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;Requirements&lt;/h2&gt;
&lt;p&gt;Install Docker Ubuntu 22.04&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository &quot;deb [arch=amd64] https://download.docker.com/linux/ubuntu jammy stable&quot;
sudo apt install docker-ce -y
sudo usermod -aG docker $USER
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Reboot or logout/login&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;(Optional) GUI Webpage for Managing Docker - Portainer&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker volume create portainer_data
docker run -d -p 8000:8000 -p 9443:9443 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:2.9.3
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open up browser and navigate to &lt;a href=&quot;https://localhost:9443&quot;&gt;https://localhost:9443&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Click Advanced and proceed with any certificate errors&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;MacOS Docker Setup&lt;/h2&gt;
&lt;p&gt;Setup the MacOS Docker Container with the following docker command&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker run -it \
    --device /dev/kvm \
    -p 50922:10022 \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    -e &quot;DISPLAY=${DISPLAY:-:0.0}&quot; \
    -e GENERATE_UNIQUE=true \
    -e MASTER_PLIST_URL=&apos;https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-custom.plist&apos; \
    sickcodes/docker-osx:monterey

# docker build -t docker-osx --build-arg SHORTNAME=monterey .
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Use Disk Utility to &quot;erase&quot; the 270GB virtual disk: &lt;em&gt;Note: This is just virtual and doesn&apos;t erase your drive&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/docker-macos/disk-util.webp&quot; alt=&quot;Disk Util&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Start MacOS Docker Container&lt;/h2&gt;
&lt;p&gt;Before we start the container find the name with:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker ps -a
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Look for the NAMES column and pick the container name.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/docker-macos/container.webp&quot; alt=&quot;Container&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Start with the following command NAME = Name from column above&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker start NAME
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Portainer Method for Starting&lt;/h3&gt;
&lt;p&gt;I love portainer because you can easily manage your containers. Start, Stop, and see resource usage... Portainer does it all! Here is what mine looks like:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/docker-macos/portainer.webp&quot; alt=&quot;Portainer&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Optimize the Container&lt;/h2&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://github.com/sickcodes/osx-optimizer&quot;&gt;https://github.com/sickcodes/osx-optimizer&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Run the following from Root Prompt # &lt;code&gt;sudo su&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;defaults write com.apple.loginwindow autoLoginUser -bool true
mdutil -i off -a
nvram boot-args=&quot;serverperfmode=1 $(nvram boot-args 2&amp;gt;/dev/null | cut -f 2-)&quot;
defaults write /Library/Preferences/com.apple.loginwindow DesktopPicture &quot;&quot;
defaults write com.apple.Accessibility DifferentiateWithoutColor -int 1
defaults write com.apple.Accessibility ReduceMotionEnabled -int 1
defaults write com.apple.universalaccess reduceMotion -int 1
defaults write com.apple.universalaccess reduceTransparency -int 1
defaults write com.apple.Accessibility ReduceMotionEnabled -int 1
defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticDownload -bool false
defaults write com.apple.SoftwareUpdate AutomaticCheckEnabled -bool false
defaults write com.apple.commerce AutoUpdate -bool false
defaults write com.apple.commerce AutoUpdateRestartRequired -bool false
defaults write com.apple.SoftwareUpdate ConfigDataInstall -int 0
defaults write com.apple.SoftwareUpdate CriticalUpdateInstall -int 0
defaults write com.apple.SoftwareUpdate ScheduleFrequency -int 0
defaults write com.apple.SoftwareUpdate AutomaticDownload -int 0
defaults write com.apple.loginwindow DisableScreenLock -bool true
defaults write com.apple.loginwindow TALLogoutSavesState -bool false
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Final Result&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/docker-macos/macos-final.webp&quot; alt=&quot;Macos Final&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/XWo2gnNbeGQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 30 Nov 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Don&apos;t have a Mac and need MacOS? No problem, run it in a docker container.&lt;/p&gt;

&lt;p&gt;Credit goes to this twitter user:&lt;/p&gt;
&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/justArRinze/status/1591779981390413826&quot;&gt;View post by @justArRinze on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;Requirements&lt;/h2&gt;
&lt;p&gt;Install Docker Ubuntu 22.04&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository &quot;deb [arch=amd64] https://download.docker.com/linux/ubuntu jammy stable&quot;
sudo apt install docker-ce -y
sudo usermod -aG docker $USER
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Reboot or logout/login&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;(Optional) GUI Webpage for Managing Docker - Portainer&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker volume create portainer_data
docker run -d -p 8000:8000 -p 9443:9443 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:2.9.3
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open up browser and navigate to &lt;a href=&quot;https://localhost:9443&quot;&gt;https://localhost:9443&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Click Advanced and proceed with any certificate errors&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;MacOS Docker Setup&lt;/h2&gt;
&lt;p&gt;Setup the MacOS Docker Container with the following docker command&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker run -it \
    --device /dev/kvm \
    -p 50922:10022 \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    -e &quot;DISPLAY=${DISPLAY:-:0.0}&quot; \
    -e GENERATE_UNIQUE=true \
    -e MASTER_PLIST_URL=&apos;https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-custom.plist&apos; \
    sickcodes/docker-osx:monterey

# docker build -t docker-osx --build-arg SHORTNAME=monterey .
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Use Disk Utility to &quot;erase&quot; the 270GB virtual disk: &lt;em&gt;Note: This is just virtual and doesn&apos;t erase your drive&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/docker-macos/disk-util.webp&quot; alt=&quot;Disk Util&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Start MacOS Docker Container&lt;/h2&gt;
&lt;p&gt;Before we start the container find the name with:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker ps -a
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Look for the NAMES column and pick the container name.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/docker-macos/container.webp&quot; alt=&quot;Container&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Start with the following command NAME = Name from column above&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker start NAME
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Portainer Method for Starting&lt;/h3&gt;
&lt;p&gt;I love portainer because you can easily manage your containers. Start, Stop, and see resource usage... Portainer does it all! Here is what mine looks like:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/docker-macos/portainer.webp&quot; alt=&quot;Portainer&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Optimize the Container&lt;/h2&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://github.com/sickcodes/osx-optimizer&quot;&gt;https://github.com/sickcodes/osx-optimizer&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Run the following from Root Prompt # &lt;code&gt;sudo su&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;defaults write com.apple.loginwindow autoLoginUser -bool true
mdutil -i off -a
nvram boot-args=&quot;serverperfmode=1 $(nvram boot-args 2&amp;gt;/dev/null | cut -f 2-)&quot;
defaults write /Library/Preferences/com.apple.loginwindow DesktopPicture &quot;&quot;
defaults write com.apple.Accessibility DifferentiateWithoutColor -int 1
defaults write com.apple.Accessibility ReduceMotionEnabled -int 1
defaults write com.apple.universalaccess reduceMotion -int 1
defaults write com.apple.universalaccess reduceTransparency -int 1
defaults write com.apple.Accessibility ReduceMotionEnabled -int 1
defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticDownload -bool false
defaults write com.apple.SoftwareUpdate AutomaticCheckEnabled -bool false
defaults write com.apple.commerce AutoUpdate -bool false
defaults write com.apple.commerce AutoUpdateRestartRequired -bool false
defaults write com.apple.SoftwareUpdate ConfigDataInstall -int 0
defaults write com.apple.SoftwareUpdate CriticalUpdateInstall -int 0
defaults write com.apple.SoftwareUpdate ScheduleFrequency -int 0
defaults write com.apple.SoftwareUpdate AutomaticDownload -int 0
defaults write com.apple.loginwindow DisableScreenLock -bool true
defaults write com.apple.loginwindow TALLogoutSavesState -bool false
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Final Result&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/docker-macos/macos-final.webp&quot; alt=&quot;Macos Final&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/XWo2gnNbeGQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Switching to Ubuntu</title><link>https://christitus.com/switching-to-ubuntu/</link><guid isPermaLink="true">https://christitus.com/switching-to-ubuntu/</guid><description>&lt;p&gt;Yes, the title is correct, I&apos;m switching to Ubuntu. Don&apos;t you hate snaps and GNOME? Yes, but I always say change your Linux install to what you want. Don&apos;t like something? Change IT!&lt;/p&gt;

&lt;p&gt;But Why? ... Ubuntu does something right!?&lt;/p&gt;
&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1591540430226628608&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;Starting with Server&lt;/h2&gt;
&lt;p&gt;I start with Ubuntu server download &lt;a href=&quot;https://ubuntu.com/download/server&quot;&gt;https://ubuntu.com/download/server&lt;/a&gt; and then strip out SNAPD before adding any desktop environment. This makes it so I can avoid all the things I don&apos;t like about Ubuntu, while getting the benefits of their Kernel optimizations and packaging.&lt;/p&gt;
&lt;p&gt;Will Ubuntu always be better than Debian for kernel and packaging? No, in fact, Debian is adding non-free firmware packages into their base installer and will no longer be second class citizen on new installs and you won&apos;t need to go hunting for a non-free ISO any longer.&lt;/p&gt;
&lt;h3&gt;Removing Snapcraft or Snaps&lt;/h3&gt;
&lt;p&gt;Run the following commands to remove snapd and also hold the package to prevent it from reinstalling.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt purge snapd
sudo apt-mark hold snapd
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Avoiding certain packages&lt;/h3&gt;
&lt;p&gt;The downside to the following approach is Ubuntu has packages, such as: Firefox and others that will try to install the snap version.&lt;/p&gt;
&lt;p&gt;I highly recommend installing NIX OS env to get around this limitation, as this is what I do with every install on every distribution anyways.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -L https://nixos.org/nix/install | sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;For a reference guide check out my Nix Package Manager article: &lt;a href=&quot;https://christitus.com/nix-package-manager/&quot;&gt;https://christitus.com/nix-package-manager/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Installing Your Desktop&lt;/h2&gt;
&lt;p&gt;The easiest method for installing your desktop is using &lt;code&gt;tasksel&lt;/code&gt; from the terminal.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install tasksel -y
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Run it with &lt;code&gt;sudo tasksel&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/switching-to-ubuntu/tasksel.webp&quot; alt=&quot;Tasksel&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Select the Debian Desktop Environment at top and the desktop environment that you want to use.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: While this method is easy, it will install some bloat that you may wish to remove.&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Advanced Option&lt;/h3&gt;
&lt;p&gt;My old &lt;code&gt;ubuntu-titus&lt;/code&gt; window manager setup has been retired. My maintained
desktop configuration now lives in
&lt;a href=&quot;https://github.com/ChrisTitusTech/dwm-titus&quot;&gt;https://github.com/ChrisTitusTech/dwm-titus&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Final Result:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/switching-to-ubuntu/ubuntu-titus.webp&quot; alt=&quot;Ubuntu Titus&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/UvSLMzkog1g&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 28 Nov 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Yes, the title is correct, I&apos;m switching to Ubuntu. Don&apos;t you hate snaps and GNOME? Yes, but I always say change your Linux install to what you want. Don&apos;t like something? Change IT!&lt;/p&gt;

&lt;p&gt;But Why? ... Ubuntu does something right!?&lt;/p&gt;
&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1591540430226628608&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;Starting with Server&lt;/h2&gt;
&lt;p&gt;I start with Ubuntu server download &lt;a href=&quot;https://ubuntu.com/download/server&quot;&gt;https://ubuntu.com/download/server&lt;/a&gt; and then strip out SNAPD before adding any desktop environment. This makes it so I can avoid all the things I don&apos;t like about Ubuntu, while getting the benefits of their Kernel optimizations and packaging.&lt;/p&gt;
&lt;p&gt;Will Ubuntu always be better than Debian for kernel and packaging? No, in fact, Debian is adding non-free firmware packages into their base installer and will no longer be second class citizen on new installs and you won&apos;t need to go hunting for a non-free ISO any longer.&lt;/p&gt;
&lt;h3&gt;Removing Snapcraft or Snaps&lt;/h3&gt;
&lt;p&gt;Run the following commands to remove snapd and also hold the package to prevent it from reinstalling.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt purge snapd
sudo apt-mark hold snapd
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Avoiding certain packages&lt;/h3&gt;
&lt;p&gt;The downside to the following approach is Ubuntu has packages, such as: Firefox and others that will try to install the snap version.&lt;/p&gt;
&lt;p&gt;I highly recommend installing NIX OS env to get around this limitation, as this is what I do with every install on every distribution anyways.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -L https://nixos.org/nix/install | sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;For a reference guide check out my Nix Package Manager article: &lt;a href=&quot;https://christitus.com/nix-package-manager/&quot;&gt;https://christitus.com/nix-package-manager/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Installing Your Desktop&lt;/h2&gt;
&lt;p&gt;The easiest method for installing your desktop is using &lt;code&gt;tasksel&lt;/code&gt; from the terminal.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install tasksel -y
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Run it with &lt;code&gt;sudo tasksel&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/switching-to-ubuntu/tasksel.webp&quot; alt=&quot;Tasksel&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Select the Debian Desktop Environment at top and the desktop environment that you want to use.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: While this method is easy, it will install some bloat that you may wish to remove.&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Advanced Option&lt;/h3&gt;
&lt;p&gt;My old &lt;code&gt;ubuntu-titus&lt;/code&gt; window manager setup has been retired. My maintained
desktop configuration now lives in
&lt;a href=&quot;https://github.com/ChrisTitusTech/dwm-titus&quot;&gt;https://github.com/ChrisTitusTech/dwm-titus&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Final Result:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/switching-to-ubuntu/ubuntu-titus.webp&quot; alt=&quot;Ubuntu Titus&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/UvSLMzkog1g&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>One Tool for Everything</title><link>https://christitus.com/one-tool-for-everything/</link><guid isPermaLink="true">https://christitus.com/one-tool-for-everything/</guid><description>&lt;p&gt;A massive update has arrived for the Windows Utility! Check out all the new features.&lt;/p&gt;

&lt;p&gt;Run Directly from PowerShell with Admin&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;irm christitus.com/win | iex
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;New Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Tooltip addition to Tweaks&lt;/li&gt;
&lt;li&gt;Auto Login Added&lt;/li&gt;
&lt;li&gt;Manually Set DNS Servers&lt;/li&gt;
&lt;li&gt;Large number of new program additions&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Program installed pops up before install complete&lt;/li&gt;
&lt;li&gt;Improved Readme on Github&lt;/li&gt;
&lt;li&gt;Better Scaling for large monitors&lt;/li&gt;
&lt;li&gt;Undo Tweak Fixes&lt;/li&gt;
&lt;li&gt;Better Button Placement&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Live Tracker&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/users/ChrisTitusTech/projects/1/views/1&quot;&gt;https://github.com/users/ChrisTitusTech/projects/1/views/1&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;New Tweak Options&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/one-tool-for-everything/tweaks.webp&quot; alt=&quot;Tweaks&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;GitHub Project&lt;/h2&gt;
&lt;p&gt;Check out the official Github page @ &lt;a href=&quot;https://github.com/ChrisTitusTech/winutil&quot;&gt;https://github.com/ChrisTitusTech/winutil&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Donate and Get the Executable&lt;/h2&gt;
&lt;p&gt;Want to run from an exe file? Donate $10 @ &lt;a href=&quot;https://www.cttstore.com/windows-toolbox&quot;&gt;https://www.cttstore.com/windows-toolbox&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/vXyMScSbhk4&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 25 Nov 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;A massive update has arrived for the Windows Utility! Check out all the new features.&lt;/p&gt;

&lt;p&gt;Run Directly from PowerShell with Admin&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;irm christitus.com/win | iex
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;New Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Tooltip addition to Tweaks&lt;/li&gt;
&lt;li&gt;Auto Login Added&lt;/li&gt;
&lt;li&gt;Manually Set DNS Servers&lt;/li&gt;
&lt;li&gt;Large number of new program additions&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Program installed pops up before install complete&lt;/li&gt;
&lt;li&gt;Improved Readme on Github&lt;/li&gt;
&lt;li&gt;Better Scaling for large monitors&lt;/li&gt;
&lt;li&gt;Undo Tweak Fixes&lt;/li&gt;
&lt;li&gt;Better Button Placement&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Live Tracker&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/users/ChrisTitusTech/projects/1/views/1&quot;&gt;https://github.com/users/ChrisTitusTech/projects/1/views/1&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;New Tweak Options&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/one-tool-for-everything/tweaks.webp&quot; alt=&quot;Tweaks&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;GitHub Project&lt;/h2&gt;
&lt;p&gt;Check out the official Github page @ &lt;a href=&quot;https://github.com/ChrisTitusTech/winutil&quot;&gt;https://github.com/ChrisTitusTech/winutil&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Donate and Get the Executable&lt;/h2&gt;
&lt;p&gt;Want to run from an exe file? Donate $10 @ &lt;a href=&quot;https://www.cttstore.com/windows-toolbox&quot;&gt;https://www.cttstore.com/windows-toolbox&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/vXyMScSbhk4&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Best Browser Extensions</title><link>https://christitus.com/best-browser-extensions/</link><guid isPermaLink="true">https://christitus.com/best-browser-extensions/</guid><description>&lt;p&gt;These extensions make life easier when using a browser.&lt;/p&gt;

&lt;h2&gt;The List&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/authenticator/bhghoamapcdpbohphigoooaddinpkbai&quot;&gt;Authenticator&lt;/a&gt; - 2 Factor for websites&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/checker-plus-for-google-c/hkhggnncdpfibdhinjiegagmopldibha&quot;&gt;Checker Plus&lt;/a&gt; - Google Calendar with 1-click&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/clickclean/ghgabhipcejejjmhhchfonmamedcbeod&quot;&gt;Click and Clean&lt;/a&gt; - History and Cache cleaning&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/get-rss-feed-url/kfghpdldaipanmkhfpdcjglncmilendn&quot;&gt;Get RSS Feed URL&lt;/a&gt; - Easily grab the RSS feed for a website&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/gofullpage-full-page-scre/fdpohaocaechififmbbbbbknoalclacl&quot;&gt;GoFullPage&lt;/a&gt; - Full Page Screen Capture&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/midnight-lizard/pbnndmlekkboofhnbonilimejonapojg&quot;&gt;Midnight Lizard&lt;/a&gt; - Dark mode everywhere&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/momentum/laookkfknpbbblfpciffpaejjkokdgca&quot;&gt;Momentum&lt;/a&gt; - Focused Start Screen (Great for Brave users)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/notifier-for-github/lmjdlojahmbbcodnpecnjnmlddbkjhnn&quot;&gt;Notifier for GitHub&lt;/a&gt; - Notification Panel for GitHub&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.anrdoezrs.net/click-9109049-14329390&quot;&gt;Roboform Password Management&lt;/a&gt; (Bitwarden is a good alternative)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/web-highlights-pdf-web-hi/hldjnlbobkdkghfidgoecgmklcemanhm&quot;&gt;Web Highlights&lt;/a&gt; - Highlight parts of a webpage&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Security&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/best-browser-extensions/auth.webp&quot; alt=&quot;Auth&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Authenticator&lt;/strong&gt; is great for simple two factor, but I wouldn&apos;t use this for a bank account. These 2FA codes are synced to the cloud for convenience.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/best-browser-extensions/clickandclean.webp&quot; alt=&quot;Clickandclean&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Click and Clean&lt;/strong&gt; will clean our history, cache, and much more. The built in browser cleaning and history management isn&apos;t good. This makes it a complete solution for security, privacy, and maintenance.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/best-browser-extensions/roboform.webp&quot; alt=&quot;Roboform&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Password Manager&lt;/strong&gt; is something everyone should use. I&apos;ve used &lt;a href=&quot;https://www.anrdoezrs.net/click-9109049-14329390&quot;&gt;RoboForm&lt;/a&gt; for over 10 years and my personal recommendation for automation. Bitwarden is a bit newer and some features like FIDO keys which make also makes it a strong choice. Both password manager offer easy export and import of ALL passwords, which is a vital feature when you use these services to avoid getting &quot;locked in&quot;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: Roboform is currently running a 50% off sale via the link above for Cyber Monday/Black Friday and generally provide a 30% off link after.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The one thing I caution you against is using All-In-One password managers, like McAfee, Nord, and others. The bundles you get will lock you in to their password managers that can hold you hostage if they have breaches and you want to move on.&lt;/p&gt;
&lt;h3&gt;Convenience&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/best-browser-extensions/checker-plus.webp&quot; alt=&quot;Checker Plus&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Checker Plus&lt;/strong&gt; perfect heads up calendar display with easy add for incoming events.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/best-browser-extensions/rss-feeds.webp&quot; alt=&quot;Rss Feeds&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Get RSS Feed URL&lt;/strong&gt; will get those hidden RSS feeds for any website.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/best-browser-extensions/fullscreen.webp&quot; alt=&quot;Fullscreen&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GoFullPage&lt;/strong&gt; captures the ENTIRE webpage and can output it to a PDF or PNG for later use.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/best-browser-extensions/midnight-lizard.webp&quot; alt=&quot;Midnight Lizard&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Midnight Lizard&lt;/strong&gt; Dark mode and other color customizations.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/best-browser-extensions/momentum.webp&quot; alt=&quot;Momentum&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Momentum&lt;/strong&gt; is an essential extension for any brave browser user. Brave has one of the worst start screens with crypto ads and other BS that no one likes. This extension fixes that.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/best-browser-extensions/github-notifications.webp&quot; alt=&quot;Github Notifications&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Notifier for GitHub&lt;/strong&gt; shows GitHub notifications.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/best-browser-extensions/highlights.webp&quot; alt=&quot;Highlights&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Web Highlights&lt;/strong&gt; is a great way to highlight a page as you read, which helps your mind retain what you are reading, but also saves it into the logged in account which can be referred to later.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/j-eK_T-FWIo&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 23 Nov 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;These extensions make life easier when using a browser.&lt;/p&gt;

&lt;h2&gt;The List&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/authenticator/bhghoamapcdpbohphigoooaddinpkbai&quot;&gt;Authenticator&lt;/a&gt; - 2 Factor for websites&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/checker-plus-for-google-c/hkhggnncdpfibdhinjiegagmopldibha&quot;&gt;Checker Plus&lt;/a&gt; - Google Calendar with 1-click&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/clickclean/ghgabhipcejejjmhhchfonmamedcbeod&quot;&gt;Click and Clean&lt;/a&gt; - History and Cache cleaning&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/get-rss-feed-url/kfghpdldaipanmkhfpdcjglncmilendn&quot;&gt;Get RSS Feed URL&lt;/a&gt; - Easily grab the RSS feed for a website&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/gofullpage-full-page-scre/fdpohaocaechififmbbbbbknoalclacl&quot;&gt;GoFullPage&lt;/a&gt; - Full Page Screen Capture&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/midnight-lizard/pbnndmlekkboofhnbonilimejonapojg&quot;&gt;Midnight Lizard&lt;/a&gt; - Dark mode everywhere&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/momentum/laookkfknpbbblfpciffpaejjkokdgca&quot;&gt;Momentum&lt;/a&gt; - Focused Start Screen (Great for Brave users)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/notifier-for-github/lmjdlojahmbbcodnpecnjnmlddbkjhnn&quot;&gt;Notifier for GitHub&lt;/a&gt; - Notification Panel for GitHub&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.anrdoezrs.net/click-9109049-14329390&quot;&gt;Roboform Password Management&lt;/a&gt; (Bitwarden is a good alternative)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/web-highlights-pdf-web-hi/hldjnlbobkdkghfidgoecgmklcemanhm&quot;&gt;Web Highlights&lt;/a&gt; - Highlight parts of a webpage&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Security&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/best-browser-extensions/auth.webp&quot; alt=&quot;Auth&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Authenticator&lt;/strong&gt; is great for simple two factor, but I wouldn&apos;t use this for a bank account. These 2FA codes are synced to the cloud for convenience.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/best-browser-extensions/clickandclean.webp&quot; alt=&quot;Clickandclean&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Click and Clean&lt;/strong&gt; will clean our history, cache, and much more. The built in browser cleaning and history management isn&apos;t good. This makes it a complete solution for security, privacy, and maintenance.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/best-browser-extensions/roboform.webp&quot; alt=&quot;Roboform&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Password Manager&lt;/strong&gt; is something everyone should use. I&apos;ve used &lt;a href=&quot;https://www.anrdoezrs.net/click-9109049-14329390&quot;&gt;RoboForm&lt;/a&gt; for over 10 years and my personal recommendation for automation. Bitwarden is a bit newer and some features like FIDO keys which make also makes it a strong choice. Both password manager offer easy export and import of ALL passwords, which is a vital feature when you use these services to avoid getting &quot;locked in&quot;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: Roboform is currently running a 50% off sale via the link above for Cyber Monday/Black Friday and generally provide a 30% off link after.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The one thing I caution you against is using All-In-One password managers, like McAfee, Nord, and others. The bundles you get will lock you in to their password managers that can hold you hostage if they have breaches and you want to move on.&lt;/p&gt;
&lt;h3&gt;Convenience&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/best-browser-extensions/checker-plus.webp&quot; alt=&quot;Checker Plus&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Checker Plus&lt;/strong&gt; perfect heads up calendar display with easy add for incoming events.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/best-browser-extensions/rss-feeds.webp&quot; alt=&quot;Rss Feeds&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Get RSS Feed URL&lt;/strong&gt; will get those hidden RSS feeds for any website.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/best-browser-extensions/fullscreen.webp&quot; alt=&quot;Fullscreen&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GoFullPage&lt;/strong&gt; captures the ENTIRE webpage and can output it to a PDF or PNG for later use.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/best-browser-extensions/midnight-lizard.webp&quot; alt=&quot;Midnight Lizard&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Midnight Lizard&lt;/strong&gt; Dark mode and other color customizations.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/best-browser-extensions/momentum.webp&quot; alt=&quot;Momentum&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Momentum&lt;/strong&gt; is an essential extension for any brave browser user. Brave has one of the worst start screens with crypto ads and other BS that no one likes. This extension fixes that.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/best-browser-extensions/github-notifications.webp&quot; alt=&quot;Github Notifications&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Notifier for GitHub&lt;/strong&gt; shows GitHub notifications.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/best-browser-extensions/highlights.webp&quot; alt=&quot;Highlights&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Web Highlights&lt;/strong&gt; is a great way to highlight a page as you read, which helps your mind retain what you are reading, but also saves it into the logged in account which can be referred to later.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/j-eK_T-FWIo&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Why We Don&apos;t Browse the Internet Anymore</title><link>https://christitus.com/why-we-dont-browse-the-internet-anymore/</link><guid isPermaLink="true">https://christitus.com/why-we-dont-browse-the-internet-anymore/</guid><description>&lt;p&gt;The problem with the modern internet is ads, sponsored posts, and pay walls. Enter RSS feeds as a solution.&lt;/p&gt;

&lt;p&gt;Subscribe to the sites and information you want to see and not have an algorithm decide what influences you. This requires &quot;fixing&quot; RSS and downloading articles, but the payout is amazing. How many people use RSS? Here is poll I ran on Twitter.&lt;/p&gt;
&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1589727064957284352&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;How we used to browse the Internet&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/why-we-dont-browse-the-internet-anymore/altavista.webp&quot; alt=&quot;Altavista&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The era of altavista, dogpile, askjeeves, yahoo, excite, lycos, and others was an era of innovation and competition. There was a heated rivalry between Internet Exploader and Netscape, which Microsoft inevitably won with dirty business practices. That era was a time of discovery and businesses were figuring out how to make money on the internet.&lt;/p&gt;
&lt;p&gt;Information was scattered everywhere and the web was decentralized among hundreds of companies. When we &quot;logged on&quot; you made decisions on what to do. Sometimes you wanted to play a game, or stumble upon a new website, or browse a news group. Almost nothing curated and uniform. This is often referred to as Web 1.0.&lt;/p&gt;
&lt;h2&gt;How we use the Internet today&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/why-we-dont-browse-the-internet-anymore/google.webp&quot; alt=&quot;Google&quot; /&gt;&lt;/p&gt;
&lt;p&gt;We google anything we want, use our chromium browsers, and social media for everything else. Between Google, Facebook (I&apos;m not calling it Meta), and Amazon we have everything. Facebook is dying off and for old people raging about some political garbage, Amazon we order anything want to appear on our doorstep, and Google is what powers almost every search we do.&lt;/p&gt;
&lt;p&gt;When we find the site we are looking for, it ends up with tons of ads or paywalled. Even worse, some reputable sites sell &quot;sponsored posts&quot; where the advertising gets posted directly in the feed. Imagine watching a television show and then in the third episode its nothing but a giant Subway ad. This is our modern internet.&lt;/p&gt;
&lt;h2&gt;How to fix it with RSS&lt;/h2&gt;
&lt;p&gt;Really Simple Syndication or RSS for short, is used to get updates from websites whenever something is posted. You have a listing of the entire website and you can pick the article you want to read. Even better you can subscribe to YouTube Channels and other social feeds to RSS as well.&lt;/p&gt;
&lt;p&gt;The problem? Ads, Brief Summaries, and redirects. We fix this by using a feed aggregator and never leave our RSS reader.&lt;/p&gt;
&lt;p&gt;The other problem with RSS Readers online are expensive using feedly($8), inoreader($10), and newsblur($3) per month. This used all be free with Google Reader, but in typical Google fashion they killed Reader.&lt;/p&gt;
&lt;h3&gt;Feed Aggregation&lt;/h3&gt;
&lt;p&gt;I use docker self-hosted aggregator &lt;a href=&quot;https://github.com/heussd/fivefilters-full-text-rss-docker&quot;&gt;https://github.com/heussd/fivefilters-full-text-rss-docker&lt;/a&gt; or if you want to pay money you can use &lt;a href=&quot;http://ftr.fivefilters.org/&quot;&gt;five filters aggregator&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here is my docker command to install and configure it on my docker server using port 50000&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker run -d \
--name=full-test-rss \
-p 50000:80 \
--restart always \
heussd/fivefilters-full-text-rss:latest
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Feed Reader&lt;/h3&gt;
&lt;p&gt;There are a couple different ways to pull in these RSS feeds. For browsers there is Vivaldi, external programs like Obsidian, and for self-hosted I recommend &lt;a href=&quot;https://freshrss.org/&quot;&gt;FreshRSS&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I use my docker server again to host this on port 49999&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker run -d \
  --name=freshrss \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europe/London \
  -p 49999:80 \
  -v /path/to/data:/config \
  --restart unless-stopped \
  lscr.io/linuxserver/freshrss:latest
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/nxV0CPNeFxY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 21 Nov 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The problem with the modern internet is ads, sponsored posts, and pay walls. Enter RSS feeds as a solution.&lt;/p&gt;

&lt;p&gt;Subscribe to the sites and information you want to see and not have an algorithm decide what influences you. This requires &quot;fixing&quot; RSS and downloading articles, but the payout is amazing. How many people use RSS? Here is poll I ran on Twitter.&lt;/p&gt;
&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1589727064957284352&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;How we used to browse the Internet&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/why-we-dont-browse-the-internet-anymore/altavista.webp&quot; alt=&quot;Altavista&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The era of altavista, dogpile, askjeeves, yahoo, excite, lycos, and others was an era of innovation and competition. There was a heated rivalry between Internet Exploader and Netscape, which Microsoft inevitably won with dirty business practices. That era was a time of discovery and businesses were figuring out how to make money on the internet.&lt;/p&gt;
&lt;p&gt;Information was scattered everywhere and the web was decentralized among hundreds of companies. When we &quot;logged on&quot; you made decisions on what to do. Sometimes you wanted to play a game, or stumble upon a new website, or browse a news group. Almost nothing curated and uniform. This is often referred to as Web 1.0.&lt;/p&gt;
&lt;h2&gt;How we use the Internet today&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/why-we-dont-browse-the-internet-anymore/google.webp&quot; alt=&quot;Google&quot; /&gt;&lt;/p&gt;
&lt;p&gt;We google anything we want, use our chromium browsers, and social media for everything else. Between Google, Facebook (I&apos;m not calling it Meta), and Amazon we have everything. Facebook is dying off and for old people raging about some political garbage, Amazon we order anything want to appear on our doorstep, and Google is what powers almost every search we do.&lt;/p&gt;
&lt;p&gt;When we find the site we are looking for, it ends up with tons of ads or paywalled. Even worse, some reputable sites sell &quot;sponsored posts&quot; where the advertising gets posted directly in the feed. Imagine watching a television show and then in the third episode its nothing but a giant Subway ad. This is our modern internet.&lt;/p&gt;
&lt;h2&gt;How to fix it with RSS&lt;/h2&gt;
&lt;p&gt;Really Simple Syndication or RSS for short, is used to get updates from websites whenever something is posted. You have a listing of the entire website and you can pick the article you want to read. Even better you can subscribe to YouTube Channels and other social feeds to RSS as well.&lt;/p&gt;
&lt;p&gt;The problem? Ads, Brief Summaries, and redirects. We fix this by using a feed aggregator and never leave our RSS reader.&lt;/p&gt;
&lt;p&gt;The other problem with RSS Readers online are expensive using feedly($8), inoreader($10), and newsblur($3) per month. This used all be free with Google Reader, but in typical Google fashion they killed Reader.&lt;/p&gt;
&lt;h3&gt;Feed Aggregation&lt;/h3&gt;
&lt;p&gt;I use docker self-hosted aggregator &lt;a href=&quot;https://github.com/heussd/fivefilters-full-text-rss-docker&quot;&gt;https://github.com/heussd/fivefilters-full-text-rss-docker&lt;/a&gt; or if you want to pay money you can use &lt;a href=&quot;http://ftr.fivefilters.org/&quot;&gt;five filters aggregator&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here is my docker command to install and configure it on my docker server using port 50000&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker run -d \
--name=full-test-rss \
-p 50000:80 \
--restart always \
heussd/fivefilters-full-text-rss:latest
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Feed Reader&lt;/h3&gt;
&lt;p&gt;There are a couple different ways to pull in these RSS feeds. For browsers there is Vivaldi, external programs like Obsidian, and for self-hosted I recommend &lt;a href=&quot;https://freshrss.org/&quot;&gt;FreshRSS&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I use my docker server again to host this on port 49999&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker run -d \
  --name=freshrss \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europe/London \
  -p 49999:80 \
  -v /path/to/data:/config \
  --restart unless-stopped \
  lscr.io/linuxserver/freshrss:latest
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/nxV0CPNeFxY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>5 Essential Terminal Utilities</title><link>https://christitus.com/5-terminal-commands/</link><guid isPermaLink="true">https://christitus.com/5-terminal-commands/</guid><description>
&lt;h2&gt;TLDR&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/5-terminal-commands/tldr.webp&quot; alt=&quot;Tldr&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Too long didn&apos;t read? The perfect solution for long man pages that we just want some quick examples and basic syntax for a command. TLDR is a vital tool to save you time when learning the terminal.&lt;/p&gt;
&lt;h2&gt;CMatrix&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/5-terminal-commands/cmatrix.webp&quot; alt=&quot;Cmatrix&quot; /&gt;&lt;/p&gt;
&lt;p&gt;How can you use Linux without using CMatrix... It&apos;s hard to be cool without it.&lt;/p&gt;
&lt;h2&gt;Trash-CLI&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/5-terminal-commands/trash-cli.webp&quot; alt=&quot;Trash Cli&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This is a life saver after you delete a directory or files in terminal and need to get them back. I highly recommend making the following alias in your &lt;code&gt;~/.bashrc&lt;/code&gt; file.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;alias rm=&apos;trash -v&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Delete a file and send it to the trash:
&lt;code&gt;trash path/to/file&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;List all files in the trash:
&lt;code&gt;trash-list&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Interactively restore a file from the trash:
&lt;code&gt;trash-restore&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Empty the trash:
&lt;code&gt;trash-empty&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Permanently delete all files in the trash which are older than 10 days:
&lt;code&gt;trash-empty 10&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Remove all files in the trash, which match a specific blob pattern:
&lt;code&gt;trash-rm &quot;*.o&quot;&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Remove all files with a specific original location:
&lt;code&gt;trash-rm /path/to/file_or_directory&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Autojump&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/5-terminal-commands/autojump.webp&quot; alt=&quot;Autojump&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This is my most used terminal utility that saves me the most amount of time. The catch to this program is you must have navigated to the directory at least once in terminal first.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Jump to a directory that contains the given pattern:
&lt;code&gt;j pattern&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Jump to a sub-directory (child) of the current directory that contains the given pattern:
&lt;code&gt;jc pattern&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Open a directory that contains the given pattern in the operating system file manager:
&lt;code&gt;jo pattern&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Remove non-existing directories from the autojump database:
&lt;code&gt;j --purge&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Show the entries in the autojump database:
&lt;code&gt;j -s&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Progress&lt;/h2&gt;
&lt;p&gt;Tired of wondering how much longer the cp, mv, dd, tar, cat, and other Linux coreutil functions take? Progress will tell you!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Show the progress of running coreutils:
&lt;code&gt;progress&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Launch and monitor a single long-running command:
&lt;code&gt;command &amp;amp; progress --monitor --pid $!&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Include an estimate of time remaining for completion:
&lt;code&gt;progress --wait --command rsync&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/HKB8RUWZIQA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 18 Nov 2022 00:00:00 GMT</pubDate><content:encoded>
&lt;h2&gt;TLDR&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/5-terminal-commands/tldr.webp&quot; alt=&quot;Tldr&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Too long didn&apos;t read? The perfect solution for long man pages that we just want some quick examples and basic syntax for a command. TLDR is a vital tool to save you time when learning the terminal.&lt;/p&gt;
&lt;h2&gt;CMatrix&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/5-terminal-commands/cmatrix.webp&quot; alt=&quot;Cmatrix&quot; /&gt;&lt;/p&gt;
&lt;p&gt;How can you use Linux without using CMatrix... It&apos;s hard to be cool without it.&lt;/p&gt;
&lt;h2&gt;Trash-CLI&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/5-terminal-commands/trash-cli.webp&quot; alt=&quot;Trash Cli&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This is a life saver after you delete a directory or files in terminal and need to get them back. I highly recommend making the following alias in your &lt;code&gt;~/.bashrc&lt;/code&gt; file.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;alias rm=&apos;trash -v&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Delete a file and send it to the trash:
&lt;code&gt;trash path/to/file&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;List all files in the trash:
&lt;code&gt;trash-list&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Interactively restore a file from the trash:
&lt;code&gt;trash-restore&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Empty the trash:
&lt;code&gt;trash-empty&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Permanently delete all files in the trash which are older than 10 days:
&lt;code&gt;trash-empty 10&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Remove all files in the trash, which match a specific blob pattern:
&lt;code&gt;trash-rm &quot;*.o&quot;&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Remove all files with a specific original location:
&lt;code&gt;trash-rm /path/to/file_or_directory&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Autojump&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/5-terminal-commands/autojump.webp&quot; alt=&quot;Autojump&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This is my most used terminal utility that saves me the most amount of time. The catch to this program is you must have navigated to the directory at least once in terminal first.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Jump to a directory that contains the given pattern:
&lt;code&gt;j pattern&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Jump to a sub-directory (child) of the current directory that contains the given pattern:
&lt;code&gt;jc pattern&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Open a directory that contains the given pattern in the operating system file manager:
&lt;code&gt;jo pattern&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Remove non-existing directories from the autojump database:
&lt;code&gt;j --purge&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Show the entries in the autojump database:
&lt;code&gt;j -s&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Progress&lt;/h2&gt;
&lt;p&gt;Tired of wondering how much longer the cp, mv, dd, tar, cat, and other Linux coreutil functions take? Progress will tell you!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Show the progress of running coreutils:
&lt;code&gt;progress&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Launch and monitor a single long-running command:
&lt;code&gt;command &amp;amp; progress --monitor --pid $!&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Include an estimate of time remaining for completion:
&lt;code&gt;progress --wait --command rsync&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/HKB8RUWZIQA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Fix Corrupted Windows Install</title><link>https://christitus.com/fix-corrupt-windows-install/</link><guid isPermaLink="true">https://christitus.com/fix-corrupt-windows-install/</guid><description>&lt;p&gt;Using SFC and DISM is often done in haste and incorrectly. If you need to fix a corrupted install, then a special DISM command MUST BE issued.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1587911136879542273&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;The Commands&lt;/h2&gt;
&lt;h3&gt;Basic Online Command&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/fix-corrupt-windows-install/dism-normal.webp&quot; alt=&quot;Dism Normal&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;DISM /Online /Cleanup-Image /CheckHealthDISM /Online /Cleanup-Image /CheckHealth
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: This will check it&apos;s health and cleanup basic corruption errors.&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Command to Fix From Windows ISO&lt;/h3&gt;
&lt;p&gt;Use this command when the basic one fails. Follow these steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Download the Windows ISO from &lt;a href=&quot;https://www.microsoft.com/en-us/software-download/windows10ISO&quot;&gt;https://www.microsoft.com/en-us/software-download/windows10ISO&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Mount the ISO and note the drive letter (ex. E:)&lt;/li&gt;
&lt;li&gt;Run DISM with sources flag&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;DISM /Online /Cleanup-Image /RestoreHealth /Source:E:\Sources\install.wim
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: &lt;code&gt;install.wim&lt;/code&gt; is known as ESD in some downloads &lt;code&gt;install.esd&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Verify History and Logs&lt;/h2&gt;
&lt;p&gt;Did it run correctly? Was the corruption repaired?&lt;/p&gt;
&lt;p&gt;Check the log file at &lt;code&gt;%windir%\Logs\DISM\dism.log&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;SFC - The Worthless Tool&lt;/h2&gt;
&lt;p&gt;System file checker is WORTHLESS! In the best scenario it might tell you about some corruption, but I have never seen it actually repair anything.&lt;/p&gt;
&lt;p&gt;Yet every damn guide on the internet recommends you run it. Save your time, and use DISM instead.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/jZoR4MayBu0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 16 Nov 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Using SFC and DISM is often done in haste and incorrectly. If you need to fix a corrupted install, then a special DISM command MUST BE issued.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1587911136879542273&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;The Commands&lt;/h2&gt;
&lt;h3&gt;Basic Online Command&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/fix-corrupt-windows-install/dism-normal.webp&quot; alt=&quot;Dism Normal&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;DISM /Online /Cleanup-Image /CheckHealthDISM /Online /Cleanup-Image /CheckHealth
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: This will check it&apos;s health and cleanup basic corruption errors.&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Command to Fix From Windows ISO&lt;/h3&gt;
&lt;p&gt;Use this command when the basic one fails. Follow these steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Download the Windows ISO from &lt;a href=&quot;https://www.microsoft.com/en-us/software-download/windows10ISO&quot;&gt;https://www.microsoft.com/en-us/software-download/windows10ISO&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Mount the ISO and note the drive letter (ex. E:)&lt;/li&gt;
&lt;li&gt;Run DISM with sources flag&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;DISM /Online /Cleanup-Image /RestoreHealth /Source:E:\Sources\install.wim
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: &lt;code&gt;install.wim&lt;/code&gt; is known as ESD in some downloads &lt;code&gt;install.esd&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Verify History and Logs&lt;/h2&gt;
&lt;p&gt;Did it run correctly? Was the corruption repaired?&lt;/p&gt;
&lt;p&gt;Check the log file at &lt;code&gt;%windir%\Logs\DISM\dism.log&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;SFC - The Worthless Tool&lt;/h2&gt;
&lt;p&gt;System file checker is WORTHLESS! In the best scenario it might tell you about some corruption, but I have never seen it actually repair anything.&lt;/p&gt;
&lt;p&gt;Yet every damn guide on the internet recommends you run it. Save your time, and use DISM instead.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/jZoR4MayBu0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Shell The Essential App</title><link>https://christitus.com/shell-the-essential-app/</link><guid isPermaLink="true">https://christitus.com/shell-the-essential-app/</guid><description>&lt;p&gt;Context menus have become worse in Windows 11 and weren&apos;t good in Windows 10. This application will fix it for both modern Windows operating systems.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1587824008342429696&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;The App&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/shell-the-essential-app/shell.webp&quot; alt=&quot;Shell&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I install this app in both Windows 10 and Windows 11. Here is a breakdown of all the context menus that it adds and expands.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Access the terminal from anywhere (hold shift to run as admin)&lt;/li&gt;
&lt;li&gt;Expanded Files (Create New, Copy Path, and Show hidden)&lt;/li&gt;
&lt;li&gt;Developer Options (Vs code launch, build from explorer, etc.)&lt;/li&gt;
&lt;li&gt;Goto Shortcuts (Common files and folders, System settings, etc.)&lt;/li&gt;
&lt;li&gt;Common sense copy and paste&lt;/li&gt;
&lt;li&gt;Create Shortcuts&lt;/li&gt;
&lt;li&gt;Program your own command!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/shell-the-essential-app/menu.webp&quot; alt=&quot;Menu&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Build your own menu and items&lt;/h2&gt;
&lt;p&gt;Shell is extremely easy to add commands and custom menus. Launch custom commands with arguments. Here is a quick how-to:&lt;/p&gt;
&lt;p&gt;Open &lt;code&gt;C:\Program Files\Nilesoft\Shell\shell.shl&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/shell-the-essential-app/shl.webp&quot; alt=&quot;Shl&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Add a custom command and pass arguments by editing the dynamic JSON section:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;dynamic 
{
  item(title=&apos;Chris Titus Tech YouTube&apos; cmd=&apos;C:\Users\Subscribe\AppData\Local\BraveSoftware\Brave-Browser\Application\brave.exe&apos; args=&apos;https://youtube.com/c/ChrisTitusTech&apos;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The basic syntax is :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;item(title=&apos;sample title&apos; cmd=&apos;executable path and exe&apos; args=&apos;extra commands&apos;)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/s6YINpJb2dc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 14 Nov 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Context menus have become worse in Windows 11 and weren&apos;t good in Windows 10. This application will fix it for both modern Windows operating systems.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1587824008342429696&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;The App&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/shell-the-essential-app/shell.webp&quot; alt=&quot;Shell&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I install this app in both Windows 10 and Windows 11. Here is a breakdown of all the context menus that it adds and expands.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Access the terminal from anywhere (hold shift to run as admin)&lt;/li&gt;
&lt;li&gt;Expanded Files (Create New, Copy Path, and Show hidden)&lt;/li&gt;
&lt;li&gt;Developer Options (Vs code launch, build from explorer, etc.)&lt;/li&gt;
&lt;li&gt;Goto Shortcuts (Common files and folders, System settings, etc.)&lt;/li&gt;
&lt;li&gt;Common sense copy and paste&lt;/li&gt;
&lt;li&gt;Create Shortcuts&lt;/li&gt;
&lt;li&gt;Program your own command!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/shell-the-essential-app/menu.webp&quot; alt=&quot;Menu&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Build your own menu and items&lt;/h2&gt;
&lt;p&gt;Shell is extremely easy to add commands and custom menus. Launch custom commands with arguments. Here is a quick how-to:&lt;/p&gt;
&lt;p&gt;Open &lt;code&gt;C:\Program Files\Nilesoft\Shell\shell.shl&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/shell-the-essential-app/shl.webp&quot; alt=&quot;Shl&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Add a custom command and pass arguments by editing the dynamic JSON section:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;dynamic 
{
  item(title=&apos;Chris Titus Tech YouTube&apos; cmd=&apos;C:\Users\Subscribe\AppData\Local\BraveSoftware\Brave-Browser\Application\brave.exe&apos; args=&apos;https://youtube.com/c/ChrisTitusTech&apos;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The basic syntax is :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;item(title=&apos;sample title&apos; cmd=&apos;executable path and exe&apos; args=&apos;extra commands&apos;)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/s6YINpJb2dc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Ubuntus ARM Is Good</title><link>https://christitus.com/ubuntus-arm-is-good/</link><guid isPermaLink="true">https://christitus.com/ubuntus-arm-is-good/</guid><description>&lt;p&gt;ARM Computing has gone mainstream with Raspberry Pi and Mac M1/M2 chips. Harnessing this in a Linux desktop can be interesting. This is where I started using Ubuntu again.&lt;/p&gt;

&lt;p&gt;Ubuntu&apos;s ARM spin is fantastic at a server level. The main issue I&apos;ve had with Ubuntu desktops in the past are it reliance on GNOME&apos;s desktop environment and SNAP packages. Both these issues get alleviated when we get in to the server realm. My new PC that I&apos;m building on arm using the OrangePi 800 hardware is fantastic with the right software installed on it. That is where Ubuntu ARM enters...&lt;/p&gt;
&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1587141986942861315&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;The Setup&lt;/h2&gt;
&lt;p&gt;Download the latest ARM package from &lt;a href=&quot;https://ubuntu.com/download/server/arm&quot;&gt;https://ubuntu.com/download/server/arm&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;After the setup process I did the following tweaks to fix Ubuntu&apos;s base to my liking:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Disable Snaps&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;snap list
sudo snap remove programs
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Purge snap daemon and prevent reinstall&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;sudo apt purge snapd
sudo apt-mark hold snapd
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Verify the Uninstall&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;apt list --install | grep snap
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Desktop Environment&lt;/h3&gt;
&lt;p&gt;The easiest way to set up the system for desktop usage is to use &lt;code&gt;tasksel&lt;/code&gt; and then pick the desktop environment that you like the best.&lt;/p&gt;
&lt;p&gt;My recommendations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows Users - KDE&lt;/li&gt;
&lt;li&gt;MacOS users - GNOME&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This will give you the base install for your ARM system.&lt;/p&gt;
&lt;h2&gt;Why Ubuntu?&lt;/h2&gt;
&lt;p&gt;I haven&apos;t talked well about Ubuntu in the past because of their position on Snaps and switching to GNOME as their desktop environment. The reason I am choosing Ubuntu ARM is because it fit best for my use case. I needed up-to-date packages and reliability in the ARM space. I&apos;d use Debian testing or sid for this task, but their ARM spins were not reliable on these branches from my testing. There were display issues and compatibility from missing firmware and non-free. To fix this, I download the non-free firmware ISO, but for ARM these are hard to find. Even after upgrading Debian stable to testing or sid, the ARM servers had experimental packages that didn&apos;t work with the hardware I was using. I had none of these issues from Ubuntu&apos;s ARM distribution.&lt;/p&gt;
&lt;p&gt;For the bleeding edge, there is no better distribution than Arch and there ARM branch is one of the best out there. Arch Linux is unstable at it&apos;s core and not suitable for a device that I might only use once a week or month. This could be remedied by making it immutable, but having to mess with images is not fun or practical as a single maintainer.&lt;/p&gt;
&lt;p&gt;That left me with raspbian or armbian, but both these distributions are downstream from Ubuntu and Debian. This means the packages are stable, but old and I need new packages if I want to use it as a desktop replacement. That left me with one logical choice... Ubuntu.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/mxRVwF2YG3Q&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 11 Nov 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;ARM Computing has gone mainstream with Raspberry Pi and Mac M1/M2 chips. Harnessing this in a Linux desktop can be interesting. This is where I started using Ubuntu again.&lt;/p&gt;

&lt;p&gt;Ubuntu&apos;s ARM spin is fantastic at a server level. The main issue I&apos;ve had with Ubuntu desktops in the past are it reliance on GNOME&apos;s desktop environment and SNAP packages. Both these issues get alleviated when we get in to the server realm. My new PC that I&apos;m building on arm using the OrangePi 800 hardware is fantastic with the right software installed on it. That is where Ubuntu ARM enters...&lt;/p&gt;
&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1587141986942861315&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;The Setup&lt;/h2&gt;
&lt;p&gt;Download the latest ARM package from &lt;a href=&quot;https://ubuntu.com/download/server/arm&quot;&gt;https://ubuntu.com/download/server/arm&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;After the setup process I did the following tweaks to fix Ubuntu&apos;s base to my liking:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Disable Snaps&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;snap list
sudo snap remove programs
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Purge snap daemon and prevent reinstall&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;sudo apt purge snapd
sudo apt-mark hold snapd
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Verify the Uninstall&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;apt list --install | grep snap
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Desktop Environment&lt;/h3&gt;
&lt;p&gt;The easiest way to set up the system for desktop usage is to use &lt;code&gt;tasksel&lt;/code&gt; and then pick the desktop environment that you like the best.&lt;/p&gt;
&lt;p&gt;My recommendations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows Users - KDE&lt;/li&gt;
&lt;li&gt;MacOS users - GNOME&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This will give you the base install for your ARM system.&lt;/p&gt;
&lt;h2&gt;Why Ubuntu?&lt;/h2&gt;
&lt;p&gt;I haven&apos;t talked well about Ubuntu in the past because of their position on Snaps and switching to GNOME as their desktop environment. The reason I am choosing Ubuntu ARM is because it fit best for my use case. I needed up-to-date packages and reliability in the ARM space. I&apos;d use Debian testing or sid for this task, but their ARM spins were not reliable on these branches from my testing. There were display issues and compatibility from missing firmware and non-free. To fix this, I download the non-free firmware ISO, but for ARM these are hard to find. Even after upgrading Debian stable to testing or sid, the ARM servers had experimental packages that didn&apos;t work with the hardware I was using. I had none of these issues from Ubuntu&apos;s ARM distribution.&lt;/p&gt;
&lt;p&gt;For the bleeding edge, there is no better distribution than Arch and there ARM branch is one of the best out there. Arch Linux is unstable at it&apos;s core and not suitable for a device that I might only use once a week or month. This could be remedied by making it immutable, but having to mess with images is not fun or practical as a single maintainer.&lt;/p&gt;
&lt;p&gt;That left me with raspbian or armbian, but both these distributions are downstream from Ubuntu and Debian. This means the packages are stable, but old and I need new packages if I want to use it as a desktop replacement. That left me with one logical choice... Ubuntu.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/mxRVwF2YG3Q&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Windows 22H2 has Problems</title><link>https://christitus.com/Windows-22H2-problems/</link><guid isPermaLink="true">https://christitus.com/Windows-22H2-problems/</guid><description>&lt;p&gt;I&apos;ve had a ton of bug reports from 22H2. DO NOT UPDATE to this first Windows 11 update.&lt;/p&gt;

&lt;h2&gt;The Nature of Updates and Security&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Security is a journey, not a destination - Ralph Waldo Emerson&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The instinct for any Journalist, YouTuber, Media Personality, or Technical Writer to make a sensational title. This one could be &quot;Windows 22H2 is a Nightmare and it will steal the DNA from your babies.&quot;&lt;/p&gt;
&lt;p&gt;That would get a stupid amount of views and ad revenue, but it wouldn&apos;t teach you anything. Instead we need to understand the nature of update and with that knowledge, we will be better computer users.&lt;/p&gt;
&lt;p&gt;Any system that updates frequently will have bugs. Fix two bugs... One more appears. This is the nature of computing.&lt;/p&gt;
&lt;h2&gt;Microsoft Known Issues and Updates&lt;/h2&gt;
&lt;p&gt;Source article: &lt;a href=&quot;https://learn.microsoft.com/en-us/windows/release-health/status-windows-11-22h2&quot;&gt;https://learn.microsoft.com/en-us/windows/release-health/status-windows-11-22h2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Issues on 10-22-2022&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/Windows-22H2-problems/ms-known-issues.webp&quot; alt=&quot;Ms Known Issues&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Issues update on 10-31-2022&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/Windows-22H2-problems/issue-update.webp&quot; alt=&quot;Issue Update&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Should you Update?&lt;/h2&gt;
&lt;p&gt;HELL NO!&lt;/p&gt;
&lt;p&gt;Being on the newest release of anything can be fun and dealing with new shining features is a blast, but it comes with a cost. You will experience issues and more &quot;known issues&quot; will appears as more and more users adopt it. Microsoft doesn&apos;t have a good quality control department and I wait AT LEAST 1 year after feature updates hit the market before upgrading. For my Windows instances, I wait 2 years.&lt;/p&gt;
&lt;h2&gt;Is Windows Bad at Updates?&lt;/h2&gt;
&lt;p&gt;This isn&apos;t a yes or no answer, but the more complex and old a system is, the greater margin for errors to occur. The foundation of Windows hasn&apos;t drastically changed in decades and this makes updating the platform a monumental task for even the mammoth corporation that is Microsoft.&lt;/p&gt;
&lt;p&gt;Microsoft has some talented employees, but it takes time to add polish and with new feature updates pushed out the door every 6 months... Expect this to be a trend for ALL future feature updates.&lt;/p&gt;
&lt;h2&gt;Source Articles&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://pureinfotech.com/windows-11-22h2-bug-remote-desktop/&quot;&gt;https://pureinfotech.com/windows-11-22h2-bug-remote-desktop/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/windows/release-health/status-windows-11-22h2&quot;&gt;https://learn.microsoft.com/en-us/windows/release-health/status-windows-11-22h2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://windowsreport.com/windows-11-22h2-bugs/&quot;&gt;https://windowsreport.com/windows-11-22h2-bugs/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.techradar.com/news/windows-11-22h2-bug-breaks-windows-hello-security-feature&quot;&gt;https://www.techradar.com/news/windows-11-22h2-bug-breaks-windows-hello-security-feature&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/ITI1HaFeq_g&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 09 Nov 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;ve had a ton of bug reports from 22H2. DO NOT UPDATE to this first Windows 11 update.&lt;/p&gt;

&lt;h2&gt;The Nature of Updates and Security&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Security is a journey, not a destination - Ralph Waldo Emerson&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The instinct for any Journalist, YouTuber, Media Personality, or Technical Writer to make a sensational title. This one could be &quot;Windows 22H2 is a Nightmare and it will steal the DNA from your babies.&quot;&lt;/p&gt;
&lt;p&gt;That would get a stupid amount of views and ad revenue, but it wouldn&apos;t teach you anything. Instead we need to understand the nature of update and with that knowledge, we will be better computer users.&lt;/p&gt;
&lt;p&gt;Any system that updates frequently will have bugs. Fix two bugs... One more appears. This is the nature of computing.&lt;/p&gt;
&lt;h2&gt;Microsoft Known Issues and Updates&lt;/h2&gt;
&lt;p&gt;Source article: &lt;a href=&quot;https://learn.microsoft.com/en-us/windows/release-health/status-windows-11-22h2&quot;&gt;https://learn.microsoft.com/en-us/windows/release-health/status-windows-11-22h2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Issues on 10-22-2022&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/Windows-22H2-problems/ms-known-issues.webp&quot; alt=&quot;Ms Known Issues&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Issues update on 10-31-2022&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/Windows-22H2-problems/issue-update.webp&quot; alt=&quot;Issue Update&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Should you Update?&lt;/h2&gt;
&lt;p&gt;HELL NO!&lt;/p&gt;
&lt;p&gt;Being on the newest release of anything can be fun and dealing with new shining features is a blast, but it comes with a cost. You will experience issues and more &quot;known issues&quot; will appears as more and more users adopt it. Microsoft doesn&apos;t have a good quality control department and I wait AT LEAST 1 year after feature updates hit the market before upgrading. For my Windows instances, I wait 2 years.&lt;/p&gt;
&lt;h2&gt;Is Windows Bad at Updates?&lt;/h2&gt;
&lt;p&gt;This isn&apos;t a yes or no answer, but the more complex and old a system is, the greater margin for errors to occur. The foundation of Windows hasn&apos;t drastically changed in decades and this makes updating the platform a monumental task for even the mammoth corporation that is Microsoft.&lt;/p&gt;
&lt;p&gt;Microsoft has some talented employees, but it takes time to add polish and with new feature updates pushed out the door every 6 months... Expect this to be a trend for ALL future feature updates.&lt;/p&gt;
&lt;h2&gt;Source Articles&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://pureinfotech.com/windows-11-22h2-bug-remote-desktop/&quot;&gt;https://pureinfotech.com/windows-11-22h2-bug-remote-desktop/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/windows/release-health/status-windows-11-22h2&quot;&gt;https://learn.microsoft.com/en-us/windows/release-health/status-windows-11-22h2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://windowsreport.com/windows-11-22h2-bugs/&quot;&gt;https://windowsreport.com/windows-11-22h2-bugs/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.techradar.com/news/windows-11-22h2-bug-breaks-windows-hello-security-feature&quot;&gt;https://www.techradar.com/news/windows-11-22h2-bug-breaks-windows-hello-security-feature&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/ITI1HaFeq_g&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Neovim Is Better</title><link>https://christitus.com/neovim-is-better/</link><guid isPermaLink="true">https://christitus.com/neovim-is-better/</guid><description>&lt;p&gt;I&apos;ve never experienced a program with such power and potential than Neovim. It does so much and we are at the beginning as it isn&apos;t even to a 1.0 release yet. The best part is the program works on Windows, MacOS, and Linux.&lt;/p&gt;

&lt;p&gt;The following tweet encompasses my thoughts and feelings in my first week using Neovim.&lt;/p&gt;
&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1584944224700702720&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;Is this the path for you?&lt;/h2&gt;
&lt;p&gt;Neovim is rewarding after configured. The amount of automation, speed, and shear possibilities are limitless, but NOT without it&apos;s downside though. I&apos;ve spent hours working on my basic configuration and I am still months away before I will be close to completion. I say this as a NOOB! That is because I had no idea what a DAP, LSP, Linter, and other coding terms were before I began this journey.&lt;/p&gt;
&lt;p&gt;If you know any of the coding terms and a little LUA, you will have a better starting point than myself. If not, get prepared to learn because there will be a lot of new terms and functionality you will need to know to get the most out of Neovim experience.&lt;/p&gt;
&lt;h2&gt;What I use Neovim for&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Writing&lt;/strong&gt; is a difficult task that requires focus and creativity. For me, having the focus mode with a Linter that checks spelling and grammar has made a massive difference. I prefer the linting approach to writing, because it doesn&apos;t tell me about sentence structure or grammar until I&apos;ve finished my thought and saved.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Configuration Files&lt;/strong&gt; in Neovim are a dream for any system admin that doesn&apos;t have the luxury of a desktop or are using a remote server. Tab out files, read other contents into an existing file, and have a file explorer with full undo logs. I could go on, but you get the idea.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Coding&lt;/strong&gt; is where most people&apos;s mind goes with Neovim. You have the rockstars, like primeagen, that make Neovim look like a tool of the gods and mere mortals use other editors.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;With Neovim being so young in releases the latest release you can get is the best. Anything below 0.7 is too low as it won&apos;t have the features you will need for the best experience. I highly recommend downloading directly from Neovim&apos;s GitHub releases: &lt;a href=&quot;https://github.com/Neovim/Neovim/releases/tag/stable&quot;&gt;https://github.com/Neovim/Neovim/releases/tag/stable&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;All dependencies and requirements are in my &lt;a href=&quot;http://setup.sh&quot;&gt;setup.sh&lt;/a&gt; for Linux and winsetup.ps1 for Windows from: &lt;a href=&quot;https://github.com/ChrisTitusTech/Neovim&quot;&gt;https://github.com/ChrisTitusTech/Neovim&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone https://github.com/christitustech/Neovim
cd Neovim
sudo ./setup.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Windows PowerShell Alternative&lt;/h3&gt;
&lt;p&gt;I modified PowerShell to also use Neovim. I did make a &lt;code&gt;winsetup.ps1&lt;/code&gt; to help aid in the setup, but there will be more manual steps to this setup.&lt;/p&gt;
&lt;p&gt;Included cpp compiler and runtime to assist in programming, but the biggest thing to setup is nodejs. This has an automated script that will fix python and other dependencies that are problematic in Windows.&lt;/p&gt;
&lt;p&gt;Setting PATH in Windows is your biggest priority for a functional Neovim. Type &lt;code&gt;sysdm.cpl&lt;/code&gt; to launch into System Properties and click Advanced -&amp;gt; Environment Variables to set the paths. Add any missing health checks here.&lt;/p&gt;
&lt;h2&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Instead of making a big modular structure that you see in most Neovim projects, mine is small for ease of learning. It will expand as times goes on, but I want to KISS it... Keep it stupid simple. There is 3 files:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;init.lua&lt;/code&gt; - Initializes Neovim and calls any extra files. These are my main settings and special plugin configurations. _Note: some people use the old &lt;code&gt;init.vim&lt;/code&gt; instead of lua, but that defeats the purpose of using Neovim.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lua/keymaps.lua&lt;/code&gt; - These are all my key bindings for Neovim&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lua/plugins.lua&lt;/code&gt; - List of plugins to load.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Startup&lt;/h2&gt;
&lt;p&gt;USE &lt;code&gt;:checkhealth&lt;/code&gt; FIRST!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/neovim-is-better/checkhealth.webp&quot; alt=&quot;Checkhealth&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Errors must be fixed to have a functional Neovim experience. Warnings can be ignored, but noted, because you may have failed installs for LSPs, Linters, and other tools.&lt;/p&gt;
&lt;h3&gt;Adding Tools&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;:Mason&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/neovim-is-better/mason.webp&quot; alt=&quot;Mason&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: I recommend ONLY installing what you USE!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Shortcuts for Mason:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;i = install&lt;/li&gt;
&lt;li&gt;U = upgrade package&lt;/li&gt;
&lt;li&gt;X = remove package&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;What NOT to do&lt;/h2&gt;
&lt;p&gt;Neovim is such a powerful editor that it can do anything. Before you do this, ask yourself, &quot;Do I use this?&quot; and if not, do NOT install it!&lt;/p&gt;
&lt;p&gt;If you want all the plugins and have every language supported, I&apos;d recommend Lunar vim or NvChad. These projects do a fantastic job of emulating every part of vscode, while also having an easy install and setup.&lt;/p&gt;
&lt;p&gt;I&apos;d recommend installing them to see what Neovim is capable of, but I did NOT like them for the long term. This is because Neovim needs a personal touch to see its true power.&lt;/p&gt;
&lt;p&gt;I fell in love with Neovim once I started to add the features I used. Remember, you can always expand later.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/6VbOLOuiHUI&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 07 Nov 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;ve never experienced a program with such power and potential than Neovim. It does so much and we are at the beginning as it isn&apos;t even to a 1.0 release yet. The best part is the program works on Windows, MacOS, and Linux.&lt;/p&gt;

&lt;p&gt;The following tweet encompasses my thoughts and feelings in my first week using Neovim.&lt;/p&gt;
&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1584944224700702720&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;Is this the path for you?&lt;/h2&gt;
&lt;p&gt;Neovim is rewarding after configured. The amount of automation, speed, and shear possibilities are limitless, but NOT without it&apos;s downside though. I&apos;ve spent hours working on my basic configuration and I am still months away before I will be close to completion. I say this as a NOOB! That is because I had no idea what a DAP, LSP, Linter, and other coding terms were before I began this journey.&lt;/p&gt;
&lt;p&gt;If you know any of the coding terms and a little LUA, you will have a better starting point than myself. If not, get prepared to learn because there will be a lot of new terms and functionality you will need to know to get the most out of Neovim experience.&lt;/p&gt;
&lt;h2&gt;What I use Neovim for&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Writing&lt;/strong&gt; is a difficult task that requires focus and creativity. For me, having the focus mode with a Linter that checks spelling and grammar has made a massive difference. I prefer the linting approach to writing, because it doesn&apos;t tell me about sentence structure or grammar until I&apos;ve finished my thought and saved.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Configuration Files&lt;/strong&gt; in Neovim are a dream for any system admin that doesn&apos;t have the luxury of a desktop or are using a remote server. Tab out files, read other contents into an existing file, and have a file explorer with full undo logs. I could go on, but you get the idea.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Coding&lt;/strong&gt; is where most people&apos;s mind goes with Neovim. You have the rockstars, like primeagen, that make Neovim look like a tool of the gods and mere mortals use other editors.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;With Neovim being so young in releases the latest release you can get is the best. Anything below 0.7 is too low as it won&apos;t have the features you will need for the best experience. I highly recommend downloading directly from Neovim&apos;s GitHub releases: &lt;a href=&quot;https://github.com/Neovim/Neovim/releases/tag/stable&quot;&gt;https://github.com/Neovim/Neovim/releases/tag/stable&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;All dependencies and requirements are in my &lt;a href=&quot;http://setup.sh&quot;&gt;setup.sh&lt;/a&gt; for Linux and winsetup.ps1 for Windows from: &lt;a href=&quot;https://github.com/ChrisTitusTech/Neovim&quot;&gt;https://github.com/ChrisTitusTech/Neovim&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone https://github.com/christitustech/Neovim
cd Neovim
sudo ./setup.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Windows PowerShell Alternative&lt;/h3&gt;
&lt;p&gt;I modified PowerShell to also use Neovim. I did make a &lt;code&gt;winsetup.ps1&lt;/code&gt; to help aid in the setup, but there will be more manual steps to this setup.&lt;/p&gt;
&lt;p&gt;Included cpp compiler and runtime to assist in programming, but the biggest thing to setup is nodejs. This has an automated script that will fix python and other dependencies that are problematic in Windows.&lt;/p&gt;
&lt;p&gt;Setting PATH in Windows is your biggest priority for a functional Neovim. Type &lt;code&gt;sysdm.cpl&lt;/code&gt; to launch into System Properties and click Advanced -&amp;gt; Environment Variables to set the paths. Add any missing health checks here.&lt;/p&gt;
&lt;h2&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Instead of making a big modular structure that you see in most Neovim projects, mine is small for ease of learning. It will expand as times goes on, but I want to KISS it... Keep it stupid simple. There is 3 files:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;init.lua&lt;/code&gt; - Initializes Neovim and calls any extra files. These are my main settings and special plugin configurations. _Note: some people use the old &lt;code&gt;init.vim&lt;/code&gt; instead of lua, but that defeats the purpose of using Neovim.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lua/keymaps.lua&lt;/code&gt; - These are all my key bindings for Neovim&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lua/plugins.lua&lt;/code&gt; - List of plugins to load.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Startup&lt;/h2&gt;
&lt;p&gt;USE &lt;code&gt;:checkhealth&lt;/code&gt; FIRST!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/neovim-is-better/checkhealth.webp&quot; alt=&quot;Checkhealth&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Errors must be fixed to have a functional Neovim experience. Warnings can be ignored, but noted, because you may have failed installs for LSPs, Linters, and other tools.&lt;/p&gt;
&lt;h3&gt;Adding Tools&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;:Mason&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/neovim-is-better/mason.webp&quot; alt=&quot;Mason&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: I recommend ONLY installing what you USE!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Shortcuts for Mason:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;i = install&lt;/li&gt;
&lt;li&gt;U = upgrade package&lt;/li&gt;
&lt;li&gt;X = remove package&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;What NOT to do&lt;/h2&gt;
&lt;p&gt;Neovim is such a powerful editor that it can do anything. Before you do this, ask yourself, &quot;Do I use this?&quot; and if not, do NOT install it!&lt;/p&gt;
&lt;p&gt;If you want all the plugins and have every language supported, I&apos;d recommend Lunar vim or NvChad. These projects do a fantastic job of emulating every part of vscode, while also having an easy install and setup.&lt;/p&gt;
&lt;p&gt;I&apos;d recommend installing them to see what Neovim is capable of, but I did NOT like them for the long term. This is because Neovim needs a personal touch to see its true power.&lt;/p&gt;
&lt;p&gt;I fell in love with Neovim once I started to add the features I used. Remember, you can always expand later.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/6VbOLOuiHUI&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Urbackup</title><link>https://christitus.com/urbackup/</link><guid isPermaLink="true">https://christitus.com/urbackup/</guid><description>&lt;p&gt;Want a Universal Backup that works on EVERY operating system and is free + open source? Urbackup is the software you are looking for!&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1584567052404412416&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;Why UrBackup&lt;/h2&gt;
&lt;p&gt;This program is absolutely amazing and free! All it&apos;s source code is on the internet which made it able to adapt to ALL operating systems. Windows, Mac, Linux... hell it even has ARM support!&lt;/p&gt;
&lt;h2&gt;Universal Backup Servers&lt;/h2&gt;
&lt;p&gt;There is a ton of different supported servers and even some that are unsupported that still work. Here is the official download page: &lt;a href=&quot;http://www.urbackup.org/download.html&quot;&gt;http://www.urbackup.org/download.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;One notable non-official project is for Synology NAS devices. I use a 64-bit Synology on DSM 7+, so pay attention to your current version if you want to use the project below.&lt;/p&gt;
&lt;p&gt;Synology Project: &lt;a href=&quot;https://github.com/josef109/spksrc&quot;&gt;https://github.com/josef109/spksrc&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Server Dashboard&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/urbackup/dash.webp&quot; alt=&quot;Dash&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Automated Terminal Install and Linux Setup&lt;/h3&gt;
&lt;p&gt;Linux installs are a complete DREAM! Just paste the command listed under terminal when you use &quot;Add New Client&quot; Button. Here is an example install:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/urbackup/linux-term.webp&quot; alt=&quot;Linux Term&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Enable Restore from Web&lt;/h3&gt;
&lt;p&gt;You need to enable restoration in client configuration to completely control everything from server web interface. Here is a sample client configuration &lt;code&gt;/etc/default/urbackupclientbackend&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/urbackup/enable-web.webp&quot; alt=&quot;Enable Web&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Windows Client Setup&lt;/h2&gt;
&lt;p&gt;Windows uses a executable that is made with the &quot;Add New Client&quot; button. By default, windows clients will have full image backup on and no file based backups. I&apos;d recommend changing this by adding your home directory or any other important folders, such as: &lt;code&gt;My Documents&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Linux Client Setup&lt;/h2&gt;
&lt;p&gt;Linux clients can be installed via terminal and what I recommend.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: The Linux GUI isn&apos;t good and terminal use of &lt;code&gt;urbackupclientctl&lt;/code&gt; is used&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Image Backups&lt;/h3&gt;
&lt;p&gt;Since urbackup only supports EXT4 and XFS we need LVM setup on these volumes BEFORE installing the distribution. LVM is tricky to setup correctly and will be hard as a beginner. The good thing about Linux is we don&apos;t have to worry about full image backups. All our configuration settings are in &lt;code&gt;~/.config&lt;/code&gt; and global settings in &lt;code&gt;/etc/&lt;/code&gt;. On my installs I mainly backup the &lt;code&gt;.config&lt;/code&gt; folder and any other folder where I might put important information that would be isolated to that computer.&lt;/p&gt;
&lt;h3&gt;Setting the backup directories&lt;/h3&gt;
&lt;p&gt;Here is a sample backup command to add my &lt;code&gt;~/.config&lt;/code&gt; directory&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo urbackupclientctl add-backupdir -d $HOME/.config/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then, check the status using the server web interface.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/urbackup/linux-file.webp&quot; alt=&quot;Linux File&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Uninstall&lt;/h3&gt;
&lt;p&gt;Uninstallation is a bit weird and needs to be done with this command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo uninstall_urbackupclient
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/urbackup/linux-uninstall.webp&quot; alt=&quot;Linux Uninstall&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Alternatives&lt;/h2&gt;
&lt;p&gt;There are a lot of free and open source backup solutions for backup. I picked urbackup because it is the most basic and probably the easiest to setup. However, if you need more features there are more backup solutions that I&apos;d consider better for large environments or businesses.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BorgBackup &lt;a href=&quot;https://www.borgbackup.org/&quot;&gt;https://www.borgbackup.org/&lt;/a&gt; for cloud paid offering, BorgBase &lt;a href=&quot;https://www.borgbase.com/&quot;&gt;https://www.borgbase.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Bacula &lt;a href=&quot;https://www.bacula.org/&quot;&gt;https://www.bacula.org/&lt;/a&gt; Enterprise solutions and fantastic dashboard&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/tXGVzMUsuE4&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 04 Nov 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Want a Universal Backup that works on EVERY operating system and is free + open source? Urbackup is the software you are looking for!&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1584567052404412416&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;Why UrBackup&lt;/h2&gt;
&lt;p&gt;This program is absolutely amazing and free! All it&apos;s source code is on the internet which made it able to adapt to ALL operating systems. Windows, Mac, Linux... hell it even has ARM support!&lt;/p&gt;
&lt;h2&gt;Universal Backup Servers&lt;/h2&gt;
&lt;p&gt;There is a ton of different supported servers and even some that are unsupported that still work. Here is the official download page: &lt;a href=&quot;http://www.urbackup.org/download.html&quot;&gt;http://www.urbackup.org/download.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;One notable non-official project is for Synology NAS devices. I use a 64-bit Synology on DSM 7+, so pay attention to your current version if you want to use the project below.&lt;/p&gt;
&lt;p&gt;Synology Project: &lt;a href=&quot;https://github.com/josef109/spksrc&quot;&gt;https://github.com/josef109/spksrc&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Server Dashboard&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/urbackup/dash.webp&quot; alt=&quot;Dash&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Automated Terminal Install and Linux Setup&lt;/h3&gt;
&lt;p&gt;Linux installs are a complete DREAM! Just paste the command listed under terminal when you use &quot;Add New Client&quot; Button. Here is an example install:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/urbackup/linux-term.webp&quot; alt=&quot;Linux Term&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Enable Restore from Web&lt;/h3&gt;
&lt;p&gt;You need to enable restoration in client configuration to completely control everything from server web interface. Here is a sample client configuration &lt;code&gt;/etc/default/urbackupclientbackend&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/urbackup/enable-web.webp&quot; alt=&quot;Enable Web&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Windows Client Setup&lt;/h2&gt;
&lt;p&gt;Windows uses a executable that is made with the &quot;Add New Client&quot; button. By default, windows clients will have full image backup on and no file based backups. I&apos;d recommend changing this by adding your home directory or any other important folders, such as: &lt;code&gt;My Documents&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Linux Client Setup&lt;/h2&gt;
&lt;p&gt;Linux clients can be installed via terminal and what I recommend.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: The Linux GUI isn&apos;t good and terminal use of &lt;code&gt;urbackupclientctl&lt;/code&gt; is used&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Image Backups&lt;/h3&gt;
&lt;p&gt;Since urbackup only supports EXT4 and XFS we need LVM setup on these volumes BEFORE installing the distribution. LVM is tricky to setup correctly and will be hard as a beginner. The good thing about Linux is we don&apos;t have to worry about full image backups. All our configuration settings are in &lt;code&gt;~/.config&lt;/code&gt; and global settings in &lt;code&gt;/etc/&lt;/code&gt;. On my installs I mainly backup the &lt;code&gt;.config&lt;/code&gt; folder and any other folder where I might put important information that would be isolated to that computer.&lt;/p&gt;
&lt;h3&gt;Setting the backup directories&lt;/h3&gt;
&lt;p&gt;Here is a sample backup command to add my &lt;code&gt;~/.config&lt;/code&gt; directory&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo urbackupclientctl add-backupdir -d $HOME/.config/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then, check the status using the server web interface.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/urbackup/linux-file.webp&quot; alt=&quot;Linux File&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Uninstall&lt;/h3&gt;
&lt;p&gt;Uninstallation is a bit weird and needs to be done with this command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo uninstall_urbackupclient
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/urbackup/linux-uninstall.webp&quot; alt=&quot;Linux Uninstall&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Alternatives&lt;/h2&gt;
&lt;p&gt;There are a lot of free and open source backup solutions for backup. I picked urbackup because it is the most basic and probably the easiest to setup. However, if you need more features there are more backup solutions that I&apos;d consider better for large environments or businesses.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BorgBackup &lt;a href=&quot;https://www.borgbackup.org/&quot;&gt;https://www.borgbackup.org/&lt;/a&gt; for cloud paid offering, BorgBase &lt;a href=&quot;https://www.borgbase.com/&quot;&gt;https://www.borgbase.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Bacula &lt;a href=&quot;https://www.bacula.org/&quot;&gt;https://www.bacula.org/&lt;/a&gt; Enterprise solutions and fantastic dashboard&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/tXGVzMUsuE4&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Reagentc Windows Recovery Partition</title><link>https://christitus.com/reagentc-windows-recovery-partition/</link><guid isPermaLink="true">https://christitus.com/reagentc-windows-recovery-partition/</guid><description>&lt;p&gt;Don&apos;t know what ReAgentC is or how to use it? This is your guide.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1584603485261115392&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;Setup Recovery Partition&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create Recovery Partition at least 1GB in size.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Format the recovery partition as NTFS&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;DISKPART Changes&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;select disk 0&lt;/li&gt;
&lt;li&gt;select partition 3 (last partition)&lt;/li&gt;
&lt;li&gt;detail partition (list partition details)&lt;/li&gt;
&lt;li&gt;set id=&quot;de94bba4-06d1-4d40-a16a-bfd50179d6ac&quot; (GPTDisk) &lt;em&gt;Note: id=27 on MBR&lt;/em&gt;
NOTE: Reset ids to normal if you did the WRONG partition (MBR set id=7 and GPT set id=&quot;ebd0a0a2-b9e5-4433-87c0-68b6b72699c7&quot;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Create Partition if Missing!&lt;/em&gt; &lt;code&gt;cre par pri size=605 id=de94bba4-06d1-4d40-a16a-bfd50179d6ac&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;format fs=ntfs quick label=WinRE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;assign letter=z&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;UEFI only: &lt;code&gt;gpt attributes=0x8000000000000001&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;reagentc /disable&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Verify &lt;code&gt;WinRE.wim&lt;/code&gt; is installed on local system &lt;code&gt;ls &quot;C:\Windows\System32\Recovery&quot; | FindStr /I &quot;WinRE.wim&quot; ; ls &quot;C:\Windows\System32\Recovery&quot; -Hidden | FindStr /I &quot;WinRE.wim&quot;&lt;/code&gt;
5a. If Missing, Copy WinRE.wim and the uninitialized ReAgent.xml files from the installation Media (Easiest method is to use 7zip to extract &lt;code&gt;WinRE.wim&lt;/code&gt; from &lt;code&gt;install.wim&lt;/code&gt;) to &lt;code&gt;C:\Windows\System32\Recovery&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;reagentc /enable&lt;/code&gt; (this will move WinRe.wim to the Recovery partition and set the GUID and location in ReAgent.xml)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;reagentc /info&lt;/code&gt; (Check settings for verification)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;If ReAgentC /enable does NOT work&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Manually copy &lt;code&gt;WinRE.wim&lt;/code&gt; to &lt;code&gt;Z:\Recovery\WindowsRE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ReAgentC /SetREimage /Path &quot;Z:\Recovery\WindowsRE&quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ReAgentC /Enable&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Verify with &lt;code&gt;ReAgentC /Info&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Rebooting to Recovery Partition&lt;/h2&gt;
&lt;p&gt;If you can boot in to Windows, hold shift while pressing restart. This will reboot your PC into a menu. Select &lt;em&gt;Advanced Options&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Another method to reach this screen is to have the boot fail 3 times. A reboot during the load screen will count as a failure.&lt;/p&gt;
&lt;p&gt;F8 is an older method that doesn&apos;t work unless enabled, but was a great way to get to the menu. I&apos;m adding this to my Windows Utility Tweaks section.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/reagentc-windows-recovery-partition/recovery.webp&quot; alt=&quot;Recovery&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Startup Repair and Settings&lt;/h3&gt;
&lt;p&gt;Startup Repair almost never works, but once in a blue moon is beneficial. Startup Settings can send you to safe mode.&lt;/p&gt;
&lt;h3&gt;Command Prompt&lt;/h3&gt;
&lt;p&gt;Here are the highlights of a recovery partition:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Copy Files&lt;/li&gt;
&lt;li&gt;Chkdsk for failing hard drives&lt;/li&gt;
&lt;li&gt;SFC/DISM repairs corrupt system files (&lt;code&gt;sfc /scannow&lt;/code&gt; and &lt;code&gt;dism /image:c:\ /cleanup-image /restorehealth&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/reagentc-windows-recovery-partition/sfc.webp&quot; alt=&quot;Sfc&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Regedit for editing the registry&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/reagentc-windows-recovery-partition/regedit.webp&quot; alt=&quot;Regedit&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Uninstall Updates&lt;/h3&gt;
&lt;p&gt;Bad update and now it doesn&apos;t work? Click this and revert it!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/reagentc-windows-recovery-partition/updates.webp&quot; alt=&quot;Updates&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;UEFI Firmware Settings&lt;/h3&gt;
&lt;p&gt;Loads into BIOS. Can be useful on laptops where you don&apos;t know key combination when powering on.&lt;/p&gt;
&lt;h3&gt;System Restore and System Image Recovery&lt;/h3&gt;
&lt;p&gt;I don&apos;t use these much, but can be a good last resort option. System Restore generally brings most of the system back to last restore point and System Image is good for recovering Windows if you used the built-in Windows Backup Software to external hard drive.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/L7Ss-KKp010&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 02 Nov 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Don&apos;t know what ReAgentC is or how to use it? This is your guide.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1584603485261115392&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;Setup Recovery Partition&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create Recovery Partition at least 1GB in size.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Format the recovery partition as NTFS&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;DISKPART Changes&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;select disk 0&lt;/li&gt;
&lt;li&gt;select partition 3 (last partition)&lt;/li&gt;
&lt;li&gt;detail partition (list partition details)&lt;/li&gt;
&lt;li&gt;set id=&quot;de94bba4-06d1-4d40-a16a-bfd50179d6ac&quot; (GPTDisk) &lt;em&gt;Note: id=27 on MBR&lt;/em&gt;
NOTE: Reset ids to normal if you did the WRONG partition (MBR set id=7 and GPT set id=&quot;ebd0a0a2-b9e5-4433-87c0-68b6b72699c7&quot;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Create Partition if Missing!&lt;/em&gt; &lt;code&gt;cre par pri size=605 id=de94bba4-06d1-4d40-a16a-bfd50179d6ac&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;format fs=ntfs quick label=WinRE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;assign letter=z&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;UEFI only: &lt;code&gt;gpt attributes=0x8000000000000001&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;reagentc /disable&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Verify &lt;code&gt;WinRE.wim&lt;/code&gt; is installed on local system &lt;code&gt;ls &quot;C:\Windows\System32\Recovery&quot; | FindStr /I &quot;WinRE.wim&quot; ; ls &quot;C:\Windows\System32\Recovery&quot; -Hidden | FindStr /I &quot;WinRE.wim&quot;&lt;/code&gt;
5a. If Missing, Copy WinRE.wim and the uninitialized ReAgent.xml files from the installation Media (Easiest method is to use 7zip to extract &lt;code&gt;WinRE.wim&lt;/code&gt; from &lt;code&gt;install.wim&lt;/code&gt;) to &lt;code&gt;C:\Windows\System32\Recovery&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;reagentc /enable&lt;/code&gt; (this will move WinRe.wim to the Recovery partition and set the GUID and location in ReAgent.xml)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;reagentc /info&lt;/code&gt; (Check settings for verification)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;If ReAgentC /enable does NOT work&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Manually copy &lt;code&gt;WinRE.wim&lt;/code&gt; to &lt;code&gt;Z:\Recovery\WindowsRE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ReAgentC /SetREimage /Path &quot;Z:\Recovery\WindowsRE&quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ReAgentC /Enable&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Verify with &lt;code&gt;ReAgentC /Info&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Rebooting to Recovery Partition&lt;/h2&gt;
&lt;p&gt;If you can boot in to Windows, hold shift while pressing restart. This will reboot your PC into a menu. Select &lt;em&gt;Advanced Options&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Another method to reach this screen is to have the boot fail 3 times. A reboot during the load screen will count as a failure.&lt;/p&gt;
&lt;p&gt;F8 is an older method that doesn&apos;t work unless enabled, but was a great way to get to the menu. I&apos;m adding this to my Windows Utility Tweaks section.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/reagentc-windows-recovery-partition/recovery.webp&quot; alt=&quot;Recovery&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Startup Repair and Settings&lt;/h3&gt;
&lt;p&gt;Startup Repair almost never works, but once in a blue moon is beneficial. Startup Settings can send you to safe mode.&lt;/p&gt;
&lt;h3&gt;Command Prompt&lt;/h3&gt;
&lt;p&gt;Here are the highlights of a recovery partition:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Copy Files&lt;/li&gt;
&lt;li&gt;Chkdsk for failing hard drives&lt;/li&gt;
&lt;li&gt;SFC/DISM repairs corrupt system files (&lt;code&gt;sfc /scannow&lt;/code&gt; and &lt;code&gt;dism /image:c:\ /cleanup-image /restorehealth&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/reagentc-windows-recovery-partition/sfc.webp&quot; alt=&quot;Sfc&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Regedit for editing the registry&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/reagentc-windows-recovery-partition/regedit.webp&quot; alt=&quot;Regedit&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Uninstall Updates&lt;/h3&gt;
&lt;p&gt;Bad update and now it doesn&apos;t work? Click this and revert it!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/reagentc-windows-recovery-partition/updates.webp&quot; alt=&quot;Updates&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;UEFI Firmware Settings&lt;/h3&gt;
&lt;p&gt;Loads into BIOS. Can be useful on laptops where you don&apos;t know key combination when powering on.&lt;/p&gt;
&lt;h3&gt;System Restore and System Image Recovery&lt;/h3&gt;
&lt;p&gt;I don&apos;t use these much, but can be a good last resort option. System Restore generally brings most of the system back to last restore point and System Image is good for recovering Windows if you used the built-in Windows Backup Software to external hard drive.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/L7Ss-KKp010&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Pretty Powershell</title><link>https://christitus.com/pretty-powershell/</link><guid isPermaLink="true">https://christitus.com/pretty-powershell/</guid><description>&lt;p&gt;PowerShell is UGLY and cumbersome by default. This Guide fixes that!&lt;/p&gt;

&lt;p&gt;The End Result:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/pretty-powershell/end-result.webp&quot; alt=&quot;End Result&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Fixing the Visuals&lt;/h2&gt;
&lt;p&gt;With all my guides here is the one line script to install &quot;most&quot; of the needed fixes. I&apos;d recommend running it from an admin elevated prompt for installation of OhMyPosh.&lt;/p&gt;
&lt;h3&gt;One Line Install&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;irm &quot;https://github.com/ChrisTitusTech/powershell-profile/raw/main/setup.ps1&quot; | iex
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The first thing that needs to be fixed is installing the correct font. Here are screenshots from both Windows 11 using Terminal and Windows 10 using Conhost. After running the above script, you will unzip the &lt;code&gt;cove.zip&lt;/code&gt; file from the directory the command above was run from and install those nerd fonts. If you want to download other nerd fonts, go to: &lt;a href=&quot;https://www.nerdfonts.com/&quot;&gt;https://www.nerdfonts.com/&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Windows 11 Font Settings&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/pretty-powershell/win11.webp&quot; alt=&quot;Win11&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Windows 10 Font Settings&lt;/h3&gt;
&lt;p&gt;In the screenshot below you will see the stock font select and the missing icons. Selecting CaskaydiaCove above Consolas and saving will fix it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/pretty-powershell/win10.webp&quot; alt=&quot;Win10&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Fixing the Syntax&lt;/h2&gt;
&lt;p&gt;The defaults are clunky and take too long to type in even when using shorthand. Linux does this better, so lets bring in that syntax to fix it with Aliases in our PowerShell profile.&lt;/p&gt;
&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1581708112394096640&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h3&gt;New Aliases&lt;/h3&gt;
&lt;p&gt;Here are the following added aliases for quality of life&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;cd... &lt;code&gt;cd ..\..&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;cd.... &lt;code&gt;cd ..\..\..&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;dirs &quot;Recursive directory listing&quot;&lt;/li&gt;
&lt;li&gt;admin / su / sudo &quot;Elevate to admin prompt&quot;&lt;/li&gt;
&lt;li&gt;Edit-Profile &quot;Edit current powershell $PROFILE&quot;&lt;/li&gt;
&lt;li&gt;vim &lt;code&gt;nvim&lt;/code&gt; &quot;Neovim alias&quot;&lt;/li&gt;
&lt;li&gt;ll &quot;file listing, excluding dirs&quot;&lt;/li&gt;
&lt;li&gt;g &quot;cd to Documents\Github&quot;&lt;/li&gt;
&lt;li&gt;gcom &quot;quick github commit&quot;&lt;/li&gt;
&lt;li&gt;lazyg &quot;quick github commit and push&quot;&lt;/li&gt;
&lt;li&gt;Get-PubIP &quot;Grab external IP&quot;&lt;/li&gt;
&lt;li&gt;uptime&lt;/li&gt;
&lt;li&gt;reload-profile&lt;/li&gt;
&lt;li&gt;find-file &quot;recursive file search from current directory&quot;&lt;/li&gt;
&lt;li&gt;unzip&lt;/li&gt;
&lt;li&gt;grep&lt;/li&gt;
&lt;li&gt;touch&lt;/li&gt;
&lt;li&gt;df &quot;disk free&quot;&lt;/li&gt;
&lt;li&gt;sed&lt;/li&gt;
&lt;li&gt;which&lt;/li&gt;
&lt;li&gt;export&lt;/li&gt;
&lt;li&gt;pkill &quot;process killer&quot;&lt;/li&gt;
&lt;li&gt;pgrep &quot;process finder&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/LuAipOW8BNQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 31 Oct 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;PowerShell is UGLY and cumbersome by default. This Guide fixes that!&lt;/p&gt;

&lt;p&gt;The End Result:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/pretty-powershell/end-result.webp&quot; alt=&quot;End Result&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Fixing the Visuals&lt;/h2&gt;
&lt;p&gt;With all my guides here is the one line script to install &quot;most&quot; of the needed fixes. I&apos;d recommend running it from an admin elevated prompt for installation of OhMyPosh.&lt;/p&gt;
&lt;h3&gt;One Line Install&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;irm &quot;https://github.com/ChrisTitusTech/powershell-profile/raw/main/setup.ps1&quot; | iex
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The first thing that needs to be fixed is installing the correct font. Here are screenshots from both Windows 11 using Terminal and Windows 10 using Conhost. After running the above script, you will unzip the &lt;code&gt;cove.zip&lt;/code&gt; file from the directory the command above was run from and install those nerd fonts. If you want to download other nerd fonts, go to: &lt;a href=&quot;https://www.nerdfonts.com/&quot;&gt;https://www.nerdfonts.com/&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Windows 11 Font Settings&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/pretty-powershell/win11.webp&quot; alt=&quot;Win11&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Windows 10 Font Settings&lt;/h3&gt;
&lt;p&gt;In the screenshot below you will see the stock font select and the missing icons. Selecting CaskaydiaCove above Consolas and saving will fix it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/pretty-powershell/win10.webp&quot; alt=&quot;Win10&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Fixing the Syntax&lt;/h2&gt;
&lt;p&gt;The defaults are clunky and take too long to type in even when using shorthand. Linux does this better, so lets bring in that syntax to fix it with Aliases in our PowerShell profile.&lt;/p&gt;
&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1581708112394096640&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h3&gt;New Aliases&lt;/h3&gt;
&lt;p&gt;Here are the following added aliases for quality of life&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;cd... &lt;code&gt;cd ..\..&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;cd.... &lt;code&gt;cd ..\..\..&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;dirs &quot;Recursive directory listing&quot;&lt;/li&gt;
&lt;li&gt;admin / su / sudo &quot;Elevate to admin prompt&quot;&lt;/li&gt;
&lt;li&gt;Edit-Profile &quot;Edit current powershell $PROFILE&quot;&lt;/li&gt;
&lt;li&gt;vim &lt;code&gt;nvim&lt;/code&gt; &quot;Neovim alias&quot;&lt;/li&gt;
&lt;li&gt;ll &quot;file listing, excluding dirs&quot;&lt;/li&gt;
&lt;li&gt;g &quot;cd to Documents\Github&quot;&lt;/li&gt;
&lt;li&gt;gcom &quot;quick github commit&quot;&lt;/li&gt;
&lt;li&gt;lazyg &quot;quick github commit and push&quot;&lt;/li&gt;
&lt;li&gt;Get-PubIP &quot;Grab external IP&quot;&lt;/li&gt;
&lt;li&gt;uptime&lt;/li&gt;
&lt;li&gt;reload-profile&lt;/li&gt;
&lt;li&gt;find-file &quot;recursive file search from current directory&quot;&lt;/li&gt;
&lt;li&gt;unzip&lt;/li&gt;
&lt;li&gt;grep&lt;/li&gt;
&lt;li&gt;touch&lt;/li&gt;
&lt;li&gt;df &quot;disk free&quot;&lt;/li&gt;
&lt;li&gt;sed&lt;/li&gt;
&lt;li&gt;which&lt;/li&gt;
&lt;li&gt;export&lt;/li&gt;
&lt;li&gt;pkill &quot;process killer&quot;&lt;/li&gt;
&lt;li&gt;pgrep &quot;process finder&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/LuAipOW8BNQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Why I Hate Most Linux Distributions</title><link>https://christitus.com/hate-linux-distributions/</link><guid isPermaLink="true">https://christitus.com/hate-linux-distributions/</guid><description>&lt;p&gt;I love Linux, but the distributions for desktop systems isn&apos;t fun to navigate. It&apos;s the reason why I haven&apos;t done a Distro review in a year or more.&lt;/p&gt;

&lt;h2&gt;Before I begin&lt;/h2&gt;
&lt;p&gt;Linux itself and GNU tools are some of the best I&apos;ve ever used, I actually like systemd, and its display renders are adequate.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/hate.gif&quot; alt=&quot;hate&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;So what is to hate?&lt;/h2&gt;
&lt;p&gt;Distributions are often cobbled together and not well optimized with some exceptions, but I&apos;m often disappointed from the lack of polish. This isn&apos;t a knock against the developers of these distributions, they don&apos;t have the resources to succeed. They don&apos;t have the massive budgets like the big tech operating system equivelents and why they are so... strange.&lt;/p&gt;
&lt;p&gt;Besides there being 100+ distributions and most of them cannibalizing off each other, they don&apos;t have a cohesive system a lot of time. They try to emulate Windows or Mac and always fall short. In the end, they typically all have the same options, but each choose a bit differently.&lt;/p&gt;
&lt;p&gt;Choice isn&apos;t bad... Right?&lt;/p&gt;
&lt;p&gt;The biggest pitfall is that they all take different design decisions and often fall short in areas. This couldn&apos;t be more evident than the success of the Steam Deck and Chrome OS.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/tux-suit.webp&quot; alt=&quot;linux-suit&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;The Year of the CORPORATE Linux Desktop&lt;/h2&gt;
&lt;p&gt;With steamdeck selling over a million units this year, and Chrome OS being a staple in every classroom across America... a Linux distribution can be far reaching. Chrome OS is Gentoo Linux at it&apos;s core and Steam Deck is an immutable version of Arch, so these ARE Linux distributions.&lt;/p&gt;
&lt;p&gt;What do they do so well?&lt;/p&gt;
&lt;p&gt;You can ask any Linux neckbeard... they will say they have money, marketing, and influence. This is true, but it isn&apos;t the complete picture. I&apos;d say the one thing these two distributions do better than ANYONE else is a cohesive vision and quality control. The interfaces don&apos;t change and they keep getting better as they age and get updated. No other Linux distribution does this that has such bleeding edge packages.&lt;/p&gt;
&lt;p&gt;Both Chrome OS and Steam Deck get update at least once a month and sometimes more often. This is where most Linux distributions fail because they don&apos;t have the man power to develop at such a rapid pace or the money to quality test it like these corporate system can.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/debian.webp&quot; alt=&quot;debian&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;The Distribution I use&lt;/h2&gt;
&lt;p&gt;Debian and Fedora. They are MASSIVE and give all the options in the world that you could want. My system will be as good or bad as I can make it, but I decide. If something happens on my system, I screwed up.&lt;/p&gt;
&lt;p&gt;This is where the disconnect happens with normal users. They hear Linux is this stable system that never breaks. While this is true in the server realm, Linux desktop is not a consistent experience because of the distributions it has. With too much choice, too many underfunded projects, and little quality control... there will be problems. Users won&apos;t understand this foriegn system, instructions will be out of date or non-existent, and support will be spotty at best.&lt;/p&gt;
&lt;p&gt;Last month, Arch Linux had a bad update that BROKE GRUB and users couldn&apos;t boot their system for example.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/hate-linux-distributions/doom.webp&quot; alt=&quot;Doom&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Is Linux Desktop Doomed?&lt;/h2&gt;
&lt;p&gt;Not by a long shot! I&apos;ll continue using mine as a main staple for a long time yet. I just don&apos;t see the community run Linux distributions ever hitting mainstream. That&apos;s ok!&lt;/p&gt;
&lt;p&gt;What WILL Happen is big companies like Steam, Google, and others, will take Linux and refine their own VISION of the perfect computer using it. All these companies will make better and better verisons of Linux and we won&apos;t be talking about Linux distrubtions anymore.&lt;/p&gt;
&lt;p&gt;What about FOSS and the neckbeards that Linux IS founded on!?! Well... there is always BSD.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/KT0m9DM8moc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 28 Oct 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I love Linux, but the distributions for desktop systems isn&apos;t fun to navigate. It&apos;s the reason why I haven&apos;t done a Distro review in a year or more.&lt;/p&gt;

&lt;h2&gt;Before I begin&lt;/h2&gt;
&lt;p&gt;Linux itself and GNU tools are some of the best I&apos;ve ever used, I actually like systemd, and its display renders are adequate.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/hate.gif&quot; alt=&quot;hate&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;So what is to hate?&lt;/h2&gt;
&lt;p&gt;Distributions are often cobbled together and not well optimized with some exceptions, but I&apos;m often disappointed from the lack of polish. This isn&apos;t a knock against the developers of these distributions, they don&apos;t have the resources to succeed. They don&apos;t have the massive budgets like the big tech operating system equivelents and why they are so... strange.&lt;/p&gt;
&lt;p&gt;Besides there being 100+ distributions and most of them cannibalizing off each other, they don&apos;t have a cohesive system a lot of time. They try to emulate Windows or Mac and always fall short. In the end, they typically all have the same options, but each choose a bit differently.&lt;/p&gt;
&lt;p&gt;Choice isn&apos;t bad... Right?&lt;/p&gt;
&lt;p&gt;The biggest pitfall is that they all take different design decisions and often fall short in areas. This couldn&apos;t be more evident than the success of the Steam Deck and Chrome OS.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/tux-suit.webp&quot; alt=&quot;linux-suit&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;The Year of the CORPORATE Linux Desktop&lt;/h2&gt;
&lt;p&gt;With steamdeck selling over a million units this year, and Chrome OS being a staple in every classroom across America... a Linux distribution can be far reaching. Chrome OS is Gentoo Linux at it&apos;s core and Steam Deck is an immutable version of Arch, so these ARE Linux distributions.&lt;/p&gt;
&lt;p&gt;What do they do so well?&lt;/p&gt;
&lt;p&gt;You can ask any Linux neckbeard... they will say they have money, marketing, and influence. This is true, but it isn&apos;t the complete picture. I&apos;d say the one thing these two distributions do better than ANYONE else is a cohesive vision and quality control. The interfaces don&apos;t change and they keep getting better as they age and get updated. No other Linux distribution does this that has such bleeding edge packages.&lt;/p&gt;
&lt;p&gt;Both Chrome OS and Steam Deck get update at least once a month and sometimes more often. This is where most Linux distributions fail because they don&apos;t have the man power to develop at such a rapid pace or the money to quality test it like these corporate system can.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/debian.webp&quot; alt=&quot;debian&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;The Distribution I use&lt;/h2&gt;
&lt;p&gt;Debian and Fedora. They are MASSIVE and give all the options in the world that you could want. My system will be as good or bad as I can make it, but I decide. If something happens on my system, I screwed up.&lt;/p&gt;
&lt;p&gt;This is where the disconnect happens with normal users. They hear Linux is this stable system that never breaks. While this is true in the server realm, Linux desktop is not a consistent experience because of the distributions it has. With too much choice, too many underfunded projects, and little quality control... there will be problems. Users won&apos;t understand this foriegn system, instructions will be out of date or non-existent, and support will be spotty at best.&lt;/p&gt;
&lt;p&gt;Last month, Arch Linux had a bad update that BROKE GRUB and users couldn&apos;t boot their system for example.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/hate-linux-distributions/doom.webp&quot; alt=&quot;Doom&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Is Linux Desktop Doomed?&lt;/h2&gt;
&lt;p&gt;Not by a long shot! I&apos;ll continue using mine as a main staple for a long time yet. I just don&apos;t see the community run Linux distributions ever hitting mainstream. That&apos;s ok!&lt;/p&gt;
&lt;p&gt;What WILL Happen is big companies like Steam, Google, and others, will take Linux and refine their own VISION of the perfect computer using it. All these companies will make better and better verisons of Linux and we won&apos;t be talking about Linux distrubtions anymore.&lt;/p&gt;
&lt;p&gt;What about FOSS and the neckbeards that Linux IS founded on!?! Well... there is always BSD.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/KT0m9DM8moc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Installing Appx Without Microsoft Store</title><link>https://christitus.com/installing-appx-without-msstore/</link><guid isPermaLink="true">https://christitus.com/installing-appx-without-msstore/</guid><description>&lt;p&gt;Do you have a bare version of windows LTSC or highly stripped out ISO image that doesn&apos;t have the Microsoft Store? This is the guide to show you how to install appx and other apps without it.&lt;/p&gt;

&lt;h2&gt;Winget Installation&lt;/h2&gt;
&lt;p&gt;Using the powershell and a couple projects we can install winget. You need the Microsoft sanctioned script repository called PSGallery. It has some system admin scripts that are clutch when all you have is powershell.&lt;/p&gt;
&lt;h2&gt;What this does&lt;/h2&gt;
&lt;p&gt;It grabs the script from &lt;a href=&quot;https://www.powershellgallery.com/packages/winget-install/0.0.4&quot;&gt;https://www.powershellgallery.com/packages/winget-install/0.0.4&lt;/a&gt; and runs it. The script itself utilizes NuGet and other tools that are in every Windows installation to install the dependancies, before retrieving the winget packages.&lt;/p&gt;
&lt;h2&gt;Why this is better&lt;/h2&gt;
&lt;p&gt;This way is far superior to other methods as most will fail in a stripped down Windows like the one made from my &lt;a href=&quot;https://christitus.com/ntlite-guide/&quot;&gt;NTLite Build&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/but-why.gif&quot; alt=&quot;but-why&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The package that is often missing and hard to install manually is &lt;code&gt;Microsoft.UI.Xaml&lt;/code&gt; the typical method to install this is using NuGet Package Manager inside of Visual Studio. You can track down the exact version and appx file from Microsoft&apos;s repository here: &lt;a href=&quot;https://store.rg-adguard.net/&quot;&gt;https://store.rg-adguard.net/&lt;/a&gt;, but this is overly cumbersome and why I recommend the PSGallery approach.&lt;/p&gt;
&lt;h2&gt;How to Manually get ANY Appx&lt;/h2&gt;
&lt;p&gt;Using the &lt;a href=&quot;https://store.rg-adguard.net/&quot;&gt;https://store.rg-adguard.net/&lt;/a&gt; site we can snatch any appx as long as we know the package name.&lt;/p&gt;
&lt;p&gt;Get product id from &lt;a href=&quot;https://apps.microsoft.com/store/apps&quot;&gt;https://apps.microsoft.com/store/apps&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/installing-appx-without-msstore/app-store.webp&quot; alt=&quot;App Store&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Then grab the appx from rg-adguard AND its dependancies... like this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/installing-appx-without-msstore/rg-adguard.webp&quot; alt=&quot;Rg Adguard&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Direct Download with Script&lt;/h3&gt;
&lt;p&gt;Here is quick snippit that you can toss the product id in to pull it down from PowerShell.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$apiUrl = &quot;https://store.rg-adguard.net/api/GetFiles&quot;

$productUrl = &quot;https://www.microsoft.com/store/productId/9nblggh5r558&quot; # To Do
#$productUrl = &quot;https://www.microsoft.com/store/productId/9MSPC6MP8FM4&quot; # Whiteboard
#$productUrl = &quot;https://www.microsoft.com/store/productId/9WZDNCRFJBB1&quot; # Wireless Display Adapter

$downloadFolder = Join-Path $env:TEMP &quot;StoreDownloads&quot;
if(!(Test-Path $downloadFolder -PathType Container)) {
    New-Item $downloadFolder -ItemType Directory -Force
}

$body = @{
    type = &apos;url&apos;
    url  = $productUrl
    ring = &apos;RP&apos;
    lang = &apos;en-US&apos;
}

$raw = Invoke-RestMethod -Method Post -Uri $apiUrl -ContentType &apos;application/x-www-form-urlencoded&apos; -Body $body

$raw | Select-String &apos;&amp;lt;tr style.*&amp;lt;a href=\&quot;(?&amp;lt;url&amp;gt;.*)&quot;\s.*&amp;gt;(?&amp;lt;text&amp;gt;.*)&amp;lt;\/a&amp;gt;&apos; -AllMatches|
 % { $_.Matches } |
 % { 
    $url = $_.Groups[1].Value
    $text = $_.Groups[2].Value
    Write-Host $text

    if($text -match &quot;_(x86|x64|neutral).*appx(|bundle)$&quot;) {
        $downloadFile = Join-Path $downloadFolder $text
        if(!(Test-Path $downloadFile)) {
            Invoke-WebRequest -Uri $url -OutFile $downloadFile
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/__2_41pVHcQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 26 Oct 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Do you have a bare version of windows LTSC or highly stripped out ISO image that doesn&apos;t have the Microsoft Store? This is the guide to show you how to install appx and other apps without it.&lt;/p&gt;

&lt;h2&gt;Winget Installation&lt;/h2&gt;
&lt;p&gt;Using the powershell and a couple projects we can install winget. You need the Microsoft sanctioned script repository called PSGallery. It has some system admin scripts that are clutch when all you have is powershell.&lt;/p&gt;
&lt;h2&gt;What this does&lt;/h2&gt;
&lt;p&gt;It grabs the script from &lt;a href=&quot;https://www.powershellgallery.com/packages/winget-install/0.0.4&quot;&gt;https://www.powershellgallery.com/packages/winget-install/0.0.4&lt;/a&gt; and runs it. The script itself utilizes NuGet and other tools that are in every Windows installation to install the dependancies, before retrieving the winget packages.&lt;/p&gt;
&lt;h2&gt;Why this is better&lt;/h2&gt;
&lt;p&gt;This way is far superior to other methods as most will fail in a stripped down Windows like the one made from my &lt;a href=&quot;https://christitus.com/ntlite-guide/&quot;&gt;NTLite Build&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/but-why.gif&quot; alt=&quot;but-why&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The package that is often missing and hard to install manually is &lt;code&gt;Microsoft.UI.Xaml&lt;/code&gt; the typical method to install this is using NuGet Package Manager inside of Visual Studio. You can track down the exact version and appx file from Microsoft&apos;s repository here: &lt;a href=&quot;https://store.rg-adguard.net/&quot;&gt;https://store.rg-adguard.net/&lt;/a&gt;, but this is overly cumbersome and why I recommend the PSGallery approach.&lt;/p&gt;
&lt;h2&gt;How to Manually get ANY Appx&lt;/h2&gt;
&lt;p&gt;Using the &lt;a href=&quot;https://store.rg-adguard.net/&quot;&gt;https://store.rg-adguard.net/&lt;/a&gt; site we can snatch any appx as long as we know the package name.&lt;/p&gt;
&lt;p&gt;Get product id from &lt;a href=&quot;https://apps.microsoft.com/store/apps&quot;&gt;https://apps.microsoft.com/store/apps&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/installing-appx-without-msstore/app-store.webp&quot; alt=&quot;App Store&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Then grab the appx from rg-adguard AND its dependancies... like this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/installing-appx-without-msstore/rg-adguard.webp&quot; alt=&quot;Rg Adguard&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Direct Download with Script&lt;/h3&gt;
&lt;p&gt;Here is quick snippit that you can toss the product id in to pull it down from PowerShell.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$apiUrl = &quot;https://store.rg-adguard.net/api/GetFiles&quot;

$productUrl = &quot;https://www.microsoft.com/store/productId/9nblggh5r558&quot; # To Do
#$productUrl = &quot;https://www.microsoft.com/store/productId/9MSPC6MP8FM4&quot; # Whiteboard
#$productUrl = &quot;https://www.microsoft.com/store/productId/9WZDNCRFJBB1&quot; # Wireless Display Adapter

$downloadFolder = Join-Path $env:TEMP &quot;StoreDownloads&quot;
if(!(Test-Path $downloadFolder -PathType Container)) {
    New-Item $downloadFolder -ItemType Directory -Force
}

$body = @{
    type = &apos;url&apos;
    url  = $productUrl
    ring = &apos;RP&apos;
    lang = &apos;en-US&apos;
}

$raw = Invoke-RestMethod -Method Post -Uri $apiUrl -ContentType &apos;application/x-www-form-urlencoded&apos; -Body $body

$raw | Select-String &apos;&amp;lt;tr style.*&amp;lt;a href=\&quot;(?&amp;lt;url&amp;gt;.*)&quot;\s.*&amp;gt;(?&amp;lt;text&amp;gt;.*)&amp;lt;\/a&amp;gt;&apos; -AllMatches|
 % { $_.Matches } |
 % { 
    $url = $_.Groups[1].Value
    $text = $_.Groups[2].Value
    Write-Host $text

    if($text -match &quot;_(x86|x64|neutral).*appx(|bundle)$&quot;) {
        $downloadFile = Join-Path $downloadFolder $text
        if(!(Test-Path $downloadFile)) {
            Invoke-WebRequest -Uri $url -OutFile $downloadFile
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/__2_41pVHcQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Beautiful Bash</title><link>https://christitus.com/beautiful-bash/</link><guid isPermaLink="true">https://christitus.com/beautiful-bash/</guid><description>&lt;p&gt;Tired of an Ugly prompt with no features? Fix it with this guide!&lt;/p&gt;

&lt;h2&gt;The Look&lt;/h2&gt;
&lt;p&gt;The following is what the end result of the bash prompt will look like:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/beautiful-bash/prompt.webp&quot; alt=&quot;Prompt&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Requirements&lt;/h2&gt;
&lt;p&gt;With all my guides I like to create bash scripts that will auto install and configure everything. You may have heard of the starship prompt, which this uses, but is heavily themed. I also have my included bashrc with a ton of useful aliases.&lt;/p&gt;
&lt;p&gt;The setup file will also install autojump which helps you navigate between directories.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/beautiful-bash/alias.webp&quot; alt=&quot;Alias&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;Pick a directory to house all the bash files. I have a dedicated Github directory for all the projects I use @ &lt;code&gt;~/GitHub/&lt;/code&gt;, but you can pick any directory including your home and then clone mybash repository for install.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone https://github.com/christitustech/mybash
cd mybash
./setup.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: By default this will symlink your ~/.bashrc and wipe out any customizations you have made!&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/b3W7Ky_aaaY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 24 Oct 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Tired of an Ugly prompt with no features? Fix it with this guide!&lt;/p&gt;

&lt;h2&gt;The Look&lt;/h2&gt;
&lt;p&gt;The following is what the end result of the bash prompt will look like:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/beautiful-bash/prompt.webp&quot; alt=&quot;Prompt&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Requirements&lt;/h2&gt;
&lt;p&gt;With all my guides I like to create bash scripts that will auto install and configure everything. You may have heard of the starship prompt, which this uses, but is heavily themed. I also have my included bashrc with a ton of useful aliases.&lt;/p&gt;
&lt;p&gt;The setup file will also install autojump which helps you navigate between directories.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/beautiful-bash/alias.webp&quot; alt=&quot;Alias&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;Pick a directory to house all the bash files. I have a dedicated Github directory for all the projects I use @ &lt;code&gt;~/GitHub/&lt;/code&gt;, but you can pick any directory including your home and then clone mybash repository for install.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone https://github.com/christitustech/mybash
cd mybash
./setup.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: By default this will symlink your ~/.bashrc and wipe out any customizations you have made!&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/b3W7Ky_aaaY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Buying Cheap Ebay Graphics Cards</title><link>https://christitus.com/buying-cheap-ebay-graphics-card/</link><guid isPermaLink="true">https://christitus.com/buying-cheap-ebay-graphics-card/</guid><description>&lt;p&gt;With GPU Market prices plummeting and about to go even further down... I picked up a used GPU from eBay.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1573043990018113539&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;The Deal&lt;/h2&gt;
&lt;p&gt;You can monitor these cards and get some amazing deals. The AMD 5700 XT I picked up for $170 and this was selling for OVER $1000 dollars in 2021. This card is special because its predecessor is the 6700 XT and has only 3% better performance in 1080p format. Amazing right? Well... it is not quite that simple.&lt;/p&gt;
&lt;h2&gt;Buying through eBay&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/buying-cheap-ebay-graphics-card/ebay-itemview.webp&quot; alt=&quot;Ebay Itemview&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This particular post intrigued me because it the pictures that came with it and the extremely high feedback with high volumes.&lt;/p&gt;
&lt;p&gt;The picture I paid the most attention to was the backplate. Notice over the screws the warranty symbol sticker. This is still there, even through they post says they upgraded the thermal pads. This tells me either the picture isn&apos;t of the card or the person took extreme care when doing this upgrade. The other thing that stood out was the card itself looked to be in very good condition.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/buying-cheap-ebay-graphics-card/backplate-5700x.webp&quot; alt=&quot;Backplate 5700x&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Red Flags&lt;/h2&gt;
&lt;p&gt;There are couple things I look at when scanning the pictures.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Stock photos - HUGE Flag and do not buy anything with a stock photo&lt;/li&gt;
&lt;li&gt;Excessive &quot;grease stains&quot; - On the card zoom in and if you can see smears or what looks like the plastic is wet, then the card was run extremely hot and a lot of the thermal compound leaked and was smeared on the card itself. Most of these used mining cards will have a little bit of that, but pay close attention to it.&lt;/li&gt;
&lt;li&gt;No Retail Packaging - This isn&apos;t a huge flag, but typically this just means they didn&apos;t put much care into keeping the packaging. What else didn&apos;t that pay attention to?&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Pricing&lt;/h2&gt;
&lt;p&gt;Even though I bought this card at $170 and that is below the retail and eBay historical pricing for the past couple years, I could have waited a bit longer. Once the new generation cards come out, these cards will drop even LOWER! That is the perfect time to scoop up a deal. For 1080p gaming, you&apos;d have to hate yourself to buy a new generation card. These older gen cards give more performance than you could ever want at that resolution.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/buying-cheap-ebay-graphics-card/ebay.webp&quot; alt=&quot;Ebay&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/buying-cheap-ebay-graphics-card/retail.webp&quot; alt=&quot;Retail&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Issues once you bought the card&lt;/h2&gt;
&lt;p&gt;The biggest issue you will run into is bad roms. Most these mining farms flash the vbios with undervolted presets. This can cause blue screens and host of other issues.&lt;/p&gt;
&lt;p&gt;This can be fixed with downloading a new bios from &lt;a href=&quot;https://www.techpowerup.com/vgabios/&quot;&gt;https://www.techpowerup.com/vgabios/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Just be very careful and backup the existing bios with a program like GPUZ &lt;a href=&quot;https://www.techpowerup.com/download/techpowerup-gpu-z/&quot;&gt;https://www.techpowerup.com/download/techpowerup-gpu-z/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I&apos;d recommend using GPUz for the BIOS backup and also create a backup using the flashing program as well. I bricked my card momentarily when I tried to flash in Windows. This was fixed by booting in Linux and force flashing the vbios from command line.&lt;/p&gt;
&lt;p&gt;The other issue is the cards were not taken care of and were run at too high of temperatures. This can cause multiple errors and generally the card is bad. HOWEVER, I have yet to run into this being the case for me. Most times just re-flashing with a factory bios fixes most the issues I&apos;ve encountered.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/X44gW2BoSpc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 21 Oct 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;With GPU Market prices plummeting and about to go even further down... I picked up a used GPU from eBay.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1573043990018113539&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;The Deal&lt;/h2&gt;
&lt;p&gt;You can monitor these cards and get some amazing deals. The AMD 5700 XT I picked up for $170 and this was selling for OVER $1000 dollars in 2021. This card is special because its predecessor is the 6700 XT and has only 3% better performance in 1080p format. Amazing right? Well... it is not quite that simple.&lt;/p&gt;
&lt;h2&gt;Buying through eBay&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/buying-cheap-ebay-graphics-card/ebay-itemview.webp&quot; alt=&quot;Ebay Itemview&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This particular post intrigued me because it the pictures that came with it and the extremely high feedback with high volumes.&lt;/p&gt;
&lt;p&gt;The picture I paid the most attention to was the backplate. Notice over the screws the warranty symbol sticker. This is still there, even through they post says they upgraded the thermal pads. This tells me either the picture isn&apos;t of the card or the person took extreme care when doing this upgrade. The other thing that stood out was the card itself looked to be in very good condition.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/buying-cheap-ebay-graphics-card/backplate-5700x.webp&quot; alt=&quot;Backplate 5700x&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Red Flags&lt;/h2&gt;
&lt;p&gt;There are couple things I look at when scanning the pictures.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Stock photos - HUGE Flag and do not buy anything with a stock photo&lt;/li&gt;
&lt;li&gt;Excessive &quot;grease stains&quot; - On the card zoom in and if you can see smears or what looks like the plastic is wet, then the card was run extremely hot and a lot of the thermal compound leaked and was smeared on the card itself. Most of these used mining cards will have a little bit of that, but pay close attention to it.&lt;/li&gt;
&lt;li&gt;No Retail Packaging - This isn&apos;t a huge flag, but typically this just means they didn&apos;t put much care into keeping the packaging. What else didn&apos;t that pay attention to?&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Pricing&lt;/h2&gt;
&lt;p&gt;Even though I bought this card at $170 and that is below the retail and eBay historical pricing for the past couple years, I could have waited a bit longer. Once the new generation cards come out, these cards will drop even LOWER! That is the perfect time to scoop up a deal. For 1080p gaming, you&apos;d have to hate yourself to buy a new generation card. These older gen cards give more performance than you could ever want at that resolution.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/buying-cheap-ebay-graphics-card/ebay.webp&quot; alt=&quot;Ebay&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/buying-cheap-ebay-graphics-card/retail.webp&quot; alt=&quot;Retail&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Issues once you bought the card&lt;/h2&gt;
&lt;p&gt;The biggest issue you will run into is bad roms. Most these mining farms flash the vbios with undervolted presets. This can cause blue screens and host of other issues.&lt;/p&gt;
&lt;p&gt;This can be fixed with downloading a new bios from &lt;a href=&quot;https://www.techpowerup.com/vgabios/&quot;&gt;https://www.techpowerup.com/vgabios/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Just be very careful and backup the existing bios with a program like GPUZ &lt;a href=&quot;https://www.techpowerup.com/download/techpowerup-gpu-z/&quot;&gt;https://www.techpowerup.com/download/techpowerup-gpu-z/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I&apos;d recommend using GPUz for the BIOS backup and also create a backup using the flashing program as well. I bricked my card momentarily when I tried to flash in Windows. This was fixed by booting in Linux and force flashing the vbios from command line.&lt;/p&gt;
&lt;p&gt;The other issue is the cards were not taken care of and were run at too high of temperatures. This can cause multiple errors and generally the card is bad. HOWEVER, I have yet to run into this being the case for me. Most times just re-flashing with a factory bios fixes most the issues I&apos;ve encountered.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/X44gW2BoSpc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Setting Up the Ultimate Windows 11</title><link>https://christitus.com/setting-up-the-ultimate-windows-11/</link><guid isPermaLink="true">https://christitus.com/setting-up-the-ultimate-windows-11/</guid><description>&lt;p&gt;This guide shows you how to get the best performing Windows in the lightest package possible.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1578070224896663553&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;Before you begin&lt;/h2&gt;
&lt;p&gt;A custom ISO is a MUST! With extreme debloat we will be removing Windows Update, Security Services, and a variety of other system services that will bring Windows back to the XP era.&lt;/p&gt;
&lt;p&gt;If your never used Windows XP, it was an extremely light OS by today&apos;s standards, but it came at a cost. The update system was web based, there was no antivirus, and security center didn&apos;t appear until SP2 came out. This is a LOT like those days, where the user was responsible for the safety of their system.&lt;/p&gt;
&lt;p&gt;I also highly recommend buying NTLite if you want to live in this environment. Yes, it makes the ISO easier, but I absolutely love the fact it can control your Windows updates as well. Once a month, you can open NTLite and pull down the latest updates and apply them through their tool to the live install.&lt;/p&gt;
&lt;h2&gt;The Process&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Make the NTLite Install Media &lt;a href=&quot;https://christitus.com/ntlite-guide/&quot;&gt;https://christitus.com/ntlite-guide/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Install Windows&lt;/li&gt;
&lt;li&gt;Run my Windows utility &lt;a href=&quot;https://christitus.com/windows-tool/&quot;&gt;https://christitus.com/windows-tool/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Shortcut&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;irm christitus.com/win | iex
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Issues with Minimal Install&lt;/h2&gt;
&lt;p&gt;Certain dependencies for programs will be missing. When you run my utility installation of winget will likely fail because there isn&apos;t a trace of the Microsoft store on the system.&lt;/p&gt;
&lt;p&gt;I manually grabbed these using Invoke Rest Method. These are the commands I used in the video below:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;irm &quot;https://aka.ms/Microsoft.VCLibs.x64.14.00.Desktop.appx&quot;-o &quot;./Microsoft.VCLibs.x64.14.00.Desktop.appx&quot;
irm &quot;https://github.com/microsoft/winget-cli/releases/download/v1.2.10271/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle&quot;-o &quot;./Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle&quot;
irm &quot;https://github.com/microsoft/winget-cli/releases/download/v1.2.10271/b0a0692da1034339b76dce1c298a1e42_License1.xml&quot;-o &quot;./b0a0692da1034339b76dce1c298a1e42_License1.xml&quot;
Add-AppxProvisionedPackage -Online -PackagePath &quot;.\Microsoft.VCLibs.x64.14.00.Desktop.appx&quot; -SkipLicense
Add-AppxProvisionedPackage -Online -PackagePath &quot;.\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle&quot; -LicensePath &quot;.\b0a0692da1034339b76dce1c298a1e42_License1.xml&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I&apos;m working on expanding my tool to give an easy way to do this reliably for these types of minimal systems. If you&apos;d like to support my work and its future development, consider grabbing the exe @ &lt;a href=&quot;https://cttstore.com/windows-toolbox&quot;&gt;https://cttstore.com/windows-toolbox&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/WmOvg0MagW0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 19 Oct 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This guide shows you how to get the best performing Windows in the lightest package possible.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1578070224896663553&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;Before you begin&lt;/h2&gt;
&lt;p&gt;A custom ISO is a MUST! With extreme debloat we will be removing Windows Update, Security Services, and a variety of other system services that will bring Windows back to the XP era.&lt;/p&gt;
&lt;p&gt;If your never used Windows XP, it was an extremely light OS by today&apos;s standards, but it came at a cost. The update system was web based, there was no antivirus, and security center didn&apos;t appear until SP2 came out. This is a LOT like those days, where the user was responsible for the safety of their system.&lt;/p&gt;
&lt;p&gt;I also highly recommend buying NTLite if you want to live in this environment. Yes, it makes the ISO easier, but I absolutely love the fact it can control your Windows updates as well. Once a month, you can open NTLite and pull down the latest updates and apply them through their tool to the live install.&lt;/p&gt;
&lt;h2&gt;The Process&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Make the NTLite Install Media &lt;a href=&quot;https://christitus.com/ntlite-guide/&quot;&gt;https://christitus.com/ntlite-guide/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Install Windows&lt;/li&gt;
&lt;li&gt;Run my Windows utility &lt;a href=&quot;https://christitus.com/windows-tool/&quot;&gt;https://christitus.com/windows-tool/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Shortcut&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;irm christitus.com/win | iex
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Issues with Minimal Install&lt;/h2&gt;
&lt;p&gt;Certain dependencies for programs will be missing. When you run my utility installation of winget will likely fail because there isn&apos;t a trace of the Microsoft store on the system.&lt;/p&gt;
&lt;p&gt;I manually grabbed these using Invoke Rest Method. These are the commands I used in the video below:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;irm &quot;https://aka.ms/Microsoft.VCLibs.x64.14.00.Desktop.appx&quot;-o &quot;./Microsoft.VCLibs.x64.14.00.Desktop.appx&quot;
irm &quot;https://github.com/microsoft/winget-cli/releases/download/v1.2.10271/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle&quot;-o &quot;./Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle&quot;
irm &quot;https://github.com/microsoft/winget-cli/releases/download/v1.2.10271/b0a0692da1034339b76dce1c298a1e42_License1.xml&quot;-o &quot;./b0a0692da1034339b76dce1c298a1e42_License1.xml&quot;
Add-AppxProvisionedPackage -Online -PackagePath &quot;.\Microsoft.VCLibs.x64.14.00.Desktop.appx&quot; -SkipLicense
Add-AppxProvisionedPackage -Online -PackagePath &quot;.\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle&quot; -LicensePath &quot;.\b0a0692da1034339b76dce1c298a1e42_License1.xml&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I&apos;m working on expanding my tool to give an easy way to do this reliably for these types of minimal systems. If you&apos;d like to support my work and its future development, consider grabbing the exe @ &lt;a href=&quot;https://cttstore.com/windows-toolbox&quot;&gt;https://cttstore.com/windows-toolbox&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/WmOvg0MagW0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Why the Command Line is Overpowered</title><link>https://christitus.com/why-the-cli-is-op/</link><guid isPermaLink="true">https://christitus.com/why-the-cli-is-op/</guid><description>&lt;p&gt;When I say &quot;Overpowered&quot;, this means the command line interfaces can do things that are otherwise impossible.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1578822405518397442&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;All Operating Systems&lt;/h2&gt;
&lt;p&gt;When your think of command line interfaces or CLI, there are a lot of things that come to my mind, but let&apos;s go over how they are overpowered in EVERY operating system.&lt;/p&gt;
&lt;h3&gt;Windows&lt;/h3&gt;
&lt;p&gt;Both PowerShell and Command Prompt in Windows can do some amazing things. I use them extensively in both my personal and business life. I have some batch scripts that strip out and delete edge every time Microsoft reinstalls it through an unwanted update.&lt;/p&gt;
&lt;p&gt;In Powershell my entire Windows Utility is built through a PS1 script and XAML. I can install Microsoft Store Apps, Clean and Optimize systems quickly. I can also modify Windows in a way where I only have &lt;strong&gt;40&lt;/strong&gt; processes running.&lt;/p&gt;
&lt;p&gt;These feats are not possible from just using fancy graphics and a mouse. Without them, you are crippled and at the mercy of Microsoft.&lt;/p&gt;
&lt;h3&gt;MacOS&lt;/h3&gt;
&lt;p&gt;Terminal on a mac is the one thing I love about the operating system. Most mac users don&apos;t even know how awesome their UNIX based terminal is. They just click around and open up their wallets to the App Store when they need something.&lt;/p&gt;
&lt;p&gt;That all changes when you discovery terminal and a program called &quot;Homebrew&quot;. This gives you the ability to install programs in a flash and it doesn&apos;t cost you a dime. I couldn&apos;t live without this on a Mac.&lt;/p&gt;
&lt;h3&gt;Linux&lt;/h3&gt;
&lt;p&gt;Terminal is the CLI that made command line cool. The functions you get from this in Linux is absolutely amazing. It is so good that many mundane tasks are simply easier on terminal than using a mouse and the graphic user interface. The entire system can be run from terminal with ease and why the world runs on Linux servers.&lt;/p&gt;
&lt;h2&gt;Is it faster than a GUI?&lt;/h2&gt;
&lt;p&gt;There is a debate about this among hobbyists, but any IT professional will tell you that there isn&apos;t any comparison. Installing programs, tweaking a system, copying large amounts of files, and many more tasks are not only easier, but incredibly faster. It is not to say there is no place for the GUI, but for tasks you do often, there is no equal that can come close to the efficiency of the command line.&lt;/p&gt;
&lt;p&gt;So the question isn&apos;t if it is faster than the GUI... The question is:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;Are you skilled enough to use the command line to its potential?&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I often ask myself this question when I find something cumbersome and I don&apos;t know the alternative in the command line. The thing most people miss is, ANYTHING is possible on the command line. It&apos;s just whether or not you know it.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/pkhazgI3LAo&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 17 Oct 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;When I say &quot;Overpowered&quot;, this means the command line interfaces can do things that are otherwise impossible.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1578822405518397442&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;All Operating Systems&lt;/h2&gt;
&lt;p&gt;When your think of command line interfaces or CLI, there are a lot of things that come to my mind, but let&apos;s go over how they are overpowered in EVERY operating system.&lt;/p&gt;
&lt;h3&gt;Windows&lt;/h3&gt;
&lt;p&gt;Both PowerShell and Command Prompt in Windows can do some amazing things. I use them extensively in both my personal and business life. I have some batch scripts that strip out and delete edge every time Microsoft reinstalls it through an unwanted update.&lt;/p&gt;
&lt;p&gt;In Powershell my entire Windows Utility is built through a PS1 script and XAML. I can install Microsoft Store Apps, Clean and Optimize systems quickly. I can also modify Windows in a way where I only have &lt;strong&gt;40&lt;/strong&gt; processes running.&lt;/p&gt;
&lt;p&gt;These feats are not possible from just using fancy graphics and a mouse. Without them, you are crippled and at the mercy of Microsoft.&lt;/p&gt;
&lt;h3&gt;MacOS&lt;/h3&gt;
&lt;p&gt;Terminal on a mac is the one thing I love about the operating system. Most mac users don&apos;t even know how awesome their UNIX based terminal is. They just click around and open up their wallets to the App Store when they need something.&lt;/p&gt;
&lt;p&gt;That all changes when you discovery terminal and a program called &quot;Homebrew&quot;. This gives you the ability to install programs in a flash and it doesn&apos;t cost you a dime. I couldn&apos;t live without this on a Mac.&lt;/p&gt;
&lt;h3&gt;Linux&lt;/h3&gt;
&lt;p&gt;Terminal is the CLI that made command line cool. The functions you get from this in Linux is absolutely amazing. It is so good that many mundane tasks are simply easier on terminal than using a mouse and the graphic user interface. The entire system can be run from terminal with ease and why the world runs on Linux servers.&lt;/p&gt;
&lt;h2&gt;Is it faster than a GUI?&lt;/h2&gt;
&lt;p&gt;There is a debate about this among hobbyists, but any IT professional will tell you that there isn&apos;t any comparison. Installing programs, tweaking a system, copying large amounts of files, and many more tasks are not only easier, but incredibly faster. It is not to say there is no place for the GUI, but for tasks you do often, there is no equal that can come close to the efficiency of the command line.&lt;/p&gt;
&lt;p&gt;So the question isn&apos;t if it is faster than the GUI... The question is:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;Are you skilled enough to use the command line to its potential?&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I often ask myself this question when I find something cumbersome and I don&apos;t know the alternative in the command line. The thing most people miss is, ANYTHING is possible on the command line. It&apos;s just whether or not you know it.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/pkhazgI3LAo&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Neovim: The Ultimate Editor</title><link>https://christitus.com/vim-the-ultimate-editor/</link><guid isPermaLink="true">https://christitus.com/vim-the-ultimate-editor/</guid><description>&lt;p&gt;Neovim is one of the most powerful, but often misunderstood, editors in
existence. Let&apos;s approach it from a beginner&apos;s perspective and show why it is
now my editor of choice.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This article originally covered Vim and my old &lt;code&gt;myvim&lt;/code&gt; configuration. I no
longer use Vim, and the &lt;code&gt;myvim&lt;/code&gt; project has been retired. I have moved to
Neovim, and my active configuration is the
&lt;a href=&quot;https://github.com/ChrisTitusTech/neovim&quot;&gt;ChrisTitusTech/neovim&lt;/a&gt; project. For
the latest deep dive into that setup, see
&lt;a href=&quot;/neovim-the-elite-editor/&quot;&gt;Neovim the Elite Editor&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Why Neovim?&lt;/h2&gt;
&lt;p&gt;There is a lot to learn about Neovim, but the first question is usually: why
not just use VS Code or IntelliJ?&lt;/p&gt;
&lt;p&gt;Those editors offer an easy starting point, excellent debugging, and huge
extension ecosystems. Neovim takes a different approach. It gives you the
speed and keyboard-driven editing model of Vim, then adds a modern Lua
configuration system, built-in language server support, and a plugin ecosystem
that can turn it into a focused development environment.&lt;/p&gt;
&lt;p&gt;An experienced Neovim user can move through a project, search files, refactor
code, and operate several tools without reaching for the mouse. If you want to
see that editing style pushed to its limits, watch
&lt;a href=&quot;https://www.youtube.com/c/ThePrimeagen/videos&quot;&gt;ThePrimeagen&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The tradeoff is the learning curve. Neovim is not something you completely
master in a weekend. It takes time to build the motions into muscle memory, but
the payoff is worth it when editing starts to feel immediate instead of being
a series of menus and mouse movements.&lt;/p&gt;
&lt;h2&gt;Learn the Vim fundamentals&lt;/h2&gt;
&lt;p&gt;Neovim uses the same modal editing model and motions that made Vim so
effective. The first thing to understand is its modes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Normal mode&lt;/strong&gt; - The default mode. Use it for movement, commands, and editing
operations.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Insert mode&lt;/strong&gt; - Press &lt;code&gt;i&lt;/code&gt; to enter text.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Visual mode&lt;/strong&gt; - Press &lt;code&gt;v&lt;/code&gt; to select text and then run an operation on the
selection.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Press &lt;code&gt;Esc&lt;/code&gt; to return to Normal mode from Insert or Visual mode. My
configuration also maps &lt;code&gt;jj&lt;/code&gt; in Insert mode as a faster escape.&lt;/p&gt;
&lt;p&gt;The running joke is that nobody knows how to exit Vim. The same commands work
in Neovim:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Save and quit with &lt;code&gt;:wq&lt;/code&gt;, &lt;code&gt;:x&lt;/code&gt;, or &lt;code&gt;ZZ&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Quit without saving with &lt;code&gt;:q!&lt;/code&gt; or &lt;code&gt;ZQ&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The important idea is still:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If something feels slow in Neovim, there is probably a faster way to do it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Useful Vim motion cheatsheets still apply to Neovim:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://devhints.io/vim&quot;&gt;https://devhints.io/vim&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://vim.rtorr.com/&quot;&gt;https://vim.rtorr.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1577690702200590336&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;Practice before you customize&lt;/h2&gt;
&lt;p&gt;Run &lt;code&gt;:Tutor&lt;/code&gt; inside Neovim and work through it repeatedly. Treat it like a
speedrun: finish it, repeat it, and try to rely less on the hints each time.
That repetition is how the motions stop being individual keys and become
muscle memory.&lt;/p&gt;
&lt;p&gt;Move as much of your real workflow into Neovim as you comfortably can. At the
same time, do not blindly copy every keymap from somebody else&apos;s config. A
configuration should reduce friction in your own work.&lt;/p&gt;
&lt;h2&gt;My current Neovim project&lt;/h2&gt;
&lt;p&gt;My old setup was a single &lt;code&gt;.vimrc&lt;/code&gt; in the now-retired &lt;code&gt;myvim&lt;/code&gt; repository. The
replacement is a complete Lua-based Neovim project built on
&lt;a href=&quot;https://github.com/nvim-lua/kickstart.nvim&quot;&gt;kickstart.nvim&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The current setup includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;lazy.nvim&lt;/code&gt; for plugin management and Mason for language tools.&lt;/li&gt;
&lt;li&gt;LSP features, diagnostics, formatting, completion, and snippets.&lt;/li&gt;
&lt;li&gt;Snacks and Oil for project search, file navigation, and an explorer.&lt;/li&gt;
&lt;li&gt;WhichKey for discovering shortcuts as you learn the configuration.&lt;/li&gt;
&lt;li&gt;Bufferline, Trouble, Aerial, Undotree, and an integrated terminal.&lt;/li&gt;
&lt;li&gt;Markdown image pasting, linting, and distraction-free writing tools.&lt;/li&gt;
&lt;li&gt;Optional GitHub Copilot completion and Copilot Chat integration.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The leader key is &lt;code&gt;Space&lt;/code&gt;. Press it in Normal mode and wait for WhichKey to
show the available commands. A few shortcuts I use constantly are:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Shortcut&lt;/th&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;ff&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Find files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;fg&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search text across the project&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;fe&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open the file explorer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;&amp;lt;leader&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Switch between open buffers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;f&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Format the current buffer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;xx&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open project diagnostics&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;F5&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open the persistent undo history&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The complete keymap, plugin, dependency, and troubleshooting reference lives in
the project&apos;s
&lt;a href=&quot;https://github.com/ChrisTitusTech/neovim/blob/main/titus-kickstart/GUIDE.md&quot;&gt;configuration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Install my Neovim configuration&lt;/h2&gt;
&lt;p&gt;The project supports Neovim 0.10 or newer and expects Git, a Nerd Font, and a
few command-line dependencies. Clone the repository to a normal project
directory so its dependency script can link the actual configuration into
place.&lt;/p&gt;
&lt;p&gt;On Linux:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/ChrisTitusTech/neovim ~/neovim
cd ~/neovim
bash lin-depend.sh
nvim
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;On Windows, run the equivalent repair script from PowerShell:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;git clone https://github.com/ChrisTitusTech/neovim &quot;$HOME\neovim&quot;
Set-Location &quot;$HOME\neovim&quot;
.\win-depend.ps1
nvim
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The repair scripts install or check the supporting tools and point Neovim at
the &lt;code&gt;titus-kickstart&lt;/code&gt; configuration. They leave an existing non-symlink config
directory untouched, so rename your current Neovim config first if you want to
switch to this setup.&lt;/p&gt;
&lt;p&gt;On first launch, &lt;code&gt;lazy.nvim&lt;/code&gt; installs the plugins. After startup, use these
commands to verify the environment:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;:checkhealth&lt;/code&gt; checks Neovim and provider health.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;:Lazy&lt;/code&gt; opens the plugin manager.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;:Mason&lt;/code&gt; opens the language server and tool manager.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;:LspInfo&lt;/code&gt; shows the language servers attached to the current buffer.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Make it your own&lt;/h2&gt;
&lt;p&gt;Use my project as a starting point, not a configuration you are never allowed
to touch. Options and core startup behavior live in
&lt;code&gt;titus-kickstart/init.lua&lt;/code&gt;, while the plugin configuration is split into files
under &lt;code&gt;titus-kickstart/plugin/&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Change the mappings, theme, formatters, and language servers around the work
you actually do. That is the real advantage of Neovim: the editor can grow
with your workflow without forcing you into somebody else&apos;s idea of an IDE.&lt;/p&gt;
&lt;p&gt;For the most recent overview of where I have taken the project, read
&lt;a href=&quot;/neovim-the-elite-editor/&quot;&gt;Neovim the Elite Editor&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Walkthrough video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/NYSYiiqk8SY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 14 Oct 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Neovim is one of the most powerful, but often misunderstood, editors in
existence. Let&apos;s approach it from a beginner&apos;s perspective and show why it is
now my editor of choice.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This article originally covered Vim and my old &lt;code&gt;myvim&lt;/code&gt; configuration. I no
longer use Vim, and the &lt;code&gt;myvim&lt;/code&gt; project has been retired. I have moved to
Neovim, and my active configuration is the
&lt;a href=&quot;https://github.com/ChrisTitusTech/neovim&quot;&gt;ChrisTitusTech/neovim&lt;/a&gt; project. For
the latest deep dive into that setup, see
&lt;a href=&quot;/neovim-the-elite-editor/&quot;&gt;Neovim the Elite Editor&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Why Neovim?&lt;/h2&gt;
&lt;p&gt;There is a lot to learn about Neovim, but the first question is usually: why
not just use VS Code or IntelliJ?&lt;/p&gt;
&lt;p&gt;Those editors offer an easy starting point, excellent debugging, and huge
extension ecosystems. Neovim takes a different approach. It gives you the
speed and keyboard-driven editing model of Vim, then adds a modern Lua
configuration system, built-in language server support, and a plugin ecosystem
that can turn it into a focused development environment.&lt;/p&gt;
&lt;p&gt;An experienced Neovim user can move through a project, search files, refactor
code, and operate several tools without reaching for the mouse. If you want to
see that editing style pushed to its limits, watch
&lt;a href=&quot;https://www.youtube.com/c/ThePrimeagen/videos&quot;&gt;ThePrimeagen&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The tradeoff is the learning curve. Neovim is not something you completely
master in a weekend. It takes time to build the motions into muscle memory, but
the payoff is worth it when editing starts to feel immediate instead of being
a series of menus and mouse movements.&lt;/p&gt;
&lt;h2&gt;Learn the Vim fundamentals&lt;/h2&gt;
&lt;p&gt;Neovim uses the same modal editing model and motions that made Vim so
effective. The first thing to understand is its modes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Normal mode&lt;/strong&gt; - The default mode. Use it for movement, commands, and editing
operations.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Insert mode&lt;/strong&gt; - Press &lt;code&gt;i&lt;/code&gt; to enter text.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Visual mode&lt;/strong&gt; - Press &lt;code&gt;v&lt;/code&gt; to select text and then run an operation on the
selection.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Press &lt;code&gt;Esc&lt;/code&gt; to return to Normal mode from Insert or Visual mode. My
configuration also maps &lt;code&gt;jj&lt;/code&gt; in Insert mode as a faster escape.&lt;/p&gt;
&lt;p&gt;The running joke is that nobody knows how to exit Vim. The same commands work
in Neovim:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Save and quit with &lt;code&gt;:wq&lt;/code&gt;, &lt;code&gt;:x&lt;/code&gt;, or &lt;code&gt;ZZ&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Quit without saving with &lt;code&gt;:q!&lt;/code&gt; or &lt;code&gt;ZQ&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The important idea is still:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If something feels slow in Neovim, there is probably a faster way to do it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Useful Vim motion cheatsheets still apply to Neovim:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://devhints.io/vim&quot;&gt;https://devhints.io/vim&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://vim.rtorr.com/&quot;&gt;https://vim.rtorr.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1577690702200590336&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;Practice before you customize&lt;/h2&gt;
&lt;p&gt;Run &lt;code&gt;:Tutor&lt;/code&gt; inside Neovim and work through it repeatedly. Treat it like a
speedrun: finish it, repeat it, and try to rely less on the hints each time.
That repetition is how the motions stop being individual keys and become
muscle memory.&lt;/p&gt;
&lt;p&gt;Move as much of your real workflow into Neovim as you comfortably can. At the
same time, do not blindly copy every keymap from somebody else&apos;s config. A
configuration should reduce friction in your own work.&lt;/p&gt;
&lt;h2&gt;My current Neovim project&lt;/h2&gt;
&lt;p&gt;My old setup was a single &lt;code&gt;.vimrc&lt;/code&gt; in the now-retired &lt;code&gt;myvim&lt;/code&gt; repository. The
replacement is a complete Lua-based Neovim project built on
&lt;a href=&quot;https://github.com/nvim-lua/kickstart.nvim&quot;&gt;kickstart.nvim&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The current setup includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;lazy.nvim&lt;/code&gt; for plugin management and Mason for language tools.&lt;/li&gt;
&lt;li&gt;LSP features, diagnostics, formatting, completion, and snippets.&lt;/li&gt;
&lt;li&gt;Snacks and Oil for project search, file navigation, and an explorer.&lt;/li&gt;
&lt;li&gt;WhichKey for discovering shortcuts as you learn the configuration.&lt;/li&gt;
&lt;li&gt;Bufferline, Trouble, Aerial, Undotree, and an integrated terminal.&lt;/li&gt;
&lt;li&gt;Markdown image pasting, linting, and distraction-free writing tools.&lt;/li&gt;
&lt;li&gt;Optional GitHub Copilot completion and Copilot Chat integration.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The leader key is &lt;code&gt;Space&lt;/code&gt;. Press it in Normal mode and wait for WhichKey to
show the available commands. A few shortcuts I use constantly are:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Shortcut&lt;/th&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;ff&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Find files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;fg&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search text across the project&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;fe&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open the file explorer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;&amp;lt;leader&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Switch between open buffers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;f&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Format the current buffer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;xx&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open project diagnostics&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;F5&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open the persistent undo history&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The complete keymap, plugin, dependency, and troubleshooting reference lives in
the project&apos;s
&lt;a href=&quot;https://github.com/ChrisTitusTech/neovim/blob/main/titus-kickstart/GUIDE.md&quot;&gt;configuration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Install my Neovim configuration&lt;/h2&gt;
&lt;p&gt;The project supports Neovim 0.10 or newer and expects Git, a Nerd Font, and a
few command-line dependencies. Clone the repository to a normal project
directory so its dependency script can link the actual configuration into
place.&lt;/p&gt;
&lt;p&gt;On Linux:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/ChrisTitusTech/neovim ~/neovim
cd ~/neovim
bash lin-depend.sh
nvim
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;On Windows, run the equivalent repair script from PowerShell:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;git clone https://github.com/ChrisTitusTech/neovim &quot;$HOME\neovim&quot;
Set-Location &quot;$HOME\neovim&quot;
.\win-depend.ps1
nvim
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The repair scripts install or check the supporting tools and point Neovim at
the &lt;code&gt;titus-kickstart&lt;/code&gt; configuration. They leave an existing non-symlink config
directory untouched, so rename your current Neovim config first if you want to
switch to this setup.&lt;/p&gt;
&lt;p&gt;On first launch, &lt;code&gt;lazy.nvim&lt;/code&gt; installs the plugins. After startup, use these
commands to verify the environment:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;:checkhealth&lt;/code&gt; checks Neovim and provider health.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;:Lazy&lt;/code&gt; opens the plugin manager.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;:Mason&lt;/code&gt; opens the language server and tool manager.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;:LspInfo&lt;/code&gt; shows the language servers attached to the current buffer.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Make it your own&lt;/h2&gt;
&lt;p&gt;Use my project as a starting point, not a configuration you are never allowed
to touch. Options and core startup behavior live in
&lt;code&gt;titus-kickstart/init.lua&lt;/code&gt;, while the plugin configuration is split into files
under &lt;code&gt;titus-kickstart/plugin/&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Change the mappings, theme, formatters, and language servers around the work
you actually do. That is the real advantage of Neovim: the editor can grow
with your workflow without forcing you into somebody else&apos;s idea of an IDE.&lt;/p&gt;
&lt;p&gt;For the most recent overview of where I have taken the project, read
&lt;a href=&quot;/neovim-the-elite-editor/&quot;&gt;Neovim the Elite Editor&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Walkthrough video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/NYSYiiqk8SY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Pros Use Bleachbit</title><link>https://christitus.com/pros-use-bleachbit/</link><guid isPermaLink="true">https://christitus.com/pros-use-bleachbit/</guid><description>&lt;p&gt;I still see far too many comments with people that still use CCLeaner. Bleachbit is a FAR superior product and it&apos;s also free and open source. It won&apos;t try to upsell you a bunch of garbage and has a great track record, unlike CCleaner which was hacked and literally installed malware on thousands of PCs.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1577379725869256734&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;CCleaner History&lt;/h2&gt;
&lt;p&gt;I made a whole article on the CCleaner malware issue, but the main issue today is the program adds to much bloat. From the monitoring service, to the &quot;Optimization Service&quot; that adds multiple processes to your system. If you want to know more about this here is my past on CCleaner.&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/tSm1GcuygM0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h2&gt;BleachBit Overview&lt;/h2&gt;
&lt;p&gt;As a free and open source tool you simply run Bleachbit when you want to. No extra process run when you aren&apos;t using it and it does a fantastic job on ANY system.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/bleachbit.webp&quot; alt=&quot;bleachbit&quot; /&gt;&lt;/p&gt;
&lt;p&gt;There is a TON of features and it deletes not only system temporary files, but also program specific temporary files like those stored from Discord or your web browser.&lt;/p&gt;
&lt;p&gt;Is a program missing that you want cleaned? Chances are the community made a special XML file to clean it @ &lt;a href=&quot;https://github.com/bleachbit/cleanerml&quot;&gt;https://github.com/bleachbit/cleanerml&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/2oT4qrHmDMY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 12 Oct 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I still see far too many comments with people that still use CCLeaner. Bleachbit is a FAR superior product and it&apos;s also free and open source. It won&apos;t try to upsell you a bunch of garbage and has a great track record, unlike CCleaner which was hacked and literally installed malware on thousands of PCs.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1577379725869256734&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;CCleaner History&lt;/h2&gt;
&lt;p&gt;I made a whole article on the CCleaner malware issue, but the main issue today is the program adds to much bloat. From the monitoring service, to the &quot;Optimization Service&quot; that adds multiple processes to your system. If you want to know more about this here is my past on CCleaner.&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/tSm1GcuygM0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h2&gt;BleachBit Overview&lt;/h2&gt;
&lt;p&gt;As a free and open source tool you simply run Bleachbit when you want to. No extra process run when you aren&apos;t using it and it does a fantastic job on ANY system.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/bleachbit.webp&quot; alt=&quot;bleachbit&quot; /&gt;&lt;/p&gt;
&lt;p&gt;There is a TON of features and it deletes not only system temporary files, but also program specific temporary files like those stored from Discord or your web browser.&lt;/p&gt;
&lt;p&gt;Is a program missing that you want cleaned? Chances are the community made a special XML file to clean it @ &lt;a href=&quot;https://github.com/bleachbit/cleanerml&quot;&gt;https://github.com/bleachbit/cleanerml&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/2oT4qrHmDMY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Making the Perfect Phone</title><link>https://christitus.com/making-the-perfect-phone/</link><guid isPermaLink="true">https://christitus.com/making-the-perfect-phone/</guid><description>&lt;p&gt;I&apos;ve been using a dumbphone for the past month and I see now all the things I&apos;ve been missing in Life. However, dumb phones are far from perfect and there are many things that can be fixed to make the perfect phone.&lt;/p&gt;

&lt;h2&gt;The Overview&lt;/h2&gt;
&lt;p&gt;The problem with many &quot;smartphones&quot; of today is they do too much! Having the world of possibilities in your pocket can not only be distracting but can actively sabotage your life. The notifications or you actively avoid real life situations, because you use your phone as a crutch.&lt;/p&gt;
&lt;p&gt;This is why you see the rise of the &quot;dumbphone&quot;, but these devices are far from perfect. I&apos;ve used one for the past month and the amount of productivity I&apos;ve gained is astonishing. However, it is not without it&apos;s problems.&lt;/p&gt;
&lt;p&gt;My dumbphone issues:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mobile orders (I had a buffalo wild wings want to see my order # on my phone before they would give me my to-go order.)&lt;/li&gt;
&lt;li&gt;Navigation (Go old school with printed maps or simply have a GPS in your car)&lt;/li&gt;
&lt;li&gt;Uber / Lyft (These apps are life savers when visiting somewhere and you need to be picked up)&lt;/li&gt;
&lt;li&gt;Group Messaging (Depending the phone you picked, you may lose this ability. Mine couldn&apos;t do group messages or gifs)&lt;/li&gt;
&lt;li&gt;Workout Apps&lt;/li&gt;
&lt;li&gt;Camera and Photos&lt;/li&gt;
&lt;li&gt;Music Player (YT Music / Spotify)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Even with losing ALL of this... I still preferred the dumbphone experience because of how much it improved my life. It rewired my brain to really focus on the things that the smartphone does well and if I modified it to only do those things... It would be the PERFECT PHONE!&lt;/p&gt;
&lt;p&gt;So what ARE the problems with smartphones?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Web Browsing (Having this seems like a pro, but often we rely on this to look up everything and its more of a con in my experience)&lt;/li&gt;
&lt;li&gt;Social Media (Time wasters... need I say more?)&lt;/li&gt;
&lt;li&gt;Social Crutch (Elevators, Waiting Rooms, and many more... The addiction is REAL!)&lt;/li&gt;
&lt;li&gt;Low Battery Life ( 1-2 days... but this is from bloat and constantly picking it up.)&lt;/li&gt;
&lt;li&gt;YouTube / YouTube Studio (This is mainly for me, but these apps cost me so much time.)&lt;/li&gt;
&lt;li&gt;Email (Checking email through your phone is a massive productivity loss and frankly unprofessional)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This isn&apos;t that bad as you really are only giving up two things... Being bored and productivity. Right?&lt;/p&gt;
&lt;p&gt;To Simplify why those things are so important:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Being Bored = Creativity Fuel&lt;/li&gt;
&lt;li&gt;Productivity = Realizing your potential&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The Solution&lt;/h2&gt;
&lt;p&gt;Make the Smartphone only do the things that HELP YOU! Debloating your phone will extend your battery life and keep you from launching into the time wasting apps. The easiest way of doing this is with a fantastic project called &lt;a href=&quot;https://github.com/0x192/universal-android-debloater&quot;&gt;Universal Android Debloater&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This makes it extremely easy to debloat your entire device in a single click.&lt;/p&gt;
&lt;h2&gt;Pre-Requisites&lt;/h2&gt;
&lt;p&gt;You will need the following installed on your computer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ADB tools (XDA Developers has a fantastic article going over this: &lt;a href=&quot;https://www.xda-developers.com/install-adb-windows-macos-linux/&quot;&gt;ADB Tool Installation Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Developer Mode (Simply click 7-times on the about in your phone to enable developer mode)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;ADB Tool Install Cheatsheet&lt;/h3&gt;
&lt;p&gt;Debian Linux&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install android-sdk-platform-tools
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Windows&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Download &lt;a href=&quot;https://dl.google.com/android/repository/platform-tools-latest-windows.zip&quot;&gt;ADB Platform Tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Extract Tools to &lt;code&gt;C:\Windows&lt;/code&gt; &lt;em&gt;(This allows you to run adb.exe and fastboot.exe from anywhere)&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Install drivers for your phone - &lt;a href=&quot;https://developer.android.com/studio/run/oem-usb#Drivers&quot;&gt;Install Android Device Drivers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;MacOS&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;brew install android-platform-tools
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Install Universal Android Debloater&lt;/h2&gt;
&lt;p&gt;From your command line interface (terminal, powershell, etc.) type &lt;code&gt;adb devices&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Verify your phone is seen&lt;/p&gt;
&lt;p&gt;Now download the release from their GitHub &lt;a href=&quot;https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation/releases&quot;&gt;https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation/releases&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Then launch the program&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/android/uad.webp&quot; alt=&quot;uad&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Usage&lt;/h2&gt;
&lt;p&gt;As a minimalist I recommend starting with removing ALL the recommended packages. Simply select all with the following recommended settings at the top.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/android/select.webp&quot; alt=&quot;select&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Then add back in any google related packages you might use while keeping your phone slimmed down. I only kept these 4 packages from the recommended settings after I finished.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/android/final.webp&quot; alt=&quot;final&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Since I was using a Pixel 4a for my main device I also needed to change the default launcher to a more minimal one. Pixel launcher is problematic because of all the dependencies it has. I highly recommend &lt;a href=&quot;https://play.google.com/store/apps/details?id=bitpit.launcher&amp;amp;hl=en_US&amp;amp;gl=US&quot;&gt;Niagara launcher&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;The Final Product&lt;/h2&gt;
&lt;p&gt;After the debloat and changing my launcher, this is what my phone looks like now.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/android/home.webp&quot; alt=&quot;home&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/MFbXFG2xDJI&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 10 Oct 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;ve been using a dumbphone for the past month and I see now all the things I&apos;ve been missing in Life. However, dumb phones are far from perfect and there are many things that can be fixed to make the perfect phone.&lt;/p&gt;

&lt;h2&gt;The Overview&lt;/h2&gt;
&lt;p&gt;The problem with many &quot;smartphones&quot; of today is they do too much! Having the world of possibilities in your pocket can not only be distracting but can actively sabotage your life. The notifications or you actively avoid real life situations, because you use your phone as a crutch.&lt;/p&gt;
&lt;p&gt;This is why you see the rise of the &quot;dumbphone&quot;, but these devices are far from perfect. I&apos;ve used one for the past month and the amount of productivity I&apos;ve gained is astonishing. However, it is not without it&apos;s problems.&lt;/p&gt;
&lt;p&gt;My dumbphone issues:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mobile orders (I had a buffalo wild wings want to see my order # on my phone before they would give me my to-go order.)&lt;/li&gt;
&lt;li&gt;Navigation (Go old school with printed maps or simply have a GPS in your car)&lt;/li&gt;
&lt;li&gt;Uber / Lyft (These apps are life savers when visiting somewhere and you need to be picked up)&lt;/li&gt;
&lt;li&gt;Group Messaging (Depending the phone you picked, you may lose this ability. Mine couldn&apos;t do group messages or gifs)&lt;/li&gt;
&lt;li&gt;Workout Apps&lt;/li&gt;
&lt;li&gt;Camera and Photos&lt;/li&gt;
&lt;li&gt;Music Player (YT Music / Spotify)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Even with losing ALL of this... I still preferred the dumbphone experience because of how much it improved my life. It rewired my brain to really focus on the things that the smartphone does well and if I modified it to only do those things... It would be the PERFECT PHONE!&lt;/p&gt;
&lt;p&gt;So what ARE the problems with smartphones?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Web Browsing (Having this seems like a pro, but often we rely on this to look up everything and its more of a con in my experience)&lt;/li&gt;
&lt;li&gt;Social Media (Time wasters... need I say more?)&lt;/li&gt;
&lt;li&gt;Social Crutch (Elevators, Waiting Rooms, and many more... The addiction is REAL!)&lt;/li&gt;
&lt;li&gt;Low Battery Life ( 1-2 days... but this is from bloat and constantly picking it up.)&lt;/li&gt;
&lt;li&gt;YouTube / YouTube Studio (This is mainly for me, but these apps cost me so much time.)&lt;/li&gt;
&lt;li&gt;Email (Checking email through your phone is a massive productivity loss and frankly unprofessional)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This isn&apos;t that bad as you really are only giving up two things... Being bored and productivity. Right?&lt;/p&gt;
&lt;p&gt;To Simplify why those things are so important:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Being Bored = Creativity Fuel&lt;/li&gt;
&lt;li&gt;Productivity = Realizing your potential&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The Solution&lt;/h2&gt;
&lt;p&gt;Make the Smartphone only do the things that HELP YOU! Debloating your phone will extend your battery life and keep you from launching into the time wasting apps. The easiest way of doing this is with a fantastic project called &lt;a href=&quot;https://github.com/0x192/universal-android-debloater&quot;&gt;Universal Android Debloater&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This makes it extremely easy to debloat your entire device in a single click.&lt;/p&gt;
&lt;h2&gt;Pre-Requisites&lt;/h2&gt;
&lt;p&gt;You will need the following installed on your computer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ADB tools (XDA Developers has a fantastic article going over this: &lt;a href=&quot;https://www.xda-developers.com/install-adb-windows-macos-linux/&quot;&gt;ADB Tool Installation Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Developer Mode (Simply click 7-times on the about in your phone to enable developer mode)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;ADB Tool Install Cheatsheet&lt;/h3&gt;
&lt;p&gt;Debian Linux&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install android-sdk-platform-tools
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Windows&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Download &lt;a href=&quot;https://dl.google.com/android/repository/platform-tools-latest-windows.zip&quot;&gt;ADB Platform Tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Extract Tools to &lt;code&gt;C:\Windows&lt;/code&gt; &lt;em&gt;(This allows you to run adb.exe and fastboot.exe from anywhere)&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Install drivers for your phone - &lt;a href=&quot;https://developer.android.com/studio/run/oem-usb#Drivers&quot;&gt;Install Android Device Drivers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;MacOS&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;brew install android-platform-tools
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Install Universal Android Debloater&lt;/h2&gt;
&lt;p&gt;From your command line interface (terminal, powershell, etc.) type &lt;code&gt;adb devices&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Verify your phone is seen&lt;/p&gt;
&lt;p&gt;Now download the release from their GitHub &lt;a href=&quot;https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation/releases&quot;&gt;https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation/releases&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Then launch the program&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/android/uad.webp&quot; alt=&quot;uad&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Usage&lt;/h2&gt;
&lt;p&gt;As a minimalist I recommend starting with removing ALL the recommended packages. Simply select all with the following recommended settings at the top.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/android/select.webp&quot; alt=&quot;select&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Then add back in any google related packages you might use while keeping your phone slimmed down. I only kept these 4 packages from the recommended settings after I finished.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/android/final.webp&quot; alt=&quot;final&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Since I was using a Pixel 4a for my main device I also needed to change the default launcher to a more minimal one. Pixel launcher is problematic because of all the dependencies it has. I highly recommend &lt;a href=&quot;https://play.google.com/store/apps/details?id=bitpit.launcher&amp;amp;hl=en_US&amp;amp;gl=US&quot;&gt;Niagara launcher&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;The Final Product&lt;/h2&gt;
&lt;p&gt;After the debloat and changing my launcher, this is what my phone looks like now.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/android/home.webp&quot; alt=&quot;home&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/MFbXFG2xDJI&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>How I Setup My Website</title><link>https://christitus.com/how-i-setup-my-website/</link><guid isPermaLink="true">https://christitus.com/how-i-setup-my-website/</guid><description>&lt;p&gt;This shows you have I automate my workflows and setup my website for maximum productivity and search&lt;/p&gt;
&lt;p&gt;The best part is this is FREE and will produce a website faster than anything on the web. Netlify, my host, didn&apos;t charge anything until I was breaking 100GB of bandwidth and 100,000 active users PER MONTH! Now with double those numbers I pay only $19 a month and have 1 TB (Terabyte) of data per month.&lt;/p&gt;
&lt;h2&gt;The Workflow and Overview&lt;/h2&gt;
&lt;p&gt;Typically before I start recording any video, I write an outline and publish it on my website. It&apos;s almost like a video script, but also a copy paste guide for either a viewer or just someone searching google.&lt;/p&gt;
&lt;p&gt;This is done by using a static site generator. There are bunch on the market, but the one that suited my needs the best is &lt;a href=&quot;https://gohugo.io&quot;&gt;Hugo&lt;/a&gt;. It has a bunch of themes ready to use out of the box @ &lt;a href=&quot;https://themes.gohugo.io/&quot;&gt;https://themes.gohugo.io/&lt;/a&gt; and is extremely modular.&lt;/p&gt;
&lt;p&gt;Then there are the annoyances of other website platforms like WordPress. You need to go on the web and use some terrible web based editor that just is slow and takes a long time. Hugo fixes this by using both GitHub and Netlify for deployment. Netlify will &quot;host, build, and distribute&quot; the content automatically and GitHub will be where you publish when it&apos;s ready for the publish stage that Netlify controls.&lt;/p&gt;
&lt;p&gt;What this looks like in practice is I issue a &lt;code&gt;hugo new posts/new-post.md&lt;/code&gt;, edit it with &lt;code&gt;vim posts/new-post.md&lt;/code&gt;, and post it with git commit and push. This allows me to create a page in seconds if I wanted.&lt;/p&gt;
&lt;h2&gt;The Setup&lt;/h2&gt;
&lt;p&gt;Install Hugo (I recommend &lt;a href=&quot;/nix-package-manager&quot;&gt;NIX Package Manager&lt;/a&gt;)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nix-env -iA nixpkgs.hugo
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Do a quick setup that creates the &lt;code&gt;website&lt;/code&gt; folder and the needed HUGO framework files with:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;hugo new site website
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then we will initialize it with a HUGO theme like so:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd website
git init
git submodule add https://github.com/zzossig/hugo-theme-zzo.git themes/zzo
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I absolutely love the ZZO theme as a beginner. It has some of the best instructions and documentation you will find! &lt;a href=&quot;https://zzo-docs.vercel.app/zzo/gettingstarted/installation/&quot;&gt;https://zzo-docs.vercel.app/zzo/gettingstarted/installation/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Usage and First Steps&lt;/h2&gt;
&lt;p&gt;The first thing you want to do is look over the sample post in &lt;code&gt;/themes&lt;/code&gt; under &lt;code&gt;/themes/examplesite&lt;/code&gt;. Under here you will see the structure that HUGO uses and how most of the content ends up in the &lt;code&gt;content&lt;/code&gt; directory off of root.&lt;/p&gt;
&lt;p&gt;The second thing to note is the &lt;code&gt;/content/posts/&lt;/code&gt; and seeing the examples here. This will show you the sample markdown file and how it&apos;s laid out. Change these and make your first post. Once you figure out a good structure for your posts, you can then edit the default template.&lt;/p&gt;
&lt;p&gt;For previewing the changes you can open up a new terminal and just type &lt;code&gt;hugo server&lt;/code&gt; from the root &lt;code&gt;website&lt;/code&gt; directory.&lt;/p&gt;
&lt;p&gt;Now I have three different windows that I&apos;m using for the bulk of my workflow:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Chrome Window with &lt;a href=&quot;https://localhost:1313&quot;&gt;https://localhost:1313&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;IDE for editing my markdown files (vs code, vim, etc.)&lt;/li&gt;
&lt;li&gt;Extra terminal window running &lt;code&gt;hugo server&lt;/code&gt; for real time updates for the chrome window&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;Note: You can use terminal inside vs code and with the auto save feature you can see the code get updated on the webpage for every change you make!&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Your First Modifications&lt;/h2&gt;
&lt;p&gt;Remember the big thing with HUGO is everything is modular and everything can be changed, because at the end it is simply outputting a static html file.&lt;/p&gt;
&lt;p&gt;Once you figure out how you want your posts structured, change the &lt;code&gt;/archtypes/default.md&lt;/code&gt;. This template is what each new post will use. This is where you really increase your efficiency as we often find ourselves writing the same few things on each new post we make.&lt;/p&gt;
&lt;p&gt;The next modification will probably comes from adding widgets or sidebar components. Instead of directly modifying the &lt;code&gt;/theme/zzo&lt;/code&gt; files you can actually look through the partials directory and create your own &lt;code&gt;/layouts/partials&lt;/code&gt; in your root that will take precedence over the ones in the theme directory. More in-depth explanation from the official site &lt;a href=&quot;https://gohugo.io/functions/partials/include/&quot;&gt;https://gohugo.io/functions/partials/include/&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Complex Theme Modifications&lt;/h2&gt;
&lt;p&gt;In my past Hugo Guide I went into some pretty big theme modifications (adding search, tags, etc.) Read more about that @ &lt;a href=&quot;https://christitus.com/hugo-guide/&quot;&gt;https://christitus.com/hugo-guide/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Also if you see something you want to copy from my website, everything is on my public GitHub @ &lt;a href=&quot;https://github.com/christitustech/website&quot;&gt;https://github.com/christitustech/website&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Adding comments can be done in a multitude of ways, but my absolute favorite instead of using Disqus or &lt;a href=&quot;http://commento.io&quot;&gt;commento.io&lt;/a&gt; is simply using GitHub to host the comments directly on your website repository! There is an amazing &quot;plugin&quot; that you can add called &lt;a href=&quot;https://github.com/utterance/utterances&quot;&gt;https://github.com/utterance/utterances&lt;/a&gt; which does all the spam filtering and integrates comments BETTER!&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/xMv10E561WQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 07 Oct 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This shows you have I automate my workflows and setup my website for maximum productivity and search&lt;/p&gt;
&lt;p&gt;The best part is this is FREE and will produce a website faster than anything on the web. Netlify, my host, didn&apos;t charge anything until I was breaking 100GB of bandwidth and 100,000 active users PER MONTH! Now with double those numbers I pay only $19 a month and have 1 TB (Terabyte) of data per month.&lt;/p&gt;
&lt;h2&gt;The Workflow and Overview&lt;/h2&gt;
&lt;p&gt;Typically before I start recording any video, I write an outline and publish it on my website. It&apos;s almost like a video script, but also a copy paste guide for either a viewer or just someone searching google.&lt;/p&gt;
&lt;p&gt;This is done by using a static site generator. There are bunch on the market, but the one that suited my needs the best is &lt;a href=&quot;https://gohugo.io&quot;&gt;Hugo&lt;/a&gt;. It has a bunch of themes ready to use out of the box @ &lt;a href=&quot;https://themes.gohugo.io/&quot;&gt;https://themes.gohugo.io/&lt;/a&gt; and is extremely modular.&lt;/p&gt;
&lt;p&gt;Then there are the annoyances of other website platforms like WordPress. You need to go on the web and use some terrible web based editor that just is slow and takes a long time. Hugo fixes this by using both GitHub and Netlify for deployment. Netlify will &quot;host, build, and distribute&quot; the content automatically and GitHub will be where you publish when it&apos;s ready for the publish stage that Netlify controls.&lt;/p&gt;
&lt;p&gt;What this looks like in practice is I issue a &lt;code&gt;hugo new posts/new-post.md&lt;/code&gt;, edit it with &lt;code&gt;vim posts/new-post.md&lt;/code&gt;, and post it with git commit and push. This allows me to create a page in seconds if I wanted.&lt;/p&gt;
&lt;h2&gt;The Setup&lt;/h2&gt;
&lt;p&gt;Install Hugo (I recommend &lt;a href=&quot;/nix-package-manager&quot;&gt;NIX Package Manager&lt;/a&gt;)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nix-env -iA nixpkgs.hugo
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Do a quick setup that creates the &lt;code&gt;website&lt;/code&gt; folder and the needed HUGO framework files with:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;hugo new site website
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then we will initialize it with a HUGO theme like so:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd website
git init
git submodule add https://github.com/zzossig/hugo-theme-zzo.git themes/zzo
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I absolutely love the ZZO theme as a beginner. It has some of the best instructions and documentation you will find! &lt;a href=&quot;https://zzo-docs.vercel.app/zzo/gettingstarted/installation/&quot;&gt;https://zzo-docs.vercel.app/zzo/gettingstarted/installation/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Usage and First Steps&lt;/h2&gt;
&lt;p&gt;The first thing you want to do is look over the sample post in &lt;code&gt;/themes&lt;/code&gt; under &lt;code&gt;/themes/examplesite&lt;/code&gt;. Under here you will see the structure that HUGO uses and how most of the content ends up in the &lt;code&gt;content&lt;/code&gt; directory off of root.&lt;/p&gt;
&lt;p&gt;The second thing to note is the &lt;code&gt;/content/posts/&lt;/code&gt; and seeing the examples here. This will show you the sample markdown file and how it&apos;s laid out. Change these and make your first post. Once you figure out a good structure for your posts, you can then edit the default template.&lt;/p&gt;
&lt;p&gt;For previewing the changes you can open up a new terminal and just type &lt;code&gt;hugo server&lt;/code&gt; from the root &lt;code&gt;website&lt;/code&gt; directory.&lt;/p&gt;
&lt;p&gt;Now I have three different windows that I&apos;m using for the bulk of my workflow:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Chrome Window with &lt;a href=&quot;https://localhost:1313&quot;&gt;https://localhost:1313&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;IDE for editing my markdown files (vs code, vim, etc.)&lt;/li&gt;
&lt;li&gt;Extra terminal window running &lt;code&gt;hugo server&lt;/code&gt; for real time updates for the chrome window&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;Note: You can use terminal inside vs code and with the auto save feature you can see the code get updated on the webpage for every change you make!&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Your First Modifications&lt;/h2&gt;
&lt;p&gt;Remember the big thing with HUGO is everything is modular and everything can be changed, because at the end it is simply outputting a static html file.&lt;/p&gt;
&lt;p&gt;Once you figure out how you want your posts structured, change the &lt;code&gt;/archtypes/default.md&lt;/code&gt;. This template is what each new post will use. This is where you really increase your efficiency as we often find ourselves writing the same few things on each new post we make.&lt;/p&gt;
&lt;p&gt;The next modification will probably comes from adding widgets or sidebar components. Instead of directly modifying the &lt;code&gt;/theme/zzo&lt;/code&gt; files you can actually look through the partials directory and create your own &lt;code&gt;/layouts/partials&lt;/code&gt; in your root that will take precedence over the ones in the theme directory. More in-depth explanation from the official site &lt;a href=&quot;https://gohugo.io/functions/partials/include/&quot;&gt;https://gohugo.io/functions/partials/include/&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Complex Theme Modifications&lt;/h2&gt;
&lt;p&gt;In my past Hugo Guide I went into some pretty big theme modifications (adding search, tags, etc.) Read more about that @ &lt;a href=&quot;https://christitus.com/hugo-guide/&quot;&gt;https://christitus.com/hugo-guide/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Also if you see something you want to copy from my website, everything is on my public GitHub @ &lt;a href=&quot;https://github.com/christitustech/website&quot;&gt;https://github.com/christitustech/website&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Adding comments can be done in a multitude of ways, but my absolute favorite instead of using Disqus or &lt;a href=&quot;http://commento.io&quot;&gt;commento.io&lt;/a&gt; is simply using GitHub to host the comments directly on your website repository! There is an amazing &quot;plugin&quot; that you can add called &lt;a href=&quot;https://github.com/utterance/utterances&quot;&gt;https://github.com/utterance/utterances&lt;/a&gt; which does all the spam filtering and integrates comments BETTER!&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/xMv10E561WQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>NTLite Guide</title><link>https://christitus.com/ntlite-guide/</link><guid isPermaLink="true">https://christitus.com/ntlite-guide/</guid><description>&lt;p&gt;This Guide shows you the easiest way to configure Windows and make an ISO with NTLite.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2022/ntlite/ntlite.webp&quot; alt=&quot;ntlite&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Overview&lt;/h2&gt;
&lt;p&gt;NTLite is the best program for making an ISO for a Windows Environment. You have every option you could need, but is often overwhelming for new users. It&apos;s why when you pull up NTLite Guide on YouTube you get 30+ Minute long videos.&lt;/p&gt;
&lt;p&gt;These options are great for IT Professionals, but for a normal user it is too much and most normal users just end up with a broken Windows install ISO.&lt;/p&gt;
&lt;p&gt;That is where import existing profiles that have already been tested by the NTLite community comes into play. You simply unpack the official ISO, apply the profile, and make your custom ISO!&lt;/p&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;NTLite costs $40 for a home user and is worth every penny in my opinion. Download and buy from their website &lt;a href=&quot;https://ntlite.com&quot;&gt;https://ntlite.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Download the presets to import from my GitHub Repository &lt;a href=&quot;https://github.com/ChrisTitusTech/ntlite-configs&quot;&gt;https://github.com/ChrisTitusTech/ntlite-configs&lt;/a&gt; - Credit for it&apos;s creation goes to Txmmy from NTLite forums. I&apos;m using GitHub to maintain and update it based on user requests.&lt;/li&gt;
&lt;li&gt;Install 7zip to extract files from Windows ISO - Windows Terminal install with &lt;code&gt;winget install --id=7zip.7zip  -e&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Download the official Windows ISO &lt;a href=&quot;https://www.microsoft.com/en-us/software-download/windows10&quot;&gt;https://www.microsoft.com/en-us/software-download/windows10&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/ntlite/download-iso.webp&quot; alt=&quot;ms-download&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: In windows it will default to &quot;Media Creation Tool&quot; to make the iso (see above) You can use Mac/Linux to direct download ISO or User Agent Switch Browser Extension to trick Microsoft&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;The Setup&lt;/h2&gt;
&lt;p&gt;These are the following steps for the NTLite to make a proper ISO. Extract the Official ISO, Add ISO Files, Load Files, Apply Imported XML Profile, Save New ISO!&lt;/p&gt;
&lt;h3&gt;Extract Windows ISO File&lt;/h3&gt;
&lt;p&gt;Right click your &lt;code&gt;windows.iso&lt;/code&gt; file and select the &quot;extract files&quot;. &lt;em&gt;If you don&apos;t see the extract files in the context menu then you did NOT install 7zip OR in Windows 11 you need to select &quot;show more options&quot;&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Preparing NTLite&lt;/h3&gt;
&lt;p&gt;Look at the image below and add the files you extracted above. Follow these steps in order:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select Folder from Add Menu&lt;/li&gt;
&lt;li&gt;Delete unneeded Windows versions &lt;em&gt;Ex. Windows Pro N or Windows Educational&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;Select the Version you DO NEED after before move to Apply&lt;/li&gt;
&lt;li&gt;Import the Presets XML File&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Apply to load the files &lt;em&gt;Note: This will take a LONG time 5-10 minutes on fast systems&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/ntlite/import-image.webp&quot; alt=&quot;import-image&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Customize Image&lt;/h3&gt;
&lt;p&gt;There are a TON of customizations you can do here, but DO NOT OVER DO IT! Past the imported presets that automatically set the services you need and a few other quality of life settings, you should also import the drivers for the system you are installing it on. This speeds up the post-install time.&lt;/p&gt;
&lt;p&gt;Once you have everything the way you want it, simply apply the settings.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/ntlite/apply-settings.webp&quot; alt=&quot;apply-settings&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: This is the longest of all the stages and took almost 15 minutes on a good system&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;Dummy Keys for Windows 10&lt;/h4&gt;
&lt;p&gt;Here is the list of generic keys for various Windows 10 Editions.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Windows 10 Edition&lt;/th&gt;
&lt;th&gt;Generic Keys&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 Home&lt;/td&gt;
&lt;td&gt;YTMG3-N6DKC-DKB77-7M9GH-8HVX7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 Home N&lt;/td&gt;
&lt;td&gt;4CPRK-NM3K3-X6XXQ-RXX86-WXCHW&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 Pro&lt;/td&gt;
&lt;td&gt;VK7JG-NPHTM-C97JM-9MPGT-3V66T&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 Pro N&lt;/td&gt;
&lt;td&gt;2B87N-8KFHP-DKV6R-Y2C8J-PKCKT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 Pro for Workstations&lt;/td&gt;
&lt;td&gt;DXG7C-N36C4-C4HTG-X4T3X-2YV77&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 Pro N for Workstations&lt;/td&gt;
&lt;td&gt;WYPNQ-8C467-V2W6J-TX4WX-WT2RQ&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 Pro Education&lt;/td&gt;
&lt;td&gt;8PTT6-RNW4C-6V7J2-C2D3X-MHBPB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 Pro Education N&lt;/td&gt;
&lt;td&gt;GJTYN-HDMQY-FRR76-HVGC7-QPF8P&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 Education&lt;/td&gt;
&lt;td&gt;YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 Education N&lt;/td&gt;
&lt;td&gt;84NGF-MHBT6-FXBX8-QWJK7-DRR8H&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 Enterprise&lt;/td&gt;
&lt;td&gt;XGVPP-NMH47-7TTHJ-W3FW7-8HV2C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 Enterprise N&lt;/td&gt;
&lt;td&gt;WGGHN-J84D6-QYCPR-T7PJ7-X766F&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 Enterprise S&lt;/td&gt;
&lt;td&gt;NK96Y-D9CD8-W44CQ-R8YTK-DYJWX&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 S&lt;/td&gt;
&lt;td&gt;3NF4D-GF9GY-63VKH-QRC3V-7QW8P&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Create the ISO&lt;/h2&gt;
&lt;p&gt;Finally, we are ready to make the ISO. Just Click &quot;Create ISO&quot; and select the location to save it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/ntlite/create-iso.webp&quot; alt=&quot;create-iso&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Next Steps&lt;/h2&gt;
&lt;p&gt;After you have made your ISO file you are now ready to install and finish your configuration&lt;/p&gt;
&lt;p&gt;Check out my Windows Utility script and set the Security Updates, Install Extra Programs, and more @ &lt;a href=&quot;https://christitus.com/windows-tool/&quot;&gt;https://christitus.com/windows-tool/&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/xLCWtC6UYrM&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 05 Oct 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This Guide shows you the easiest way to configure Windows and make an ISO with NTLite.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2022/ntlite/ntlite.webp&quot; alt=&quot;ntlite&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Overview&lt;/h2&gt;
&lt;p&gt;NTLite is the best program for making an ISO for a Windows Environment. You have every option you could need, but is often overwhelming for new users. It&apos;s why when you pull up NTLite Guide on YouTube you get 30+ Minute long videos.&lt;/p&gt;
&lt;p&gt;These options are great for IT Professionals, but for a normal user it is too much and most normal users just end up with a broken Windows install ISO.&lt;/p&gt;
&lt;p&gt;That is where import existing profiles that have already been tested by the NTLite community comes into play. You simply unpack the official ISO, apply the profile, and make your custom ISO!&lt;/p&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;NTLite costs $40 for a home user and is worth every penny in my opinion. Download and buy from their website &lt;a href=&quot;https://ntlite.com&quot;&gt;https://ntlite.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Download the presets to import from my GitHub Repository &lt;a href=&quot;https://github.com/ChrisTitusTech/ntlite-configs&quot;&gt;https://github.com/ChrisTitusTech/ntlite-configs&lt;/a&gt; - Credit for it&apos;s creation goes to Txmmy from NTLite forums. I&apos;m using GitHub to maintain and update it based on user requests.&lt;/li&gt;
&lt;li&gt;Install 7zip to extract files from Windows ISO - Windows Terminal install with &lt;code&gt;winget install --id=7zip.7zip  -e&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Download the official Windows ISO &lt;a href=&quot;https://www.microsoft.com/en-us/software-download/windows10&quot;&gt;https://www.microsoft.com/en-us/software-download/windows10&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/ntlite/download-iso.webp&quot; alt=&quot;ms-download&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: In windows it will default to &quot;Media Creation Tool&quot; to make the iso (see above) You can use Mac/Linux to direct download ISO or User Agent Switch Browser Extension to trick Microsoft&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;The Setup&lt;/h2&gt;
&lt;p&gt;These are the following steps for the NTLite to make a proper ISO. Extract the Official ISO, Add ISO Files, Load Files, Apply Imported XML Profile, Save New ISO!&lt;/p&gt;
&lt;h3&gt;Extract Windows ISO File&lt;/h3&gt;
&lt;p&gt;Right click your &lt;code&gt;windows.iso&lt;/code&gt; file and select the &quot;extract files&quot;. &lt;em&gt;If you don&apos;t see the extract files in the context menu then you did NOT install 7zip OR in Windows 11 you need to select &quot;show more options&quot;&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Preparing NTLite&lt;/h3&gt;
&lt;p&gt;Look at the image below and add the files you extracted above. Follow these steps in order:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select Folder from Add Menu&lt;/li&gt;
&lt;li&gt;Delete unneeded Windows versions &lt;em&gt;Ex. Windows Pro N or Windows Educational&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;Select the Version you DO NEED after before move to Apply&lt;/li&gt;
&lt;li&gt;Import the Presets XML File&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Apply to load the files &lt;em&gt;Note: This will take a LONG time 5-10 minutes on fast systems&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/ntlite/import-image.webp&quot; alt=&quot;import-image&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Customize Image&lt;/h3&gt;
&lt;p&gt;There are a TON of customizations you can do here, but DO NOT OVER DO IT! Past the imported presets that automatically set the services you need and a few other quality of life settings, you should also import the drivers for the system you are installing it on. This speeds up the post-install time.&lt;/p&gt;
&lt;p&gt;Once you have everything the way you want it, simply apply the settings.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/ntlite/apply-settings.webp&quot; alt=&quot;apply-settings&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: This is the longest of all the stages and took almost 15 minutes on a good system&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;Dummy Keys for Windows 10&lt;/h4&gt;
&lt;p&gt;Here is the list of generic keys for various Windows 10 Editions.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Windows 10 Edition&lt;/th&gt;
&lt;th&gt;Generic Keys&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 Home&lt;/td&gt;
&lt;td&gt;YTMG3-N6DKC-DKB77-7M9GH-8HVX7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 Home N&lt;/td&gt;
&lt;td&gt;4CPRK-NM3K3-X6XXQ-RXX86-WXCHW&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 Pro&lt;/td&gt;
&lt;td&gt;VK7JG-NPHTM-C97JM-9MPGT-3V66T&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 Pro N&lt;/td&gt;
&lt;td&gt;2B87N-8KFHP-DKV6R-Y2C8J-PKCKT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 Pro for Workstations&lt;/td&gt;
&lt;td&gt;DXG7C-N36C4-C4HTG-X4T3X-2YV77&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 Pro N for Workstations&lt;/td&gt;
&lt;td&gt;WYPNQ-8C467-V2W6J-TX4WX-WT2RQ&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 Pro Education&lt;/td&gt;
&lt;td&gt;8PTT6-RNW4C-6V7J2-C2D3X-MHBPB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 Pro Education N&lt;/td&gt;
&lt;td&gt;GJTYN-HDMQY-FRR76-HVGC7-QPF8P&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 Education&lt;/td&gt;
&lt;td&gt;YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 Education N&lt;/td&gt;
&lt;td&gt;84NGF-MHBT6-FXBX8-QWJK7-DRR8H&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 Enterprise&lt;/td&gt;
&lt;td&gt;XGVPP-NMH47-7TTHJ-W3FW7-8HV2C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 Enterprise N&lt;/td&gt;
&lt;td&gt;WGGHN-J84D6-QYCPR-T7PJ7-X766F&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 Enterprise S&lt;/td&gt;
&lt;td&gt;NK96Y-D9CD8-W44CQ-R8YTK-DYJWX&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 10 S&lt;/td&gt;
&lt;td&gt;3NF4D-GF9GY-63VKH-QRC3V-7QW8P&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Create the ISO&lt;/h2&gt;
&lt;p&gt;Finally, we are ready to make the ISO. Just Click &quot;Create ISO&quot; and select the location to save it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/ntlite/create-iso.webp&quot; alt=&quot;create-iso&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Next Steps&lt;/h2&gt;
&lt;p&gt;After you have made your ISO file you are now ready to install and finish your configuration&lt;/p&gt;
&lt;p&gt;Check out my Windows Utility script and set the Security Updates, Install Extra Programs, and more @ &lt;a href=&quot;https://christitus.com/windows-tool/&quot;&gt;https://christitus.com/windows-tool/&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/xLCWtC6UYrM&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Macos on Linux</title><link>https://christitus.com/macos-on-linux/</link><guid isPermaLink="true">https://christitus.com/macos-on-linux/</guid><description>&lt;p&gt;This shows you all the steps to install a MacOS VM in Linux QEMU using Virtual Machine Manager or virt-manager.&lt;/p&gt;

&lt;p&gt;Newer Source, but not as polished: &lt;a href=&quot;https://github.com/kholia/OSX-KVM&quot;&gt;https://github.com/kholia/OSX-KVM&lt;/a&gt;
Mac KVM Repository: &lt;a href=&quot;https://github.com/foxlet/macOS-Simple-KVM&quot;&gt;https://github.com/foxlet/macOS-Simple-KVM&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A modern Linux distribution. E.g. Ubuntu 20.04 LTS 64-bit or later.&lt;/li&gt;
&lt;li&gt;QEMU &amp;gt;= 4.2.0&lt;/li&gt;
&lt;li&gt;A CPU with Intel VT-x / AMD SVM support is required (&lt;code&gt;grep -e vmx -e svm /proc/cpuinfo&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Installation Preparation&lt;/h2&gt;
&lt;p&gt;Install QEMU and modify your user using &lt;a href=&quot;https://christitus.com/vm-setup-in-linux&quot;&gt;https://christitus.com/vm-setup-in-linux&lt;/a&gt; Guide.&lt;/p&gt;
&lt;p&gt;Clone this repository on your QEMU system. Files from this repository are used in the following steps.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd ~
git clone --depth 1 --recursive https://github.com/foxlet/macOS-Simple-KVM
cd macOS-Simple-KVM
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Installation Media&lt;/h2&gt;
&lt;p&gt;This downloads our installation media and I&apos;d recommend using Catalina for compatibility and performance.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;./jumpstart.sh --catalina
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: Modern NVIDIA GPUs are supported on HighSierra but not on later
versions of macOS. Recommended PCI Passthrough GPU is 5700XT as this works on Catalina and above. If you go with a 6000 Series Card only certain ones will work on Big Sur and Monterey, but not earlier releases.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Virtual Machine Setup&lt;/h2&gt;
&lt;p&gt;I recommend using Virtual Machine Manager (virt-manager) as it has a fantastic interface and Simple-KVM does a great job with their setup script. Simply type the following to get the macOS VM setup:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo ./make.sh --add
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;VM Modification&lt;/h3&gt;
&lt;p&gt;Before we can start out VM we have to have a hard drive to load it. You have two options: physical hard drive passthrough or qcow2 file.&lt;/p&gt;
&lt;p&gt;Obviously, the physical drive is considerably faster, but not possible in some instances such as laptops or if you can&apos;t afford a secondary drive.&lt;/p&gt;
&lt;h4&gt;Physical Hard Drive Passthrough&lt;/h4&gt;
&lt;p&gt;This is pretty simple as you just click Add Hardware -&amp;gt; Storage and then specify your hard drive.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/qemu/hdd.webp&quot; alt=&quot;hdd&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: while you can use drive short names &lt;code&gt;/dev/sda&lt;/code&gt; I&apos;d recommend using &lt;code&gt;/dev/disk/by-id/HARDDRIVESERIAL&lt;/code&gt; as this doesn&apos;t ever change.&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;QCOW2 File for Hard Drive&lt;/h4&gt;
&lt;p&gt;This is even simpler as you just click Add Hardware -&amp;gt; Storage and create new file. Just make sure you put it on at least a SSD or a nvme drive as it will be super slow if you don&apos;t.&lt;/p&gt;
&lt;h2&gt;Install Process&lt;/h2&gt;
&lt;p&gt;Boot your machine and select the OS Install Partition on startup.&lt;/p&gt;
&lt;p&gt;Use the &lt;code&gt;Disk Utility&lt;/code&gt; tool within the macOS installer to partition, and
format the virtual disk attached to the macOS VM.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TIP: Using a non-APFS filesystem is recommended.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Go ahead, and install macOS&lt;/p&gt;
&lt;h3&gt;Post-Installation&lt;/h3&gt;
&lt;h4&gt;Bridge Networking&lt;/h4&gt;
&lt;p&gt;*First_ find your card interface name&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ip a
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Example: (Interface name is enp7s0)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp7s0: &amp;lt;NO-CARRIER,BROADCAST,MULTICAST,UP&amp;gt; mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 24:bb:ee:55:22:33 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.99/24 brd 10.0.0.255 scope global
    valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
    valid_lft forever preferred_lft forever
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Second&lt;/em&gt; Update &lt;code&gt;/etc/network/interfaces&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;source /etc/network/interfaces.d/*
 
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface - old entry
# allow-hotplug enp7s0
# iface enp7s0 inet dhcp

# The primary network interface - new entry
# DEVICENAME = enp7so for this pc and MYUSERNAME need to be $(whoami)
auto br0
iface br0 inet dhcp
  bridge_ports DEVICENAME tap0

auto tap0
iface tap0 inet dhcp
  pre-up tunctl -u MYUSERNAME -t tap0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Lastly&lt;/em&gt; Restart the networking service or reboot computer. Then change your VM NIC (Network Hardware) to &lt;code&gt;br0&lt;/code&gt; interface.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl restart networking
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Other Considerations&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;GPU Passthrough (Requires two Graphics Cards) - &lt;a href=&quot;https://github.com/foxlet/macOS-Simple-KVM/blob/master/docs/guide-passthrough.md&quot;&gt;https://github.com/foxlet/macOS-Simple-KVM/blob/master/docs/guide-passthrough.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Changing Screen Resolution - &lt;a href=&quot;https://github.com/foxlet/macOS-Simple-KVM/blob/master/docs/guide-screen-resolution.md&quot;&gt;https://github.com/foxlet/macOS-Simple-KVM/blob/master/docs/guide-screen-resolution.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Optimizing System Performance - &lt;a href=&quot;https://github.com/sickcodes/osx-optimizer&quot;&gt;https://github.com/sickcodes/osx-optimizer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Sound - Two methods, Pass the audio through HDMI if using GPU Passthrough OR Pass through a USB sound card that is macOS compatible
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Note: There is a way to use Voodoo kext or AppleALC, but it will crackle and sound terrible&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/dMLNP6FfhkI&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 03 Oct 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This shows you all the steps to install a MacOS VM in Linux QEMU using Virtual Machine Manager or virt-manager.&lt;/p&gt;

&lt;p&gt;Newer Source, but not as polished: &lt;a href=&quot;https://github.com/kholia/OSX-KVM&quot;&gt;https://github.com/kholia/OSX-KVM&lt;/a&gt;
Mac KVM Repository: &lt;a href=&quot;https://github.com/foxlet/macOS-Simple-KVM&quot;&gt;https://github.com/foxlet/macOS-Simple-KVM&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A modern Linux distribution. E.g. Ubuntu 20.04 LTS 64-bit or later.&lt;/li&gt;
&lt;li&gt;QEMU &amp;gt;= 4.2.0&lt;/li&gt;
&lt;li&gt;A CPU with Intel VT-x / AMD SVM support is required (&lt;code&gt;grep -e vmx -e svm /proc/cpuinfo&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Installation Preparation&lt;/h2&gt;
&lt;p&gt;Install QEMU and modify your user using &lt;a href=&quot;https://christitus.com/vm-setup-in-linux&quot;&gt;https://christitus.com/vm-setup-in-linux&lt;/a&gt; Guide.&lt;/p&gt;
&lt;p&gt;Clone this repository on your QEMU system. Files from this repository are used in the following steps.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd ~
git clone --depth 1 --recursive https://github.com/foxlet/macOS-Simple-KVM
cd macOS-Simple-KVM
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Installation Media&lt;/h2&gt;
&lt;p&gt;This downloads our installation media and I&apos;d recommend using Catalina for compatibility and performance.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;./jumpstart.sh --catalina
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: Modern NVIDIA GPUs are supported on HighSierra but not on later
versions of macOS. Recommended PCI Passthrough GPU is 5700XT as this works on Catalina and above. If you go with a 6000 Series Card only certain ones will work on Big Sur and Monterey, but not earlier releases.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Virtual Machine Setup&lt;/h2&gt;
&lt;p&gt;I recommend using Virtual Machine Manager (virt-manager) as it has a fantastic interface and Simple-KVM does a great job with their setup script. Simply type the following to get the macOS VM setup:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo ./make.sh --add
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;VM Modification&lt;/h3&gt;
&lt;p&gt;Before we can start out VM we have to have a hard drive to load it. You have two options: physical hard drive passthrough or qcow2 file.&lt;/p&gt;
&lt;p&gt;Obviously, the physical drive is considerably faster, but not possible in some instances such as laptops or if you can&apos;t afford a secondary drive.&lt;/p&gt;
&lt;h4&gt;Physical Hard Drive Passthrough&lt;/h4&gt;
&lt;p&gt;This is pretty simple as you just click Add Hardware -&amp;gt; Storage and then specify your hard drive.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/qemu/hdd.webp&quot; alt=&quot;hdd&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: while you can use drive short names &lt;code&gt;/dev/sda&lt;/code&gt; I&apos;d recommend using &lt;code&gt;/dev/disk/by-id/HARDDRIVESERIAL&lt;/code&gt; as this doesn&apos;t ever change.&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;QCOW2 File for Hard Drive&lt;/h4&gt;
&lt;p&gt;This is even simpler as you just click Add Hardware -&amp;gt; Storage and create new file. Just make sure you put it on at least a SSD or a nvme drive as it will be super slow if you don&apos;t.&lt;/p&gt;
&lt;h2&gt;Install Process&lt;/h2&gt;
&lt;p&gt;Boot your machine and select the OS Install Partition on startup.&lt;/p&gt;
&lt;p&gt;Use the &lt;code&gt;Disk Utility&lt;/code&gt; tool within the macOS installer to partition, and
format the virtual disk attached to the macOS VM.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TIP: Using a non-APFS filesystem is recommended.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Go ahead, and install macOS&lt;/p&gt;
&lt;h3&gt;Post-Installation&lt;/h3&gt;
&lt;h4&gt;Bridge Networking&lt;/h4&gt;
&lt;p&gt;*First_ find your card interface name&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ip a
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Example: (Interface name is enp7s0)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp7s0: &amp;lt;NO-CARRIER,BROADCAST,MULTICAST,UP&amp;gt; mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 24:bb:ee:55:22:33 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.99/24 brd 10.0.0.255 scope global
    valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
    valid_lft forever preferred_lft forever
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Second&lt;/em&gt; Update &lt;code&gt;/etc/network/interfaces&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;source /etc/network/interfaces.d/*
 
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface - old entry
# allow-hotplug enp7s0
# iface enp7s0 inet dhcp

# The primary network interface - new entry
# DEVICENAME = enp7so for this pc and MYUSERNAME need to be $(whoami)
auto br0
iface br0 inet dhcp
  bridge_ports DEVICENAME tap0

auto tap0
iface tap0 inet dhcp
  pre-up tunctl -u MYUSERNAME -t tap0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Lastly&lt;/em&gt; Restart the networking service or reboot computer. Then change your VM NIC (Network Hardware) to &lt;code&gt;br0&lt;/code&gt; interface.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl restart networking
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Other Considerations&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;GPU Passthrough (Requires two Graphics Cards) - &lt;a href=&quot;https://github.com/foxlet/macOS-Simple-KVM/blob/master/docs/guide-passthrough.md&quot;&gt;https://github.com/foxlet/macOS-Simple-KVM/blob/master/docs/guide-passthrough.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Changing Screen Resolution - &lt;a href=&quot;https://github.com/foxlet/macOS-Simple-KVM/blob/master/docs/guide-screen-resolution.md&quot;&gt;https://github.com/foxlet/macOS-Simple-KVM/blob/master/docs/guide-screen-resolution.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Optimizing System Performance - &lt;a href=&quot;https://github.com/sickcodes/osx-optimizer&quot;&gt;https://github.com/sickcodes/osx-optimizer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Sound - Two methods, Pass the audio through HDMI if using GPU Passthrough OR Pass through a USB sound card that is macOS compatible
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Note: There is a way to use Voodoo kext or AppleALC, but it will crackle and sound terrible&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/dMLNP6FfhkI&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Be a Better Programmer</title><link>https://christitus.com/be-a-better-programmer/</link><guid isPermaLink="true">https://christitus.com/be-a-better-programmer/</guid><description>&lt;p&gt;Many people want to be a programmer, but often find themselves flailing around in the dark. These are the things I&apos;ve done to help aid myself in coding more, learning new things, and just becoming a better programmer.&lt;/p&gt;

&lt;h2&gt;Use GitHub DAILY&lt;/h2&gt;
&lt;p&gt;Ok, maybe you don&apos;t have to use GitHub specifically but choose a platform or host your own git and use it as much as you can. Finish a feature or part of a project... COMMIT IT! This makes it very easy when you leave and come back to the project.&lt;/p&gt;
&lt;p&gt;Collaborators can find your project and contribute or even fix errors you have made, which helps you improve quickly.&lt;/p&gt;
&lt;h2&gt;Track Your Progress&lt;/h2&gt;
&lt;p&gt;I&apos;m constantly bouncing around and when I started I was getting discouraged. I&apos;d start a project, move on or get busy, and not look at it again or even code for weeks!&lt;/p&gt;
&lt;p&gt;To fix this, I ended up using a free tool called wakatime. This showed me what projects I was spending time on, editors I used, languages, and spit it all out on a dashboard.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/wakatime.webp&quot; alt=&quot;wakatime&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Check out my GitHub page @ &lt;a href=&quot;https://github.com/christitustech&quot;&gt;https://github.com/christitustech&lt;/a&gt; for all my stats and share yours down below in the comments! I am extremely competitive and I code more knowing I have people watching my progress.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: As a bonus, check out my hidden profile readme @ &lt;a href=&quot;https://github.com/christitustech/christitustech&quot;&gt;https://github.com/christitustech/christitustech&lt;/a&gt; and steal my auto generated setup!&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Setup Your Ideal Workflow&lt;/h2&gt;
&lt;p&gt;You have to like your work or at least enjoy parts of it. I follow this phrase and make sure I find something I do daily that I enjoy.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;Focus on the Journey, not the destination. Joy is not found in finishing an activity, but doing it!&quot; - Greg Anderson&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It&apos;s not to say that you will enjoy everything, because on the flip side of that phrase I made my own.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;You have to shovel a little shit in every job&quot; - Chris Titus&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The point being is there will be things you will hate, but just make sure it&apos;s not all bad. For example, I love VIM as it makes me just feel cool even though sometimes I am slower than if I just used VSCODE with the proper extension. The reason I do this is because of two reasons:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Eventually I will optimize VIM enough that I&apos;m faster than VSCODE&lt;/li&gt;
&lt;li&gt;I just feel awesome typing and coding in VIM&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This isn&apos;t a advertisement for you to use VIM! In fact, I&apos;d recommend you NOT use VIM unless these things interest you and you want to go down that rabbit hole. It depends on you!&lt;/p&gt;
&lt;p&gt;Focus on what works for you and what you enjoy as far as an environment. This is more about how you &lt;em&gt;FEEL&lt;/em&gt; than practical application. The better you feel in your workflow, the better your work product!&lt;/p&gt;
&lt;h2&gt;Set Goals&lt;/h2&gt;
&lt;p&gt;If you are going to improve in anything you need to have a goal. For me it is all about putting in the time consistently. That is true with everything in life that you go to learn. &lt;strong&gt;MORE TIME = BETTER RESULTS&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Example Goals:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;3 hours of coding per day&lt;/li&gt;
&lt;li&gt;500 Git Contributions in 2022&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once you set these goals look at how you are doing. I recommend both short term and long term goals like I listed above.&lt;/p&gt;
&lt;p&gt;Now, go code!&lt;/p&gt;
</description><pubDate>Fri, 30 Sep 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Many people want to be a programmer, but often find themselves flailing around in the dark. These are the things I&apos;ve done to help aid myself in coding more, learning new things, and just becoming a better programmer.&lt;/p&gt;

&lt;h2&gt;Use GitHub DAILY&lt;/h2&gt;
&lt;p&gt;Ok, maybe you don&apos;t have to use GitHub specifically but choose a platform or host your own git and use it as much as you can. Finish a feature or part of a project... COMMIT IT! This makes it very easy when you leave and come back to the project.&lt;/p&gt;
&lt;p&gt;Collaborators can find your project and contribute or even fix errors you have made, which helps you improve quickly.&lt;/p&gt;
&lt;h2&gt;Track Your Progress&lt;/h2&gt;
&lt;p&gt;I&apos;m constantly bouncing around and when I started I was getting discouraged. I&apos;d start a project, move on or get busy, and not look at it again or even code for weeks!&lt;/p&gt;
&lt;p&gt;To fix this, I ended up using a free tool called wakatime. This showed me what projects I was spending time on, editors I used, languages, and spit it all out on a dashboard.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/wakatime.webp&quot; alt=&quot;wakatime&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Check out my GitHub page @ &lt;a href=&quot;https://github.com/christitustech&quot;&gt;https://github.com/christitustech&lt;/a&gt; for all my stats and share yours down below in the comments! I am extremely competitive and I code more knowing I have people watching my progress.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: As a bonus, check out my hidden profile readme @ &lt;a href=&quot;https://github.com/christitustech/christitustech&quot;&gt;https://github.com/christitustech/christitustech&lt;/a&gt; and steal my auto generated setup!&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Setup Your Ideal Workflow&lt;/h2&gt;
&lt;p&gt;You have to like your work or at least enjoy parts of it. I follow this phrase and make sure I find something I do daily that I enjoy.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;Focus on the Journey, not the destination. Joy is not found in finishing an activity, but doing it!&quot; - Greg Anderson&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It&apos;s not to say that you will enjoy everything, because on the flip side of that phrase I made my own.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;You have to shovel a little shit in every job&quot; - Chris Titus&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The point being is there will be things you will hate, but just make sure it&apos;s not all bad. For example, I love VIM as it makes me just feel cool even though sometimes I am slower than if I just used VSCODE with the proper extension. The reason I do this is because of two reasons:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Eventually I will optimize VIM enough that I&apos;m faster than VSCODE&lt;/li&gt;
&lt;li&gt;I just feel awesome typing and coding in VIM&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This isn&apos;t a advertisement for you to use VIM! In fact, I&apos;d recommend you NOT use VIM unless these things interest you and you want to go down that rabbit hole. It depends on you!&lt;/p&gt;
&lt;p&gt;Focus on what works for you and what you enjoy as far as an environment. This is more about how you &lt;em&gt;FEEL&lt;/em&gt; than practical application. The better you feel in your workflow, the better your work product!&lt;/p&gt;
&lt;h2&gt;Set Goals&lt;/h2&gt;
&lt;p&gt;If you are going to improve in anything you need to have a goal. For me it is all about putting in the time consistently. That is true with everything in life that you go to learn. &lt;strong&gt;MORE TIME = BETTER RESULTS&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Example Goals:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;3 hours of coding per day&lt;/li&gt;
&lt;li&gt;500 Git Contributions in 2022&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once you set these goals look at how you are doing. I recommend both short term and long term goals like I listed above.&lt;/p&gt;
&lt;p&gt;Now, go code!&lt;/p&gt;
</content:encoded></item><item><title>ClickPaste the Best Program You Never Heard Of </title><link>https://christitus.com/clickpaste/</link><guid isPermaLink="true">https://christitus.com/clickpaste/</guid><description>&lt;p&gt;This program is free and open source, while being absolutely a life saver. I use it for VNC sessions and when dealing with VMs through my host computer.&lt;/p&gt;
&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1572985183594242048&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;GitHub Link: &lt;a href=&quot;https://github.com/Collective-Software/ClickPaste&quot;&gt;https://github.com/Collective-Software/ClickPaste&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Install&lt;/h2&gt;
&lt;p&gt;Simply extract the zip file from &lt;a href=&quot;https://github.com/Collective-Software/ClickPaste/releases&quot;&gt;https://github.com/Collective-Software/ClickPaste/releases&lt;/a&gt; and run ClickPaste.exe&lt;/p&gt;
&lt;h3&gt;Running at Startup&lt;/h3&gt;
&lt;p&gt;The best way I&apos;ve found is to create a shortcut to ClickPaste.exe then drag&amp;amp;drop that into shell:startup&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/startup.webp&quot; alt=&quot;startup&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Usage&lt;/h2&gt;
&lt;p&gt;First of course, you need to have some text in your clipboard. Then:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Click the target notification icon to begin:&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/Collective-Software/ClickPaste/blob/master/doc/ClickToTarget.png&quot;&gt;&lt;img src=&quot;https://github.com/Collective-Software/ClickPaste/raw/master/doc/ClickToTarget.png&quot; alt=&quot;Click to choose a target&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Click to choose a location you want to paste the text:&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/Collective-Software/ClickPaste/blob/master/doc/ClickToPaste.png&quot;&gt;&lt;img src=&quot;https://github.com/Collective-Software/ClickPaste/raw/master/doc/ClickToPaste.png&quot; alt=&quot;Click to choose a location to paste&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Your clipboard contents should be typed as keystrokes onto the window you selected:&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/Collective-Software/ClickPaste/blob/master/doc/Pasted.png&quot;&gt;&lt;img src=&quot;https://github.com/Collective-Software/ClickPaste/raw/master/doc/Pasted.png&quot; alt=&quot;Your clipboard is typed as keystrokes onto the window you selected&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/i7cgD_KCh10&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 28 Sep 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This program is free and open source, while being absolutely a life saver. I use it for VNC sessions and when dealing with VMs through my host computer.&lt;/p&gt;
&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1572985183594242048&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;GitHub Link: &lt;a href=&quot;https://github.com/Collective-Software/ClickPaste&quot;&gt;https://github.com/Collective-Software/ClickPaste&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Install&lt;/h2&gt;
&lt;p&gt;Simply extract the zip file from &lt;a href=&quot;https://github.com/Collective-Software/ClickPaste/releases&quot;&gt;https://github.com/Collective-Software/ClickPaste/releases&lt;/a&gt; and run ClickPaste.exe&lt;/p&gt;
&lt;h3&gt;Running at Startup&lt;/h3&gt;
&lt;p&gt;The best way I&apos;ve found is to create a shortcut to ClickPaste.exe then drag&amp;amp;drop that into shell:startup&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/startup.webp&quot; alt=&quot;startup&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Usage&lt;/h2&gt;
&lt;p&gt;First of course, you need to have some text in your clipboard. Then:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Click the target notification icon to begin:&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/Collective-Software/ClickPaste/blob/master/doc/ClickToTarget.png&quot;&gt;&lt;img src=&quot;https://github.com/Collective-Software/ClickPaste/raw/master/doc/ClickToTarget.png&quot; alt=&quot;Click to choose a target&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Click to choose a location you want to paste the text:&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/Collective-Software/ClickPaste/blob/master/doc/ClickToPaste.png&quot;&gt;&lt;img src=&quot;https://github.com/Collective-Software/ClickPaste/raw/master/doc/ClickToPaste.png&quot; alt=&quot;Click to choose a location to paste&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Your clipboard contents should be typed as keystrokes onto the window you selected:&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/Collective-Software/ClickPaste/blob/master/doc/Pasted.png&quot;&gt;&lt;img src=&quot;https://github.com/Collective-Software/ClickPaste/raw/master/doc/Pasted.png&quot; alt=&quot;Your clipboard is typed as keystrokes onto the window you selected&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/i7cgD_KCh10&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Setting up Windows inside Linux</title><link>https://christitus.com/windows-inside-linux/</link><guid isPermaLink="true">https://christitus.com/windows-inside-linux/</guid><description>&lt;p&gt;Running Windows inside of Linux is essential for those that are trying to convert to Linux. There will always be a transition period and need to fallback to Windows. It is also nice to have for many Windows only programs that you may need while inside Linux.&lt;/p&gt;

&lt;p&gt;If you haven&apos;t ever installed QEMU before, here is an article to get that setup @ &lt;a href=&quot;https://christitus.com/vm-setup-in-linux/&quot;&gt;https://christitus.com/vm-setup-in-linux/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Optimizing Windows VM&lt;/h2&gt;
&lt;p&gt;First you need to install the VirtIO tools, which can be difficult to track down. My favorite way is to run the exe file from &lt;a href=&quot;https://github.com/virtio-win/virtio-win-pkg-scripts&quot;&gt;https://github.com/virtio-win/virtio-win-pkg-scripts&lt;/a&gt; but many guides use the iso file also provided at this link.&lt;/p&gt;
&lt;p&gt;Another good resource for obtaining VirtIO drivers is from the proxmox wiki &lt;a href=&quot;https://pve.proxmox.com/wiki/Windows_VirtIO_Drivers&quot;&gt;https://pve.proxmox.com/wiki/Windows_VirtIO_Drivers&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Enable QEMU Guest Agent&lt;/h3&gt;
&lt;p&gt;Now you need to modify the VM to make use of the guest agent drivers. We need to add the qemu agent channel. Add Hardware -&amp;gt; Channel and copy these settings&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/qemu/guest-agent.webp&quot; alt=&quot;guest-agent&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Passing Devices Through&lt;/h2&gt;
&lt;p&gt;There are two main devices that you may want to pass through to a Windows VM. Hard Drives and Graphics Cards. Passing through a hard drive will give a good uplift in processing power and general VM response. The graphics card is very technical and frankly not recommended, but can be doable on some systems.&lt;/p&gt;
&lt;h3&gt;Dedicated Hard Drive&lt;/h3&gt;
&lt;p&gt;Simply select Add Hardware -&amp;gt; Storage and copy these settings&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/qemu/hdd.webp&quot; alt=&quot;hdd&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Dedicated Graphics Card&lt;/h3&gt;
&lt;p&gt;This is referred to as PCI Passthrough and can be dicey on some systems. I&apos;ve had some motherboards that can&apos;t do this and others that can. The best guide and scripts I&apos;ve found are from HikariKnight and his GitHub @ &lt;a href=&quot;https://github.com/HikariKnight/quickpassthrough&quot;&gt;https://github.com/HikariKnight/quickpassthrough&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/6KqqNsnkDlQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 26 Sep 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Running Windows inside of Linux is essential for those that are trying to convert to Linux. There will always be a transition period and need to fallback to Windows. It is also nice to have for many Windows only programs that you may need while inside Linux.&lt;/p&gt;

&lt;p&gt;If you haven&apos;t ever installed QEMU before, here is an article to get that setup @ &lt;a href=&quot;https://christitus.com/vm-setup-in-linux/&quot;&gt;https://christitus.com/vm-setup-in-linux/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Optimizing Windows VM&lt;/h2&gt;
&lt;p&gt;First you need to install the VirtIO tools, which can be difficult to track down. My favorite way is to run the exe file from &lt;a href=&quot;https://github.com/virtio-win/virtio-win-pkg-scripts&quot;&gt;https://github.com/virtio-win/virtio-win-pkg-scripts&lt;/a&gt; but many guides use the iso file also provided at this link.&lt;/p&gt;
&lt;p&gt;Another good resource for obtaining VirtIO drivers is from the proxmox wiki &lt;a href=&quot;https://pve.proxmox.com/wiki/Windows_VirtIO_Drivers&quot;&gt;https://pve.proxmox.com/wiki/Windows_VirtIO_Drivers&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Enable QEMU Guest Agent&lt;/h3&gt;
&lt;p&gt;Now you need to modify the VM to make use of the guest agent drivers. We need to add the qemu agent channel. Add Hardware -&amp;gt; Channel and copy these settings&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/qemu/guest-agent.webp&quot; alt=&quot;guest-agent&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Passing Devices Through&lt;/h2&gt;
&lt;p&gt;There are two main devices that you may want to pass through to a Windows VM. Hard Drives and Graphics Cards. Passing through a hard drive will give a good uplift in processing power and general VM response. The graphics card is very technical and frankly not recommended, but can be doable on some systems.&lt;/p&gt;
&lt;h3&gt;Dedicated Hard Drive&lt;/h3&gt;
&lt;p&gt;Simply select Add Hardware -&amp;gt; Storage and copy these settings&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/qemu/hdd.webp&quot; alt=&quot;hdd&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Dedicated Graphics Card&lt;/h3&gt;
&lt;p&gt;This is referred to as PCI Passthrough and can be dicey on some systems. I&apos;ve had some motherboards that can&apos;t do this and others that can. The best guide and scripts I&apos;ve found are from HikariKnight and his GitHub @ &lt;a href=&quot;https://github.com/HikariKnight/quickpassthrough&quot;&gt;https://github.com/HikariKnight/quickpassthrough&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/6KqqNsnkDlQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>You are using GitHub WRONG!</title><link>https://christitus.com/using-github-correctly/</link><guid isPermaLink="true">https://christitus.com/using-github-correctly/</guid><description>&lt;p&gt;GitHub is an incredible powerful tool, but using it in command line can be frustrating. So instead of doing something dumb like using SSH agent workarounds or Token exporting shenanigans to make &lt;code&gt;git&lt;/code&gt; work in command line. We are going to use an amazing utility called &lt;code&gt;gh&lt;/code&gt; to authenticate. &lt;/p&gt;
&lt;p&gt;Now before we continue, you might be thinking, I can just use password authentication. Well, Here is the error you get if you try that non-sense.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Support for password authentication was removed on August 13, 2021. 
Please use a personal access token instead.
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;GH Overview&lt;/h2&gt;
&lt;p&gt;This utility was created by GitHub directly to manage authentication and has a lot of fantastic features. So lets dive in...&lt;/p&gt;
&lt;h3&gt;Install GH&lt;/h3&gt;
&lt;p&gt;Debian Linux&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install gh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Windows&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;winget install -e GitHub.cli
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Mac&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;brew install gh
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;First Time Setup&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;gh auth login
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Follow all the prompts and I&apos;d recommend setting SSH as auth method.&lt;/p&gt;
&lt;h3&gt;Set CLI to use SSH&lt;/h3&gt;
&lt;p&gt;If you forgot to set the protocol during the setup in &lt;code&gt;gh auth login&lt;/code&gt; use this command to set it.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;gh config set -h github.com git_protocol ssh
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Set the Repo to use GH auth&lt;/h4&gt;
&lt;p&gt;Set the project repository for SSH auth&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git remote set-url origin git@github.com:ChrisTitusTech/project.git
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Using GitHub Desktop&lt;/h2&gt;
&lt;p&gt;There is nothing wrong with GitHub desktop and sometimes I use it when I&apos;m reviewing my commits or pushes. It is a great graphical representation of how fetch/pull or commit/push work on GitHub. However, it is considerably slower, than just typing it in via terminal with a simple git push or git pull. This also blurs the lines between &lt;code&gt;git add .&lt;/code&gt;, &lt;code&gt;git commit -a -m &quot;message&quot;&lt;/code&gt;, and &lt;code&gt;git push&lt;/code&gt; when adding to a project.&lt;/p&gt;
&lt;h2&gt;Using GitHub properly&lt;/h2&gt;
&lt;p&gt;If you are anything like me, when I started using GitHub I did so many things incorrectly and still do today! However, I&apos;m slowly seeing the error of my ways and these are the big things I missed.&lt;/p&gt;
&lt;h3&gt;Not combining git add, commit, and push&lt;/h3&gt;
&lt;p&gt;When I first started these three commands seemed like they all pretty much did the same thing. I JUST WANT TO ADD TO MY PROJECT! Why is it like this?&lt;/p&gt;
&lt;p&gt;Then I started doing some collaborative work and realized I&apos;m terrible and most other people are too on GitHub, because we are all doing it WRONG!&lt;/p&gt;
&lt;p&gt;So how should we be using &lt;code&gt;git&lt;/code&gt;?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;COMMIT OFTEN and after every change in code&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This should be everyone mantra, including me, but often I get caught up in my work and don&apos;t do it. So what is the big deal? Well, if you bundle a ton of different changes into one commit... you have to revert ALL those changes if you had one bad one. Breaking those up into different commits, you could just revert the bad code. That can literally save a project! I learned this when I bundled a ton of changes into my ArchTitus project and basically turned it into a spaghetti string of code that I hate looking at and debugging. To continue that project, I&apos;d have to rebase and wipe out a ton of progress I&apos;ve made and other people have contributed. This makes everyone mad and is simply not fun.&lt;/p&gt;
&lt;p&gt;So follow that golden rule and realize you will fail at it, but realize your failures and do better the next time is how we elevate ourselves to the next level.&lt;/p&gt;
&lt;h3&gt;Quick Aliases&lt;/h3&gt;
&lt;p&gt;These are some quality of life improvements that will make using git from command line so much better.&lt;/p&gt;
&lt;p&gt;I use bashrc these days and these are some aliases I added to my &lt;code&gt;~/.bashrc&lt;/code&gt; file.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;gcom() {
 git add .
 git commit -m &quot;$1&quot;
 }
lazyg() {
 git add .
 git commit -m &quot;$1&quot;
 git push
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now in a perfect world I would be using &lt;code&gt;gcom &quot;commit message&quot;&lt;/code&gt; several times a day and then finally using &lt;code&gt;lazyg &quot;last commit of the day&quot;&lt;/code&gt; to push my changes public after I&apos;m done. However, the world and myself are far from perfect, but understanding what perfection would look like will help you know when you aren&apos;t.&lt;/p&gt;
&lt;h3&gt;Helping Projects&lt;/h3&gt;
&lt;p&gt;A poorly documented issue is pointless and just gets closed in every project. Don&apos;t be that person! Document what you can and if you noticed a recent commit messed something up reference it by doing a copy paste of the Pull Request # like so. First, get to this screen by clicking &quot;## commits&quot; in top right of the project main page. Then copy the SHA from the &quot;bad&quot; commit.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/github/git-commits.webp&quot; alt=&quot;git-commit&quot; /&gt;&lt;/p&gt;
&lt;p&gt;From here, you simply make your issue and paste that long sha hash in where you want to reference it. Don&apos;t worry the numbers will be truncated and it will look awesome in the issue page.&lt;/p&gt;
&lt;p&gt;Also make sure you don&apos;t just put a WALL OF TEXT! Try to make your issue readable by breaking up your issue if it is more than several sentences long. This just makes it more readable and make it as concise as possible.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/f7xZivqLZxc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 23 Sep 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;GitHub is an incredible powerful tool, but using it in command line can be frustrating. So instead of doing something dumb like using SSH agent workarounds or Token exporting shenanigans to make &lt;code&gt;git&lt;/code&gt; work in command line. We are going to use an amazing utility called &lt;code&gt;gh&lt;/code&gt; to authenticate. &lt;/p&gt;
&lt;p&gt;Now before we continue, you might be thinking, I can just use password authentication. Well, Here is the error you get if you try that non-sense.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Support for password authentication was removed on August 13, 2021. 
Please use a personal access token instead.
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;GH Overview&lt;/h2&gt;
&lt;p&gt;This utility was created by GitHub directly to manage authentication and has a lot of fantastic features. So lets dive in...&lt;/p&gt;
&lt;h3&gt;Install GH&lt;/h3&gt;
&lt;p&gt;Debian Linux&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install gh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Windows&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;winget install -e GitHub.cli
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Mac&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;brew install gh
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;First Time Setup&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;gh auth login
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Follow all the prompts and I&apos;d recommend setting SSH as auth method.&lt;/p&gt;
&lt;h3&gt;Set CLI to use SSH&lt;/h3&gt;
&lt;p&gt;If you forgot to set the protocol during the setup in &lt;code&gt;gh auth login&lt;/code&gt; use this command to set it.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;gh config set -h github.com git_protocol ssh
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Set the Repo to use GH auth&lt;/h4&gt;
&lt;p&gt;Set the project repository for SSH auth&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git remote set-url origin git@github.com:ChrisTitusTech/project.git
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Using GitHub Desktop&lt;/h2&gt;
&lt;p&gt;There is nothing wrong with GitHub desktop and sometimes I use it when I&apos;m reviewing my commits or pushes. It is a great graphical representation of how fetch/pull or commit/push work on GitHub. However, it is considerably slower, than just typing it in via terminal with a simple git push or git pull. This also blurs the lines between &lt;code&gt;git add .&lt;/code&gt;, &lt;code&gt;git commit -a -m &quot;message&quot;&lt;/code&gt;, and &lt;code&gt;git push&lt;/code&gt; when adding to a project.&lt;/p&gt;
&lt;h2&gt;Using GitHub properly&lt;/h2&gt;
&lt;p&gt;If you are anything like me, when I started using GitHub I did so many things incorrectly and still do today! However, I&apos;m slowly seeing the error of my ways and these are the big things I missed.&lt;/p&gt;
&lt;h3&gt;Not combining git add, commit, and push&lt;/h3&gt;
&lt;p&gt;When I first started these three commands seemed like they all pretty much did the same thing. I JUST WANT TO ADD TO MY PROJECT! Why is it like this?&lt;/p&gt;
&lt;p&gt;Then I started doing some collaborative work and realized I&apos;m terrible and most other people are too on GitHub, because we are all doing it WRONG!&lt;/p&gt;
&lt;p&gt;So how should we be using &lt;code&gt;git&lt;/code&gt;?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;COMMIT OFTEN and after every change in code&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This should be everyone mantra, including me, but often I get caught up in my work and don&apos;t do it. So what is the big deal? Well, if you bundle a ton of different changes into one commit... you have to revert ALL those changes if you had one bad one. Breaking those up into different commits, you could just revert the bad code. That can literally save a project! I learned this when I bundled a ton of changes into my ArchTitus project and basically turned it into a spaghetti string of code that I hate looking at and debugging. To continue that project, I&apos;d have to rebase and wipe out a ton of progress I&apos;ve made and other people have contributed. This makes everyone mad and is simply not fun.&lt;/p&gt;
&lt;p&gt;So follow that golden rule and realize you will fail at it, but realize your failures and do better the next time is how we elevate ourselves to the next level.&lt;/p&gt;
&lt;h3&gt;Quick Aliases&lt;/h3&gt;
&lt;p&gt;These are some quality of life improvements that will make using git from command line so much better.&lt;/p&gt;
&lt;p&gt;I use bashrc these days and these are some aliases I added to my &lt;code&gt;~/.bashrc&lt;/code&gt; file.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;gcom() {
 git add .
 git commit -m &quot;$1&quot;
 }
lazyg() {
 git add .
 git commit -m &quot;$1&quot;
 git push
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now in a perfect world I would be using &lt;code&gt;gcom &quot;commit message&quot;&lt;/code&gt; several times a day and then finally using &lt;code&gt;lazyg &quot;last commit of the day&quot;&lt;/code&gt; to push my changes public after I&apos;m done. However, the world and myself are far from perfect, but understanding what perfection would look like will help you know when you aren&apos;t.&lt;/p&gt;
&lt;h3&gt;Helping Projects&lt;/h3&gt;
&lt;p&gt;A poorly documented issue is pointless and just gets closed in every project. Don&apos;t be that person! Document what you can and if you noticed a recent commit messed something up reference it by doing a copy paste of the Pull Request # like so. First, get to this screen by clicking &quot;## commits&quot; in top right of the project main page. Then copy the SHA from the &quot;bad&quot; commit.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/github/git-commits.webp&quot; alt=&quot;git-commit&quot; /&gt;&lt;/p&gt;
&lt;p&gt;From here, you simply make your issue and paste that long sha hash in where you want to reference it. Don&apos;t worry the numbers will be truncated and it will look awesome in the issue page.&lt;/p&gt;
&lt;p&gt;Also make sure you don&apos;t just put a WALL OF TEXT! Try to make your issue readable by breaking up your issue if it is more than several sentences long. This just makes it more readable and make it as concise as possible.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/f7xZivqLZxc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Auto Mount with SystemD</title><link>https://christitus.com/auto-mount-systemd/</link><guid isPermaLink="true">https://christitus.com/auto-mount-systemd/</guid><description>&lt;p&gt;This shows how to automount remote network drives using systemd and fstab&lt;/p&gt;

&lt;h2&gt;Automount using systemd&lt;/h2&gt;
&lt;p&gt;Sometimes partitions can fail to mount on startup and some options are needed to fix this. I&apos;ve had two instances where it was needed. One was on a slow 6 TB drive that timed out on occation during boot and I had to &lt;code&gt;sudo mount -a&lt;/code&gt; to get it to mount&lt;/p&gt;
&lt;p&gt;For this a simple option addition in fstab on a local disk looks like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;x-systemd.after=network-online.target,x-systemd.automount
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Next, I had problems with NFS shares not mounting and I had to expand these option to:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;x-systemd.after=network-online.target,x-systemd.automount,x-systemd.mount-timeout=30,_netdev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This makes the &lt;code&gt;/etc/fstab&lt;/code&gt; entry look like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;10.0.0.10:/volume2/Images  /media/images nfs x-systemd.after=network-online.target,x-systemd.automount,x-systemd.mount-timeout=30,_netdev 0 0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Source: &lt;a href=&quot;https://wiki.archlinux.org/title/Fstab#Automount_with_systemd&quot;&gt;https://wiki.archlinux.org/title/Fstab#Automount_with_systemd&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
</description><pubDate>Thu, 22 Sep 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This shows how to automount remote network drives using systemd and fstab&lt;/p&gt;

&lt;h2&gt;Automount using systemd&lt;/h2&gt;
&lt;p&gt;Sometimes partitions can fail to mount on startup and some options are needed to fix this. I&apos;ve had two instances where it was needed. One was on a slow 6 TB drive that timed out on occation during boot and I had to &lt;code&gt;sudo mount -a&lt;/code&gt; to get it to mount&lt;/p&gt;
&lt;p&gt;For this a simple option addition in fstab on a local disk looks like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;x-systemd.after=network-online.target,x-systemd.automount
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Next, I had problems with NFS shares not mounting and I had to expand these option to:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;x-systemd.after=network-online.target,x-systemd.automount,x-systemd.mount-timeout=30,_netdev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This makes the &lt;code&gt;/etc/fstab&lt;/code&gt; entry look like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;10.0.0.10:/volume2/Images  /media/images nfs x-systemd.after=network-online.target,x-systemd.automount,x-systemd.mount-timeout=30,_netdev 0 0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Source: &lt;a href=&quot;https://wiki.archlinux.org/title/Fstab#Automount_with_systemd&quot;&gt;https://wiki.archlinux.org/title/Fstab#Automount_with_systemd&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title>Should you switch from Windows 10 to Windows 11</title><link>https://christitus.com/win10-to-win11/</link><guid isPermaLink="true">https://christitus.com/win10-to-win11/</guid><description>&lt;p&gt;The question isn&apos;t if you should switch, but if you CAN switch. Windows 11 does a lot of things right as most of it&apos;s systems are identical to 10. However, there are some drawbacks which we need to dive into.&lt;/p&gt;
&lt;h2&gt;Windows 11 Requirements&lt;/h2&gt;
&lt;p&gt;There are two issues with Windows 11 that will catch some older computers.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CPU Requirement: Intel 8th Generation and AMD 2nd Generation&lt;/li&gt;
&lt;li&gt;UEFI Secure Boot with TPM 2.0 Chip&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;However, these requirements are artificial and can easily be bypassed. With these Steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Launch Command Prompt with Shift + F10&lt;/li&gt;
&lt;li&gt;Type &lt;code&gt;regedit&lt;/code&gt; and launch Reg Editor&lt;/li&gt;
&lt;li&gt;Add the following KEY (folder) HKEY_Local_Machine -&amp;gt; System -&amp;gt; Setup --- Name the key &lt;code&gt;MoSetup&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Add the following Value (DWORD) Name = &lt;code&gt;AllowUpgradesWithUnsupportedTPMOrCPU&lt;/code&gt;
Value = &lt;code&gt;1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Close Regedit and continue install&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Why Upgrade&lt;/h2&gt;
&lt;p&gt;Here are the main reason to upgade to Windows 11. &lt;strong&gt;The Look&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We can go round and round about the marketing of Microsoft and all the bullshit they like to say. However, at the end of the day if you want a new look and a cleaner looking OS... Windows 11 is it. The better sounds, rounded aesthetic, auto-hdr for games, and overall more cohesive visual experience is what Windows 11 does well.&lt;/p&gt;
&lt;p&gt;What about all the other features Microsoft shills say are important and are NOT?&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Performance - I have seen negligible performance gains and even worse performance in some instances&lt;/li&gt;
&lt;li&gt;Widgets - This just reminds of Vista sidebar all over again. They are all sizzle and no steak.&lt;/li&gt;
&lt;li&gt;Security - Another marketing ploy that promotes it being more secure. While technically true, it mainly applies to the startup of your pc with TPM and Secureboot. Which frankly, doesn&apos;t matter as I can easily crack your Windows security with it&apos;s terrible SAM file exploits that are well documented and present in Windows 11.&lt;/li&gt;
&lt;li&gt;Teams colloboration - Just more pre-installed crap that you probably won&apos;t use.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;These are all just meh points that I view the exact same as Windows 10.&lt;/p&gt;
&lt;h2&gt;Why NOT to Upgrade&lt;/h2&gt;
&lt;p&gt;Windows 11 may look objectively better, but there are also some downsides. Here are the big ones I hate.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Taskbar - It is just plain awful as it is based on a new UWP platform that isn&apos;t nearly as good as 10&apos;s taskbar. Also you can&apos;t move it to the left, right, or top like you can in 10.&lt;/li&gt;
&lt;li&gt;Context Menu - The new look might look cleaner, but is far less functional. I&apos;m working on a tweak to revert this back to the windows 10 menu&lt;/li&gt;
&lt;li&gt;Changing Default Apps is awful in Windows 11. Everything is extension based now, where it is program based in Windows 10.&lt;/li&gt;
&lt;li&gt;Windows 10 still has support until 2025, so don&apos;t be in a rush to switch.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/WBrh-9BdGVQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 21 Sep 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The question isn&apos;t if you should switch, but if you CAN switch. Windows 11 does a lot of things right as most of it&apos;s systems are identical to 10. However, there are some drawbacks which we need to dive into.&lt;/p&gt;
&lt;h2&gt;Windows 11 Requirements&lt;/h2&gt;
&lt;p&gt;There are two issues with Windows 11 that will catch some older computers.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CPU Requirement: Intel 8th Generation and AMD 2nd Generation&lt;/li&gt;
&lt;li&gt;UEFI Secure Boot with TPM 2.0 Chip&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;However, these requirements are artificial and can easily be bypassed. With these Steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Launch Command Prompt with Shift + F10&lt;/li&gt;
&lt;li&gt;Type &lt;code&gt;regedit&lt;/code&gt; and launch Reg Editor&lt;/li&gt;
&lt;li&gt;Add the following KEY (folder) HKEY_Local_Machine -&amp;gt; System -&amp;gt; Setup --- Name the key &lt;code&gt;MoSetup&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Add the following Value (DWORD) Name = &lt;code&gt;AllowUpgradesWithUnsupportedTPMOrCPU&lt;/code&gt;
Value = &lt;code&gt;1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Close Regedit and continue install&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Why Upgrade&lt;/h2&gt;
&lt;p&gt;Here are the main reason to upgade to Windows 11. &lt;strong&gt;The Look&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We can go round and round about the marketing of Microsoft and all the bullshit they like to say. However, at the end of the day if you want a new look and a cleaner looking OS... Windows 11 is it. The better sounds, rounded aesthetic, auto-hdr for games, and overall more cohesive visual experience is what Windows 11 does well.&lt;/p&gt;
&lt;p&gt;What about all the other features Microsoft shills say are important and are NOT?&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Performance - I have seen negligible performance gains and even worse performance in some instances&lt;/li&gt;
&lt;li&gt;Widgets - This just reminds of Vista sidebar all over again. They are all sizzle and no steak.&lt;/li&gt;
&lt;li&gt;Security - Another marketing ploy that promotes it being more secure. While technically true, it mainly applies to the startup of your pc with TPM and Secureboot. Which frankly, doesn&apos;t matter as I can easily crack your Windows security with it&apos;s terrible SAM file exploits that are well documented and present in Windows 11.&lt;/li&gt;
&lt;li&gt;Teams colloboration - Just more pre-installed crap that you probably won&apos;t use.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;These are all just meh points that I view the exact same as Windows 10.&lt;/p&gt;
&lt;h2&gt;Why NOT to Upgrade&lt;/h2&gt;
&lt;p&gt;Windows 11 may look objectively better, but there are also some downsides. Here are the big ones I hate.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Taskbar - It is just plain awful as it is based on a new UWP platform that isn&apos;t nearly as good as 10&apos;s taskbar. Also you can&apos;t move it to the left, right, or top like you can in 10.&lt;/li&gt;
&lt;li&gt;Context Menu - The new look might look cleaner, but is far less functional. I&apos;m working on a tweak to revert this back to the windows 10 menu&lt;/li&gt;
&lt;li&gt;Changing Default Apps is awful in Windows 11. Everything is extension based now, where it is program based in Windows 10.&lt;/li&gt;
&lt;li&gt;Windows 10 still has support until 2025, so don&apos;t be in a rush to switch.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/WBrh-9BdGVQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Linux for Beginners</title><link>https://christitus.com/linux-for-beginners/</link><guid isPermaLink="true">https://christitus.com/linux-for-beginners/</guid><description>&lt;p&gt;So you want to use Linux? It is truly an amazing operating system and probably my favorite one to use. However, it is not for everyone and you&apos;ll need to learn a few things before you can understand it.&lt;/p&gt;
&lt;h2&gt;Where to Start&lt;/h2&gt;
&lt;p&gt;Starting off in Linux is not an easy task and has the most extreme learning curve of ANY operating system because it has so many options. Most will say install X Distro. However, this just doesn&apos;t tell you the full story.&lt;/p&gt;
&lt;p&gt;The Linux desktop community is a strange, social awkward bunch that typically likes to troll people. It also has a tendency of over promising and under delivering. I say this to temper your expectations and realize Linux is a different animal from ANY other operating system. It has its own set of amazing software and when it comes to hardware it has some incompatibilities when coming from Windows.&lt;/p&gt;
&lt;p&gt;The start to your journey will begin with a distribution or a collection of all the tools that make a somewhat complete experience. Just know that every single thing has alternatives. Make notes of what you LIKE and DO NOT LIKE. Then change what you do not like to your needs.&lt;/p&gt;
&lt;p&gt;For a beginner, I highly recommend Linux Mint. It has a very friendly starting point and I want to walk through its install and components as while it&apos;s a great starting point, there are many things I do change to make it a good experience for me. Once you understand what you can change, this opens up many doors...&lt;/p&gt;
&lt;h2&gt;The Install&lt;/h2&gt;
&lt;p&gt;Lets get start with Downloading the ISO @ &lt;a href=&quot;https://www.linuxmint.com/download.php&quot;&gt;https://www.linuxmint.com/download.php&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Burn this to a USB Stick with Etcher @ &lt;a href=&quot;https://www.balena.io/etcher/&quot;&gt;https://www.balena.io/etcher/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Then boot to the USB stick in the PC you are installing Linux on. If this is your first time, I HIGHLY recommend to just boot into the Live environment to get your feet wet first and see if this is something you want to do. Otherwise, follow the prompts and erase your computer to move to Linux.&lt;/p&gt;
&lt;h2&gt;What to Change&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;File Managers&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Dolphin&lt;/li&gt;
&lt;li&gt;Thunar&lt;/li&gt;
&lt;li&gt;Nautilus&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Themes&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;lxappearance&lt;/li&gt;
&lt;li&gt;DE Settings&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Desktop Environments&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Cinnamon&lt;/li&gt;
&lt;li&gt;XFCE&lt;/li&gt;
&lt;li&gt;KDE&lt;/li&gt;
&lt;li&gt;GNOME&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Remote Access&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;TightVNC&lt;/li&gt;
&lt;li&gt;Remmina&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Terminals&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Kitty&lt;/li&gt;
&lt;li&gt;Terminator&lt;/li&gt;
&lt;li&gt;gnome-terminal&lt;/li&gt;
&lt;li&gt;konsole&lt;/li&gt;
&lt;li&gt;yakuake&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Windows App Alternatives&lt;/h2&gt;
&lt;p&gt;People will tell you these programs can work or &quot;kinda&quot; work, but it is an awful experience and if you need them, then you need Windows.&lt;/p&gt;
&lt;h3&gt;Adobe&lt;/h3&gt;
&lt;p&gt;PDF is one of those things that make the business world go round. Adobe has an iron grip in this realm, but for basic editing and simple viewing we can use these programs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;xpdf&lt;/li&gt;
&lt;li&gt;LibreOffice&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then there is the creative suite for video and photo. Photoshop, Premiere, etc... and there really isn&apos;t an equal in this area. Just basic alternatives that will work for beginners. So if you aren&apos;t a professional and just need to edit a little photo and video, here are your alternatives.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Photo&lt;/strong&gt; - GIMP&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Video&lt;/strong&gt; - Kdenlive&lt;/p&gt;
&lt;p&gt;I have used these programs exclusively for my first 500 videos on YouTube. They are good and I still use GIMP every day. However, the video editing on Linux is a bit of a joke. Yes, there are alternatives, but they just aren&apos;t very good. Kdenlive is great for beginners, but once you get into color correcting or complex transitions it will fall short. Openshot is another basic alternative, but I personally think Kdenlive is a bit better.&lt;/p&gt;
&lt;p&gt;The other software Linux evangelists recommend are frankly just for the extreme users. DaVinci Resolve is a good piece of software, but its installation and usage on Linux is dicey at best. Lightworks is better to install, but overall a worse piece of software than DaVinci Resolve. If you are a professional in the video industry you can set up a dedicated Linux workstation for DaVinci resolve to their specifications, but for the general user... it is just an awful experience.&lt;/p&gt;
&lt;h3&gt;Microsoft Office&lt;/h3&gt;
&lt;p&gt;This used to have a choke hold on business, but these days it really isn&apos;t needed. Frankly, I think G-Suite does a better job in a lot of ways, but Microsoft themselves offer a fantastic web experience. However, if you have to have a non-web based application, these programs are pretty darn amazing.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;LibreOffice&lt;/li&gt;
&lt;li&gt;FreeOffice&lt;/li&gt;
&lt;li&gt;OnlyOffice&lt;/li&gt;
&lt;li&gt;OpenOffice&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All of these applications are pretty darn good. The easiest to transition from Microsoft Office is FreeOffice. It&apos;s so alike that I&apos;m suprised they haven&apos;t been sued by Microsoft. However, the other alternatives are just as powerful and fantastic options.&lt;/p&gt;
&lt;h3&gt;Gaming&lt;/h3&gt;
&lt;p&gt;This one has made the most progress in the past couple years and is quite impressive. Linux has easily become the second best operating system for gaming. It has Steam support baked in and many alternatives for non-steam games. While steam games often install and play without any intervention, many non-steam games require a bit of tinkering to get functioning perfectly.&lt;/p&gt;
&lt;p&gt;The one massive drawback for gaming on Linux is the lack of support for many competitive shooter titles. It isn&apos;t that Linux can&apos;t play them, but the publishers refuse to enable Linux support in Easy Anti-Cheat, BattleEye, or Denuvo. There are a few exceptions with APEX Legends recently adding Linux support, but many refuse to like Destiny 2, Call of Duty, Battlefield, and more.&lt;/p&gt;
&lt;h4&gt;Compatibility&lt;/h4&gt;
&lt;p&gt;About 70% of windows games work on Linux. However you need to check &lt;a href=&quot;https://protondb.com&quot;&gt;https://protondb.com&lt;/a&gt; and &lt;a href=&quot;https://lutris.net&quot;&gt;https://lutris.net&lt;/a&gt; to make sure you game is working before you switch!&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This is merely a starting point to help you understand and take your first steps in to Linux. There is so much more to explore and even after using Linux daily for almost 5 years as my desktop, I am still discovering new things every day. It is an absolutely amazing Operating System with unlimited potential... It just relies on you the end-user to discover it.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/10f4899srvc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h3&gt;File System Video&lt;/h3&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/roES8iAaJEM&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h3&gt;YouTube Playlists to Watch&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Learning Linux Terminal (8 Videos) - &lt;a href=&quot;https://www.youtube.com/watch?v=XK81cfvrElg&amp;amp;list=PLc7fktTRMBozYfi4zlDeH0IdLdGImeOnO&quot;&gt;https://www.youtube.com/watch?v=XK81cfvrElg&amp;amp;list=PLc7fktTRMBozYfi4zlDeH0IdLdGImeOnO&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Windows to Linux Mint (7 Videos) - &lt;a href=&quot;https://www.youtube.com/watch?v=1hwWAOBOsJs&amp;amp;list=PLc7fktTRMBoxoDWkt0EzILkG4sCrEOT3e&quot;&gt;https://www.youtube.com/watch?v=1hwWAOBOsJs&amp;amp;list=PLc7fktTRMBoxoDWkt0EzILkG4sCrEOT3e&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description><pubDate>Mon, 19 Sep 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;So you want to use Linux? It is truly an amazing operating system and probably my favorite one to use. However, it is not for everyone and you&apos;ll need to learn a few things before you can understand it.&lt;/p&gt;
&lt;h2&gt;Where to Start&lt;/h2&gt;
&lt;p&gt;Starting off in Linux is not an easy task and has the most extreme learning curve of ANY operating system because it has so many options. Most will say install X Distro. However, this just doesn&apos;t tell you the full story.&lt;/p&gt;
&lt;p&gt;The Linux desktop community is a strange, social awkward bunch that typically likes to troll people. It also has a tendency of over promising and under delivering. I say this to temper your expectations and realize Linux is a different animal from ANY other operating system. It has its own set of amazing software and when it comes to hardware it has some incompatibilities when coming from Windows.&lt;/p&gt;
&lt;p&gt;The start to your journey will begin with a distribution or a collection of all the tools that make a somewhat complete experience. Just know that every single thing has alternatives. Make notes of what you LIKE and DO NOT LIKE. Then change what you do not like to your needs.&lt;/p&gt;
&lt;p&gt;For a beginner, I highly recommend Linux Mint. It has a very friendly starting point and I want to walk through its install and components as while it&apos;s a great starting point, there are many things I do change to make it a good experience for me. Once you understand what you can change, this opens up many doors...&lt;/p&gt;
&lt;h2&gt;The Install&lt;/h2&gt;
&lt;p&gt;Lets get start with Downloading the ISO @ &lt;a href=&quot;https://www.linuxmint.com/download.php&quot;&gt;https://www.linuxmint.com/download.php&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Burn this to a USB Stick with Etcher @ &lt;a href=&quot;https://www.balena.io/etcher/&quot;&gt;https://www.balena.io/etcher/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Then boot to the USB stick in the PC you are installing Linux on. If this is your first time, I HIGHLY recommend to just boot into the Live environment to get your feet wet first and see if this is something you want to do. Otherwise, follow the prompts and erase your computer to move to Linux.&lt;/p&gt;
&lt;h2&gt;What to Change&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;File Managers&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Dolphin&lt;/li&gt;
&lt;li&gt;Thunar&lt;/li&gt;
&lt;li&gt;Nautilus&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Themes&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;lxappearance&lt;/li&gt;
&lt;li&gt;DE Settings&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Desktop Environments&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Cinnamon&lt;/li&gt;
&lt;li&gt;XFCE&lt;/li&gt;
&lt;li&gt;KDE&lt;/li&gt;
&lt;li&gt;GNOME&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Remote Access&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;TightVNC&lt;/li&gt;
&lt;li&gt;Remmina&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Terminals&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Kitty&lt;/li&gt;
&lt;li&gt;Terminator&lt;/li&gt;
&lt;li&gt;gnome-terminal&lt;/li&gt;
&lt;li&gt;konsole&lt;/li&gt;
&lt;li&gt;yakuake&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Windows App Alternatives&lt;/h2&gt;
&lt;p&gt;People will tell you these programs can work or &quot;kinda&quot; work, but it is an awful experience and if you need them, then you need Windows.&lt;/p&gt;
&lt;h3&gt;Adobe&lt;/h3&gt;
&lt;p&gt;PDF is one of those things that make the business world go round. Adobe has an iron grip in this realm, but for basic editing and simple viewing we can use these programs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;xpdf&lt;/li&gt;
&lt;li&gt;LibreOffice&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then there is the creative suite for video and photo. Photoshop, Premiere, etc... and there really isn&apos;t an equal in this area. Just basic alternatives that will work for beginners. So if you aren&apos;t a professional and just need to edit a little photo and video, here are your alternatives.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Photo&lt;/strong&gt; - GIMP&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Video&lt;/strong&gt; - Kdenlive&lt;/p&gt;
&lt;p&gt;I have used these programs exclusively for my first 500 videos on YouTube. They are good and I still use GIMP every day. However, the video editing on Linux is a bit of a joke. Yes, there are alternatives, but they just aren&apos;t very good. Kdenlive is great for beginners, but once you get into color correcting or complex transitions it will fall short. Openshot is another basic alternative, but I personally think Kdenlive is a bit better.&lt;/p&gt;
&lt;p&gt;The other software Linux evangelists recommend are frankly just for the extreme users. DaVinci Resolve is a good piece of software, but its installation and usage on Linux is dicey at best. Lightworks is better to install, but overall a worse piece of software than DaVinci Resolve. If you are a professional in the video industry you can set up a dedicated Linux workstation for DaVinci resolve to their specifications, but for the general user... it is just an awful experience.&lt;/p&gt;
&lt;h3&gt;Microsoft Office&lt;/h3&gt;
&lt;p&gt;This used to have a choke hold on business, but these days it really isn&apos;t needed. Frankly, I think G-Suite does a better job in a lot of ways, but Microsoft themselves offer a fantastic web experience. However, if you have to have a non-web based application, these programs are pretty darn amazing.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;LibreOffice&lt;/li&gt;
&lt;li&gt;FreeOffice&lt;/li&gt;
&lt;li&gt;OnlyOffice&lt;/li&gt;
&lt;li&gt;OpenOffice&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All of these applications are pretty darn good. The easiest to transition from Microsoft Office is FreeOffice. It&apos;s so alike that I&apos;m suprised they haven&apos;t been sued by Microsoft. However, the other alternatives are just as powerful and fantastic options.&lt;/p&gt;
&lt;h3&gt;Gaming&lt;/h3&gt;
&lt;p&gt;This one has made the most progress in the past couple years and is quite impressive. Linux has easily become the second best operating system for gaming. It has Steam support baked in and many alternatives for non-steam games. While steam games often install and play without any intervention, many non-steam games require a bit of tinkering to get functioning perfectly.&lt;/p&gt;
&lt;p&gt;The one massive drawback for gaming on Linux is the lack of support for many competitive shooter titles. It isn&apos;t that Linux can&apos;t play them, but the publishers refuse to enable Linux support in Easy Anti-Cheat, BattleEye, or Denuvo. There are a few exceptions with APEX Legends recently adding Linux support, but many refuse to like Destiny 2, Call of Duty, Battlefield, and more.&lt;/p&gt;
&lt;h4&gt;Compatibility&lt;/h4&gt;
&lt;p&gt;About 70% of windows games work on Linux. However you need to check &lt;a href=&quot;https://protondb.com&quot;&gt;https://protondb.com&lt;/a&gt; and &lt;a href=&quot;https://lutris.net&quot;&gt;https://lutris.net&lt;/a&gt; to make sure you game is working before you switch!&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This is merely a starting point to help you understand and take your first steps in to Linux. There is so much more to explore and even after using Linux daily for almost 5 years as my desktop, I am still discovering new things every day. It is an absolutely amazing Operating System with unlimited potential... It just relies on you the end-user to discover it.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/10f4899srvc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h3&gt;File System Video&lt;/h3&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/roES8iAaJEM&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h3&gt;YouTube Playlists to Watch&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Learning Linux Terminal (8 Videos) - &lt;a href=&quot;https://www.youtube.com/watch?v=XK81cfvrElg&amp;amp;list=PLc7fktTRMBozYfi4zlDeH0IdLdGImeOnO&quot;&gt;https://www.youtube.com/watch?v=XK81cfvrElg&amp;amp;list=PLc7fktTRMBozYfi4zlDeH0IdLdGImeOnO&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Windows to Linux Mint (7 Videos) - &lt;a href=&quot;https://www.youtube.com/watch?v=1hwWAOBOsJs&amp;amp;list=PLc7fktTRMBoxoDWkt0EzILkG4sCrEOT3e&quot;&gt;https://www.youtube.com/watch?v=1hwWAOBOsJs&amp;amp;list=PLc7fktTRMBoxoDWkt0EzILkG4sCrEOT3e&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Fix LibGL Errors</title><link>https://christitus.com/fix-libGL-errors/</link><guid isPermaLink="true">https://christitus.com/fix-libGL-errors/</guid><description>&lt;p&gt;I recently had a debian install where Steam would not launch. Here is how I fixed it when it.&lt;/p&gt;
 _Note: This is for nVidia based GPU systems_
&lt;h2&gt;Error Screen&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/fix-libGL-error.webp&quot; alt=&quot;libGL-error&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;You are missing the following 32-bit libraries, and Steam may not run: libGL.so.1&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Packages Required&lt;/h2&gt;
&lt;p&gt;These packages are missing and will fix the above error.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt install libgl1-mesa-dri:i386 libgl1:i386
sudo apt-get upgrade steam -f
sudo apt install nvidia-driver-libs:i386
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Launch Steam&lt;/h2&gt;
&lt;p&gt;You now can launch steam and have it launch properly.&lt;/p&gt;
</description><pubDate>Thu, 08 Sep 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I recently had a debian install where Steam would not launch. Here is how I fixed it when it.&lt;/p&gt;
 _Note: This is for nVidia based GPU systems_
&lt;h2&gt;Error Screen&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/fix-libGL-error.webp&quot; alt=&quot;libGL-error&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;You are missing the following 32-bit libraries, and Steam may not run: libGL.so.1&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Packages Required&lt;/h2&gt;
&lt;p&gt;These packages are missing and will fix the above error.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt install libgl1-mesa-dri:i386 libgl1:i386
sudo apt-get upgrade steam -f
sudo apt install nvidia-driver-libs:i386
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Launch Steam&lt;/h2&gt;
&lt;p&gt;You now can launch steam and have it launch properly.&lt;/p&gt;
</content:encoded></item><item><title>Laptop Power Management</title><link>https://christitus.com/laptop-power-management/</link><guid isPermaLink="true">https://christitus.com/laptop-power-management/</guid><description>&lt;p&gt;Power management is a critical thing to understand in laptops. It&apos;s possible to buy an expensive laptop and end up not using it because of bad power management practices.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1560314657142964224&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;Also, not taking care of the thermals on a laptop will lead to less laptop life, shorter battery, and unpleasant heat generation.&lt;/p&gt;
&lt;h2&gt;Cooling Pad&lt;/h2&gt;
&lt;p&gt;Get any cheap amazon cooling pad from amazon. Here is a decent $30 one with lots of reviews. &lt;a href=&quot;https://amzn.to/3SV0Y0l&quot;&gt;https://amzn.to/3SV0Y0l&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Redo Thermal Paste&lt;/h2&gt;
&lt;p&gt;By default, almost any and every laptop has excessive thermal compound which leads to higher temperatures. Simply removing the excess compound and apply just a drop of &quot;good&quot; thermal paste will drop temps by about 10 Celsius.&lt;/p&gt;
&lt;p&gt;Here is an example of excess factory thermal compound application:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/laptop-power/thermal.webp&quot; alt=&quot;termal&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Adjust Max CPU Frequency&lt;/h2&gt;
&lt;p&gt;Set your CPU governor to the maximum power it can use. I NEVER use a 100% of the CPU and in most instances rarely break above 50% of its total power. Typically, around 2 GHz is perfect for my day-to-day work. When working on battery, I put this down to 25% on a beefy laptop to conserve most of its power. On weaker laptops, you&apos;d probably double these numbers. 100% on AC Power and 50% on Battery.&lt;/p&gt;
&lt;h3&gt;Linux - cpupower&lt;/h3&gt;
&lt;h4&gt;Required Dependencies&lt;/h4&gt;
&lt;p&gt;Install the following packages&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;cpupower&lt;/li&gt;
&lt;li&gt;acpi-support&lt;/li&gt;
&lt;li&gt;acpid&lt;/li&gt;
&lt;li&gt;acpi&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example Install:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;apt-get install acpi-support acpid acpi linux-cpupower cpufrequtils
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Setting Min/Max Power Example&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;cpupower frequency-set -g powersave -d 0.8G -u 1.2G
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Check Frequency&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;cpufreq-info
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Disable Turbo&lt;/h3&gt;
&lt;p&gt;Turbo will draw more power and reduce battery life while increasing CPU temperature.&lt;/p&gt;
&lt;p&gt;Run the following from a root user:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;echo 1 &amp;gt; /sys/devices/system/cpu/intel_pstate/no_turbo
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Turn off CPU Cores&lt;/h3&gt;
&lt;p&gt;The more CPU cores that your laptop uses, the power it will draw. On higher end laptops you can see as big as a 75% savings and extend the battery life x3.&lt;/p&gt;
&lt;p&gt;Taking a CPU core offline (&lt;em&gt;Note: you can&apos;t offline cpu0&lt;/em&gt;)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;echo 0 &amp;gt; /sys/devices/system/cpu/cpu#/online
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To disable cores above 4 threads, run the following in a bash script:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;for ((i=4;i&amp;lt;$(nproc);i++)); do echo 0 &amp;gt; /sys/devices/system/cpu/cpu$i/online; done
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Use CPULIMIT to Constrain Apps&lt;/h3&gt;
&lt;h4&gt;Install&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install cpulimit
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Adjust EXEC commands in .desktop&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;cpulimit --limit 70 /usr/bin/google-chrome-bin
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: This would limit CPU usage for Google Chrome to 70%&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Linux - adjust GPU power&lt;/h3&gt;
&lt;p&gt;There are two methods for adjusting the power usage your GPU uses. I personally use both depending on the laptop, but eGPU&apos;s will eat up a battery laptop in no time.&lt;/p&gt;
&lt;h4&gt;Manually adjust MHz of GPU&lt;/h4&gt;
&lt;p&gt;Set the following variables:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/sys/class/drm/card0/gt_max_freq_mhz&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/sys/class/drm/card0/gt_boost_freq_mhz&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Using cat to display current MHz and then simply echo the new lower value to these variables.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;echo &quot;1000&quot; &amp;gt; /sys/class/drm/card0/gt_max_freq_mhz
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Turning off GPU with Prime-select&lt;/h4&gt;
&lt;p&gt;While there are technically 3 options, I recommend only using NVIDIA and intel, as on-demand doesn&apos;t work very well.&lt;/p&gt;
&lt;h4&gt;Turning off GPU with Envycontrol&lt;/h4&gt;
&lt;p&gt;Cool python project that rebuilds the init system to exclude nvidia.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/geminis3/EnvyControl&quot;&gt;https://github.com/geminis3/EnvyControl&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Windows - GUI Power Management&lt;/h3&gt;
&lt;p&gt;Launch the GUI power panel with Start ⇾ Run &lt;code&gt;powercfg.cpl&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/laptop-power/win-power.webp&quot; alt=&quot;win-power&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Then change the Min / Max CPU Power. I typically set these to 5% Min and 50% Max, but on weaker laptops you can set these higher.&lt;/p&gt;
&lt;h3&gt;Windows - AutoHotkey Script&lt;/h3&gt;
&lt;p&gt;This script sets the max CPU state when plugged in to the wall (AC Power) and when it runs on battery (DC Power).&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;PowerWriteProcessorStateValueIndex(50, &quot;AC&quot;)
PowerWriteProcessorStateValueIndex(25, &quot;DC&quot;)
ExitApp

;---------------------
PowerWriteProcessorStateValueIndex(Max := &quot;&quot;, Mode := &quot;&quot;) {
 l:=PowerEnumeratePlans(ActivePlan), VarSetCapacity(GUID_ACTIVE_POWER_SAVING, 16, 0), VarSetCapacity(GUID_PROCESSOR_SETTINGS_SUBGROUP, 16, 0)
 , DllCall(&quot;Ole32.dll\CLSIDFromString&quot;, &quot;WStr&quot;, &quot;{&quot; ActivePlan.GUID &quot;}&quot;, &quot;Ptr&quot;, &amp;amp;GUID_ACTIVE_POWER_SAVING), VarSetCapacity(GUID_PROCESSOR_THROTTLE_MAXIMUM, 16, 0)
 , DllCall(&quot;Ole32.dll\CLSIDFromString&quot;, &quot;WStr&quot;, &quot;{54533251-82be-4824-96c1-47b60b740d00}&quot;, &quot;Ptr&quot;, &amp;amp;GUID_PROCESSOR_SETTINGS_SUBGROUP)
 , DllCall(&quot;Ole32.dll\CLSIDFromString&quot;, &quot;WStr&quot;, &quot;{BC5038F7-23E0-4960-96DA-33ABAF5935EC}&quot;, &quot;Ptr&quot;, &amp;amp;GUID_PROCESSOR_THROTTLE_MAXIMUM)
 , DllCall(&quot;PowrProf.dll\PowerWrite&quot; Mode &quot;ValueIndex&quot;, &quot;Ptr&quot;, 0, &quot;Ptr&quot;, &amp;amp;GUID_ACTIVE_POWER_SAVING
 , &quot;Ptr&quot;, &amp;amp;GUID_PROCESSOR_SETTINGS_SUBGROUP, &quot;Ptr&quot;, &amp;amp;GUID_PROCESSOR_THROTTLE_MAXIMUM, &quot;UInt&quot;, Max, &quot;UInt&quot;)
 for k, v in l
  if !(v.Default) {
   RunWait, % ComSpec &quot; /c powercfg /s &quot; v.GUID,, Hide
   break
  } RunWait, % ComSpec &quot; /c powercfg /s &quot; ActivePlan.GUID,, Hide
}

;------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

;enumerates all power plans
;for k, v in PowerEnumeratePlans()
; MsgBox % &quot;#&quot; k &quot;`nGUID: &quot; v.GUID &quot;`Name: &quot; v.Name &quot;`nDefault?: &quot; v.Default
PowerEnumeratePlans(ByRef ActivePlan := &quot;&quot;) {
 List := {}
 for k, v in StrSplit(CMD(&quot;powercfg /l&quot;), &quot;:&quot;, A_Space A_Tab)
  if (A_Index&amp;gt;1) {
   Info := {}, Info.GUID := SubStr(Trim(v), 1, 36), Info.Default := !!InStr(v, &quot;*&quot;)
   , Info.Name := Trim(StrSplit(SubStr(v, InStr(v, &quot;(&quot;)+1), &quot;)&quot;)[1]), List.Push(Info)
   if (Info.Default)
    ActivePlan := Info
  } return List
}

;executes cmd command and return the result
CMD(CMD := &quot;&quot;, Encoding := &quot;UTF-8&quot;, ByRef ExitCode := &quot;&quot;) {
 DllCall(&quot;Kernel32.dll\CreatePipe&quot;, &quot;PtrP&quot;, hReadPipe, &quot;PtrP&quot;, hWritePipe, &quot;Ptr&quot;, 0, &quot;UInt&quot;, 0)
 , DllCall(&quot;Kernel32.dll\SetHandleInformation&quot;, &quot;Ptr&quot;, hWritePipe, &quot;UInt&quot;, 1, &quot;UInt&quot;, 1)
 , Size := VarSetCapacity(STARTUPINFO, A_PtrSize=4?68:104, 0), NumPut(Size, STARTUPINFO, 0, &quot;UInt&quot;)
    , NumPut(0x100, STARTUPINFO, A_PtrSize=4?44:60, &quot;UInt&quot;), NumPut(hStdInRd, STARTUPINFO, A_PtrSize=4?56:80, &quot;Ptr&quot;)
    , NumPut(hWritePipe, STARTUPINFO, A_PtrSize=4?60:88, &quot;Ptr&quot;), NumPut(hWritePipe, STARTUPINFO, A_PtrSize=4?64:96, &quot;Ptr&quot;)
 , pi := CreateProcess(, ComSpec &quot; /c &quot; CMD,,,, 0x08000000,,, &amp;amp;STARTUPINFO)
 , DllCall(&quot;Kernel32.dll\CloseHandle&quot;, &quot;Ptr&quot;, hWritePipe), Size := VarSetCapacity(Buff, 4095)
 while DllCall(&quot;Kernel32.dll\ReadFile&quot;, &quot;Ptr&quot;, hReadPipe, &quot;Ptr&quot;, &amp;amp;Buff, &quot;UInt&quot;, Size, &quot;PtrP&quot;, Bytes, &quot;Ptr&quot;, 0)
        OutputVar .= StrGet(&amp;amp;Buff, Bytes, Encoding)
 DllCall(&quot;Kernel32.dll\CloseHandle&quot;, &quot;Ptr&quot;, pi.handle), DllCall(&quot;Kernel32.dll\CloseHandle&quot;, &quot;Ptr&quot;, hReadPipe)
 return OutputVar, DllCall(&quot;Kernel32.dll\GetExitCodeProcess&quot;, &quot;Ptr&quot;, pi.handle, &quot;UIntP&quot;, ExitCode)
} CreateProcess(ApplicationName := &quot;&quot;, ByRef CommandLine := &quot;&quot;, ProcessAttributes := 0, ThreadAttributes := 0, InheritHandles := true, CreationFlags := 0x08000000, Environment := 0, CurrentDirectory := &quot;&quot;, StartupInfo := 0) {
 VarSetCapacity(PROCESS_INFORMATION, A_PtrSize=4?16:24, 0)
 , r := DllCall(&quot;Kernel32.dll\CreateProcess&quot;, &quot;Ptr&quot;, ApplicationName=&quot;&quot;?0:&amp;amp;ApplicationName, &quot;Ptr&quot;, CommandLine=&quot;&quot;?0:&amp;amp;CommandLine
 , &quot;Ptr&quot;, ProcessAttributes, &quot;Ptr&quot;, ThreadAttributes, &quot;Int&quot;, !!InheritHandles, &quot;UInt&quot;, CreationFlags, &quot;Ptr&quot;, Environment, &quot;Ptr&quot;, CurrentDirectory=&quot;&quot;?0:&amp;amp;CurrentDirectory
 , &quot;Ptr&quot;, StartupInfo, &quot;Ptr&quot;, &amp;amp;PROCESS_INFORMATION)
 return r?{HANDLE: NumGet(PROCESS_INFORMATION, 0, &quot;Ptr&quot;), hThread: NumGet(PROCESS_INFORMATION, A_PtrSize, &quot;Ptr&quot;)
 , ID: NumGet(PROCESS_INFORMATION, A_PtrSize=4?8:16, &quot;Ptr&quot;), ThreadID: NumGet(PROCESS_INFORMATION, A_PtrSize=4?12:24, &quot;Ptr&quot;)}:0, ErrorLevel := !r
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/B1iRxoyT4EA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 26 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Power management is a critical thing to understand in laptops. It&apos;s possible to buy an expensive laptop and end up not using it because of bad power management practices.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1560314657142964224&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;Also, not taking care of the thermals on a laptop will lead to less laptop life, shorter battery, and unpleasant heat generation.&lt;/p&gt;
&lt;h2&gt;Cooling Pad&lt;/h2&gt;
&lt;p&gt;Get any cheap amazon cooling pad from amazon. Here is a decent $30 one with lots of reviews. &lt;a href=&quot;https://amzn.to/3SV0Y0l&quot;&gt;https://amzn.to/3SV0Y0l&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Redo Thermal Paste&lt;/h2&gt;
&lt;p&gt;By default, almost any and every laptop has excessive thermal compound which leads to higher temperatures. Simply removing the excess compound and apply just a drop of &quot;good&quot; thermal paste will drop temps by about 10 Celsius.&lt;/p&gt;
&lt;p&gt;Here is an example of excess factory thermal compound application:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/laptop-power/thermal.webp&quot; alt=&quot;termal&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Adjust Max CPU Frequency&lt;/h2&gt;
&lt;p&gt;Set your CPU governor to the maximum power it can use. I NEVER use a 100% of the CPU and in most instances rarely break above 50% of its total power. Typically, around 2 GHz is perfect for my day-to-day work. When working on battery, I put this down to 25% on a beefy laptop to conserve most of its power. On weaker laptops, you&apos;d probably double these numbers. 100% on AC Power and 50% on Battery.&lt;/p&gt;
&lt;h3&gt;Linux - cpupower&lt;/h3&gt;
&lt;h4&gt;Required Dependencies&lt;/h4&gt;
&lt;p&gt;Install the following packages&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;cpupower&lt;/li&gt;
&lt;li&gt;acpi-support&lt;/li&gt;
&lt;li&gt;acpid&lt;/li&gt;
&lt;li&gt;acpi&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example Install:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;apt-get install acpi-support acpid acpi linux-cpupower cpufrequtils
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Setting Min/Max Power Example&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;cpupower frequency-set -g powersave -d 0.8G -u 1.2G
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Check Frequency&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;cpufreq-info
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Disable Turbo&lt;/h3&gt;
&lt;p&gt;Turbo will draw more power and reduce battery life while increasing CPU temperature.&lt;/p&gt;
&lt;p&gt;Run the following from a root user:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;echo 1 &amp;gt; /sys/devices/system/cpu/intel_pstate/no_turbo
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Turn off CPU Cores&lt;/h3&gt;
&lt;p&gt;The more CPU cores that your laptop uses, the power it will draw. On higher end laptops you can see as big as a 75% savings and extend the battery life x3.&lt;/p&gt;
&lt;p&gt;Taking a CPU core offline (&lt;em&gt;Note: you can&apos;t offline cpu0&lt;/em&gt;)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;echo 0 &amp;gt; /sys/devices/system/cpu/cpu#/online
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To disable cores above 4 threads, run the following in a bash script:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;for ((i=4;i&amp;lt;$(nproc);i++)); do echo 0 &amp;gt; /sys/devices/system/cpu/cpu$i/online; done
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Use CPULIMIT to Constrain Apps&lt;/h3&gt;
&lt;h4&gt;Install&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install cpulimit
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Adjust EXEC commands in .desktop&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;cpulimit --limit 70 /usr/bin/google-chrome-bin
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: This would limit CPU usage for Google Chrome to 70%&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Linux - adjust GPU power&lt;/h3&gt;
&lt;p&gt;There are two methods for adjusting the power usage your GPU uses. I personally use both depending on the laptop, but eGPU&apos;s will eat up a battery laptop in no time.&lt;/p&gt;
&lt;h4&gt;Manually adjust MHz of GPU&lt;/h4&gt;
&lt;p&gt;Set the following variables:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/sys/class/drm/card0/gt_max_freq_mhz&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/sys/class/drm/card0/gt_boost_freq_mhz&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Using cat to display current MHz and then simply echo the new lower value to these variables.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;echo &quot;1000&quot; &amp;gt; /sys/class/drm/card0/gt_max_freq_mhz
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Turning off GPU with Prime-select&lt;/h4&gt;
&lt;p&gt;While there are technically 3 options, I recommend only using NVIDIA and intel, as on-demand doesn&apos;t work very well.&lt;/p&gt;
&lt;h4&gt;Turning off GPU with Envycontrol&lt;/h4&gt;
&lt;p&gt;Cool python project that rebuilds the init system to exclude nvidia.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/geminis3/EnvyControl&quot;&gt;https://github.com/geminis3/EnvyControl&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Windows - GUI Power Management&lt;/h3&gt;
&lt;p&gt;Launch the GUI power panel with Start ⇾ Run &lt;code&gt;powercfg.cpl&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/laptop-power/win-power.webp&quot; alt=&quot;win-power&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Then change the Min / Max CPU Power. I typically set these to 5% Min and 50% Max, but on weaker laptops you can set these higher.&lt;/p&gt;
&lt;h3&gt;Windows - AutoHotkey Script&lt;/h3&gt;
&lt;p&gt;This script sets the max CPU state when plugged in to the wall (AC Power) and when it runs on battery (DC Power).&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;PowerWriteProcessorStateValueIndex(50, &quot;AC&quot;)
PowerWriteProcessorStateValueIndex(25, &quot;DC&quot;)
ExitApp

;---------------------
PowerWriteProcessorStateValueIndex(Max := &quot;&quot;, Mode := &quot;&quot;) {
 l:=PowerEnumeratePlans(ActivePlan), VarSetCapacity(GUID_ACTIVE_POWER_SAVING, 16, 0), VarSetCapacity(GUID_PROCESSOR_SETTINGS_SUBGROUP, 16, 0)
 , DllCall(&quot;Ole32.dll\CLSIDFromString&quot;, &quot;WStr&quot;, &quot;{&quot; ActivePlan.GUID &quot;}&quot;, &quot;Ptr&quot;, &amp;amp;GUID_ACTIVE_POWER_SAVING), VarSetCapacity(GUID_PROCESSOR_THROTTLE_MAXIMUM, 16, 0)
 , DllCall(&quot;Ole32.dll\CLSIDFromString&quot;, &quot;WStr&quot;, &quot;{54533251-82be-4824-96c1-47b60b740d00}&quot;, &quot;Ptr&quot;, &amp;amp;GUID_PROCESSOR_SETTINGS_SUBGROUP)
 , DllCall(&quot;Ole32.dll\CLSIDFromString&quot;, &quot;WStr&quot;, &quot;{BC5038F7-23E0-4960-96DA-33ABAF5935EC}&quot;, &quot;Ptr&quot;, &amp;amp;GUID_PROCESSOR_THROTTLE_MAXIMUM)
 , DllCall(&quot;PowrProf.dll\PowerWrite&quot; Mode &quot;ValueIndex&quot;, &quot;Ptr&quot;, 0, &quot;Ptr&quot;, &amp;amp;GUID_ACTIVE_POWER_SAVING
 , &quot;Ptr&quot;, &amp;amp;GUID_PROCESSOR_SETTINGS_SUBGROUP, &quot;Ptr&quot;, &amp;amp;GUID_PROCESSOR_THROTTLE_MAXIMUM, &quot;UInt&quot;, Max, &quot;UInt&quot;)
 for k, v in l
  if !(v.Default) {
   RunWait, % ComSpec &quot; /c powercfg /s &quot; v.GUID,, Hide
   break
  } RunWait, % ComSpec &quot; /c powercfg /s &quot; ActivePlan.GUID,, Hide
}

;------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

;enumerates all power plans
;for k, v in PowerEnumeratePlans()
; MsgBox % &quot;#&quot; k &quot;`nGUID: &quot; v.GUID &quot;`Name: &quot; v.Name &quot;`nDefault?: &quot; v.Default
PowerEnumeratePlans(ByRef ActivePlan := &quot;&quot;) {
 List := {}
 for k, v in StrSplit(CMD(&quot;powercfg /l&quot;), &quot;:&quot;, A_Space A_Tab)
  if (A_Index&amp;gt;1) {
   Info := {}, Info.GUID := SubStr(Trim(v), 1, 36), Info.Default := !!InStr(v, &quot;*&quot;)
   , Info.Name := Trim(StrSplit(SubStr(v, InStr(v, &quot;(&quot;)+1), &quot;)&quot;)[1]), List.Push(Info)
   if (Info.Default)
    ActivePlan := Info
  } return List
}

;executes cmd command and return the result
CMD(CMD := &quot;&quot;, Encoding := &quot;UTF-8&quot;, ByRef ExitCode := &quot;&quot;) {
 DllCall(&quot;Kernel32.dll\CreatePipe&quot;, &quot;PtrP&quot;, hReadPipe, &quot;PtrP&quot;, hWritePipe, &quot;Ptr&quot;, 0, &quot;UInt&quot;, 0)
 , DllCall(&quot;Kernel32.dll\SetHandleInformation&quot;, &quot;Ptr&quot;, hWritePipe, &quot;UInt&quot;, 1, &quot;UInt&quot;, 1)
 , Size := VarSetCapacity(STARTUPINFO, A_PtrSize=4?68:104, 0), NumPut(Size, STARTUPINFO, 0, &quot;UInt&quot;)
    , NumPut(0x100, STARTUPINFO, A_PtrSize=4?44:60, &quot;UInt&quot;), NumPut(hStdInRd, STARTUPINFO, A_PtrSize=4?56:80, &quot;Ptr&quot;)
    , NumPut(hWritePipe, STARTUPINFO, A_PtrSize=4?60:88, &quot;Ptr&quot;), NumPut(hWritePipe, STARTUPINFO, A_PtrSize=4?64:96, &quot;Ptr&quot;)
 , pi := CreateProcess(, ComSpec &quot; /c &quot; CMD,,,, 0x08000000,,, &amp;amp;STARTUPINFO)
 , DllCall(&quot;Kernel32.dll\CloseHandle&quot;, &quot;Ptr&quot;, hWritePipe), Size := VarSetCapacity(Buff, 4095)
 while DllCall(&quot;Kernel32.dll\ReadFile&quot;, &quot;Ptr&quot;, hReadPipe, &quot;Ptr&quot;, &amp;amp;Buff, &quot;UInt&quot;, Size, &quot;PtrP&quot;, Bytes, &quot;Ptr&quot;, 0)
        OutputVar .= StrGet(&amp;amp;Buff, Bytes, Encoding)
 DllCall(&quot;Kernel32.dll\CloseHandle&quot;, &quot;Ptr&quot;, pi.handle), DllCall(&quot;Kernel32.dll\CloseHandle&quot;, &quot;Ptr&quot;, hReadPipe)
 return OutputVar, DllCall(&quot;Kernel32.dll\GetExitCodeProcess&quot;, &quot;Ptr&quot;, pi.handle, &quot;UIntP&quot;, ExitCode)
} CreateProcess(ApplicationName := &quot;&quot;, ByRef CommandLine := &quot;&quot;, ProcessAttributes := 0, ThreadAttributes := 0, InheritHandles := true, CreationFlags := 0x08000000, Environment := 0, CurrentDirectory := &quot;&quot;, StartupInfo := 0) {
 VarSetCapacity(PROCESS_INFORMATION, A_PtrSize=4?16:24, 0)
 , r := DllCall(&quot;Kernel32.dll\CreateProcess&quot;, &quot;Ptr&quot;, ApplicationName=&quot;&quot;?0:&amp;amp;ApplicationName, &quot;Ptr&quot;, CommandLine=&quot;&quot;?0:&amp;amp;CommandLine
 , &quot;Ptr&quot;, ProcessAttributes, &quot;Ptr&quot;, ThreadAttributes, &quot;Int&quot;, !!InheritHandles, &quot;UInt&quot;, CreationFlags, &quot;Ptr&quot;, Environment, &quot;Ptr&quot;, CurrentDirectory=&quot;&quot;?0:&amp;amp;CurrentDirectory
 , &quot;Ptr&quot;, StartupInfo, &quot;Ptr&quot;, &amp;amp;PROCESS_INFORMATION)
 return r?{HANDLE: NumGet(PROCESS_INFORMATION, 0, &quot;Ptr&quot;), hThread: NumGet(PROCESS_INFORMATION, A_PtrSize, &quot;Ptr&quot;)
 , ID: NumGet(PROCESS_INFORMATION, A_PtrSize=4?8:16, &quot;Ptr&quot;), ThreadID: NumGet(PROCESS_INFORMATION, A_PtrSize=4?12:24, &quot;Ptr&quot;)}:0, ErrorLevel := !r
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/B1iRxoyT4EA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Is Windows Bad</title><link>https://christitus.com/is-windows-bad/</link><guid isPermaLink="true">https://christitus.com/is-windows-bad/</guid><description>&lt;p&gt;It&apos;s what we know. Windows is a tool and has evolved over the years while dominating the PC Market since the 90s. So it begs the question, is it bad?&lt;/p&gt;

&lt;h2&gt;What it does well&lt;/h2&gt;
&lt;p&gt;There are certain things Windows does better than any other OS. The operating system itself has an amazing assortment of compatibility and gaming.&lt;/p&gt;
&lt;p&gt;If you want to play the most software and games that works with all your hardware, Windows is your best bet and that isn&apos;t changing anytime soon.&lt;/p&gt;
&lt;h2&gt;Why use something else?&lt;/h2&gt;
&lt;p&gt;Let&apos;s say you don&apos;t mind some software or hardware not working or you want to pick out specific hardware to use on another operating system. What do you gain?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Better Security - Windows is know to be easily hackable, from the NSA tool leak in 2017, Ransomware, and out dated kernel design. Windows is an absolute security nightmare. Both Mac and Linux offer proper elevation support with a NIX design, while windows does not and relies on the tacked on UAC system.&lt;/li&gt;
&lt;li&gt;Better Privacy - Windows has extremely egregious telemetry, but what information does Windows collect?&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Hardware information&lt;/td&gt;
&lt;td&gt;CPU speed, memory capacity, battery, HDD size.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Network Data&lt;/td&gt;
&lt;td&gt;Adapter speed, WiFi Data, and Mobile data if SIM exists&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Event Metrics&lt;/td&gt;
&lt;td&gt;Basic pc events&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;State Changes&lt;/td&gt;
&lt;td&gt;App uptime, CPU allocation to what app, and crashes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Accessory data&lt;/td&gt;
&lt;td&gt;What you have connected to the PC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft Store Logs&lt;/td&gt;
&lt;td&gt;Purchases, installs, updates, viewed, launched, etc.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;In-depth system specs&lt;/td&gt;
&lt;td&gt;Greater detail on hardware capabilities&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;App logs&lt;/td&gt;
&lt;td&gt;How often you use what and how quick they are&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Browser activity logs&lt;/td&gt;
&lt;td&gt;Shows what sites you visit and what you searched for&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enhanced Error Reporting&lt;/td&gt;
&lt;td&gt;Dumps entire memory and submits anything running.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Keylogging&lt;/td&gt;
&lt;td&gt;provided by &quot;Improve Inking and typing recognition&quot;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;More Consistency - One of the biggest issues Windows has is the rolling update cycle that tends to mess up computers. There are ways businesses tame this process and I&apos;ve even shown how to have sane windows update settings, but the default configuration will typically land users in an undesirable place more often than not. Mac and Linux typically have much better update cycles and far fewer issues with system updates, and need fewer reboots.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The Microsoft HATE&lt;/h2&gt;
&lt;p&gt;This all doesn&apos;t sound too bad, most people don&apos;t care about privacy or security as they freely give it away on social media. See this image if you want a good laugh at how bad people are at these practices.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/social-eng.webp&quot; alt=&quot;social&quot; /&gt;&lt;/p&gt;
&lt;p&gt;So why do people hate Microsoft and try to get away from Windows? The monopoly and absolute ruthless business model it has built over the past 30 years is something to marvel at.&lt;/p&gt;
&lt;h3&gt;Government Cooperation&lt;/h3&gt;
&lt;p&gt;It has grown so influential from its massive government lobby and has even an entire wing dedicated to working with governments. While some of this is bad, not all of it is. Their monitoring has helped stop some cyberattacks, like Ukraine cyber attacks in 2022 and this close partnership even had the NSA and FBI remotely hack into Microsoft exchange servers and patch the system. (source: &lt;a href=&quot;https://www.enterprisetimes.co.uk/2021/04/14/nsa-and-fbi-move-to-help-microsoft-with-its-exchange-server-vulnerabilities/&quot;&gt;https://www.enterprisetimes.co.uk/2021/04/14/nsa-and-fbi-move-to-help-microsoft-with-its-exchange-server-vulnerabilities/&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;The downside to this is when the NSA tools leaked in 2017 with blatant backdoors that spawned a massive ransomware attack around the world with EternalBlue exploit that then spawned a host of WannaCry ransomware payloads delivered to millions of computers. (source: &lt;a href=&quot;https://www.wired.com/story/eternalblue-leaked-nsa-spy-tool-hacked-world/&quot;&gt;https://www.wired.com/story/eternalblue-leaked-nsa-spy-tool-hacked-world/&lt;/a&gt;)&lt;/p&gt;
&lt;h3&gt;The Companies Microsoft Killed&lt;/h3&gt;
&lt;p&gt;&quot;&lt;strong&gt;Embrace, extend, and extinguish&lt;/strong&gt;&quot; (&lt;strong&gt;EEE&lt;/strong&gt;), also known as &quot;&lt;strong&gt;embrace, extend, and exterminate&lt;/strong&gt;&quot;, is a phrase that the U.S. Department of Justice found that was used internally by Microsoft... (source: &lt;a href=&quot;https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguish&quot;&gt;https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguish&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;They have successfully murdered companies and ruined countless lives while stifling innovation to get to where they are. Examples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Browser incompatibilities: Netscape killed off and why we were plagued by the hellscape of Internet Exploader and ActiveX controls for almost a decade before Chrome came along.&lt;/li&gt;
&lt;li&gt;Office: They purposely held back the API to make other competitors, like WordPerfect, able to succeed when they launched in Windows 98. With no documentation this ensured Microsoft Office had to be purchased and used by the world killing many competitors. They also did this by making Office documents render improperly in other browsers that weren&apos;t Internet Explorer.&lt;/li&gt;
&lt;li&gt;Purposely breaking Java programs on other systems so they weren&apos;t cross-platform. They&apos;ve settled with Sun for over 2 billion dollars in a lawsuit they lost back in 2002 and 20 million in 2001.&lt;/li&gt;
&lt;li&gt;Why email sucks? Microsoft implemented MAPI protocol instead of using many common forms like SMTP, POP, or IMAP. On October 1st of 2022, they disabled the following protocols from Exchange Online: &lt;code&gt;Outlook, EWS, RPS, POP, IMAP, and EAS&lt;/code&gt; and even SMTP gets disabled if not used.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So the hate comes from the world that never happened because of Microsoft&apos;s greed. The missed innovations, the companies that were forced to shutdown, and the lives that it destroyed, all to make the Microsoft monopoly.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/Sh1kZD7EVj0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 24 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;It&apos;s what we know. Windows is a tool and has evolved over the years while dominating the PC Market since the 90s. So it begs the question, is it bad?&lt;/p&gt;

&lt;h2&gt;What it does well&lt;/h2&gt;
&lt;p&gt;There are certain things Windows does better than any other OS. The operating system itself has an amazing assortment of compatibility and gaming.&lt;/p&gt;
&lt;p&gt;If you want to play the most software and games that works with all your hardware, Windows is your best bet and that isn&apos;t changing anytime soon.&lt;/p&gt;
&lt;h2&gt;Why use something else?&lt;/h2&gt;
&lt;p&gt;Let&apos;s say you don&apos;t mind some software or hardware not working or you want to pick out specific hardware to use on another operating system. What do you gain?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Better Security - Windows is know to be easily hackable, from the NSA tool leak in 2017, Ransomware, and out dated kernel design. Windows is an absolute security nightmare. Both Mac and Linux offer proper elevation support with a NIX design, while windows does not and relies on the tacked on UAC system.&lt;/li&gt;
&lt;li&gt;Better Privacy - Windows has extremely egregious telemetry, but what information does Windows collect?&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Hardware information&lt;/td&gt;
&lt;td&gt;CPU speed, memory capacity, battery, HDD size.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Network Data&lt;/td&gt;
&lt;td&gt;Adapter speed, WiFi Data, and Mobile data if SIM exists&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Event Metrics&lt;/td&gt;
&lt;td&gt;Basic pc events&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;State Changes&lt;/td&gt;
&lt;td&gt;App uptime, CPU allocation to what app, and crashes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Accessory data&lt;/td&gt;
&lt;td&gt;What you have connected to the PC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft Store Logs&lt;/td&gt;
&lt;td&gt;Purchases, installs, updates, viewed, launched, etc.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;In-depth system specs&lt;/td&gt;
&lt;td&gt;Greater detail on hardware capabilities&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;App logs&lt;/td&gt;
&lt;td&gt;How often you use what and how quick they are&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Browser activity logs&lt;/td&gt;
&lt;td&gt;Shows what sites you visit and what you searched for&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enhanced Error Reporting&lt;/td&gt;
&lt;td&gt;Dumps entire memory and submits anything running.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Keylogging&lt;/td&gt;
&lt;td&gt;provided by &quot;Improve Inking and typing recognition&quot;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;More Consistency - One of the biggest issues Windows has is the rolling update cycle that tends to mess up computers. There are ways businesses tame this process and I&apos;ve even shown how to have sane windows update settings, but the default configuration will typically land users in an undesirable place more often than not. Mac and Linux typically have much better update cycles and far fewer issues with system updates, and need fewer reboots.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The Microsoft HATE&lt;/h2&gt;
&lt;p&gt;This all doesn&apos;t sound too bad, most people don&apos;t care about privacy or security as they freely give it away on social media. See this image if you want a good laugh at how bad people are at these practices.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/social-eng.webp&quot; alt=&quot;social&quot; /&gt;&lt;/p&gt;
&lt;p&gt;So why do people hate Microsoft and try to get away from Windows? The monopoly and absolute ruthless business model it has built over the past 30 years is something to marvel at.&lt;/p&gt;
&lt;h3&gt;Government Cooperation&lt;/h3&gt;
&lt;p&gt;It has grown so influential from its massive government lobby and has even an entire wing dedicated to working with governments. While some of this is bad, not all of it is. Their monitoring has helped stop some cyberattacks, like Ukraine cyber attacks in 2022 and this close partnership even had the NSA and FBI remotely hack into Microsoft exchange servers and patch the system. (source: &lt;a href=&quot;https://www.enterprisetimes.co.uk/2021/04/14/nsa-and-fbi-move-to-help-microsoft-with-its-exchange-server-vulnerabilities/&quot;&gt;https://www.enterprisetimes.co.uk/2021/04/14/nsa-and-fbi-move-to-help-microsoft-with-its-exchange-server-vulnerabilities/&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;The downside to this is when the NSA tools leaked in 2017 with blatant backdoors that spawned a massive ransomware attack around the world with EternalBlue exploit that then spawned a host of WannaCry ransomware payloads delivered to millions of computers. (source: &lt;a href=&quot;https://www.wired.com/story/eternalblue-leaked-nsa-spy-tool-hacked-world/&quot;&gt;https://www.wired.com/story/eternalblue-leaked-nsa-spy-tool-hacked-world/&lt;/a&gt;)&lt;/p&gt;
&lt;h3&gt;The Companies Microsoft Killed&lt;/h3&gt;
&lt;p&gt;&quot;&lt;strong&gt;Embrace, extend, and extinguish&lt;/strong&gt;&quot; (&lt;strong&gt;EEE&lt;/strong&gt;), also known as &quot;&lt;strong&gt;embrace, extend, and exterminate&lt;/strong&gt;&quot;, is a phrase that the U.S. Department of Justice found that was used internally by Microsoft... (source: &lt;a href=&quot;https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguish&quot;&gt;https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguish&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;They have successfully murdered companies and ruined countless lives while stifling innovation to get to where they are. Examples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Browser incompatibilities: Netscape killed off and why we were plagued by the hellscape of Internet Exploader and ActiveX controls for almost a decade before Chrome came along.&lt;/li&gt;
&lt;li&gt;Office: They purposely held back the API to make other competitors, like WordPerfect, able to succeed when they launched in Windows 98. With no documentation this ensured Microsoft Office had to be purchased and used by the world killing many competitors. They also did this by making Office documents render improperly in other browsers that weren&apos;t Internet Explorer.&lt;/li&gt;
&lt;li&gt;Purposely breaking Java programs on other systems so they weren&apos;t cross-platform. They&apos;ve settled with Sun for over 2 billion dollars in a lawsuit they lost back in 2002 and 20 million in 2001.&lt;/li&gt;
&lt;li&gt;Why email sucks? Microsoft implemented MAPI protocol instead of using many common forms like SMTP, POP, or IMAP. On October 1st of 2022, they disabled the following protocols from Exchange Online: &lt;code&gt;Outlook, EWS, RPS, POP, IMAP, and EAS&lt;/code&gt; and even SMTP gets disabled if not used.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So the hate comes from the world that never happened because of Microsoft&apos;s greed. The missed innovations, the companies that were forced to shutdown, and the lives that it destroyed, all to make the Microsoft monopoly.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/Sh1kZD7EVj0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Nix Package Manager</title><link>https://christitus.com/nix-package-manager/</link><guid isPermaLink="true">https://christitus.com/nix-package-manager/</guid><description>&lt;p&gt;This standalone package manager is absolutely stunning and I can&apos;t believe I&apos;m just now discovering it&apos;s true power.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1559232526094417921&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://github.com/NixOS/nix&quot;&gt;https://github.com/NixOS/nix&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -L https://nixos.org/nix/install | sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: I&apos;d recommend multi-user install if it prompts for it.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Finding Packages&lt;/h2&gt;
&lt;p&gt;I&apos;d recommend using their website to find packages to install, but make sure to click the &quot;unstable&quot; button has NixOS stable is a Linux Distribution few use.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://search.nixos.org/packages&quot;&gt;https://search.nixos.org/packages&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Or from terminal you can list all packages with &lt;code&gt;nix-env -qaP&lt;/code&gt; then just grep what you are looking for. Example: &lt;code&gt;nix-env -qaP | grep hugo&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Usage&lt;/h2&gt;
&lt;p&gt;Here is the basic usage of nix, most revolve around the &lt;code&gt;nix-env&lt;/code&gt; command. These are manually managed and require user intervention&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;List Installed packages &lt;code&gt;nix-env -q&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Install Packages &lt;code&gt;nix-env -iA nixpkgs.packagename&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Erase Packages &lt;code&gt;nix-env -e packagename&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Update All Packages &lt;code&gt;nix-env -u&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Update Specific Packages &lt;code&gt;nix-env -u packagename&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Hold Specific Package &lt;code&gt;nix-env --set-flag keep true packagename&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;List Backups (Generations) &lt;code&gt;nix-env --list-generations&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Rollback to Last Backup &lt;code&gt;nix-env --rollback&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Rollback to Specific Generation &lt;code&gt;nix-env --switch-generation #&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Help and Manual&lt;/h2&gt;
&lt;p&gt;Read the &lt;a href=&quot;https://nixos.org/manual/nix/stable/&quot;&gt;official Nix manual&lt;/a&gt;. You can also get more details with &lt;code&gt;man nix&lt;/code&gt; or &lt;code&gt;man nix-env&lt;/code&gt;.&lt;/p&gt;
&lt;h2&gt;Troubleshooting&lt;/h2&gt;
&lt;h3&gt;Programs not showing up in start menu&lt;/h3&gt;
&lt;p&gt;NIX stores all the .desktop files for the programs it installs @ &lt;code&gt;/home/$USER/.nix-profile/share/applications/&lt;/code&gt; and a simple symlink will fix them not showing up in your start menu.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ln -s /home/$USER/.nix-profile/share/applications/* /home/$USER/.local/share/applications/
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/Ty8C2B910EI&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 22 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This standalone package manager is absolutely stunning and I can&apos;t believe I&apos;m just now discovering it&apos;s true power.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1559232526094417921&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://github.com/NixOS/nix&quot;&gt;https://github.com/NixOS/nix&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -L https://nixos.org/nix/install | sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: I&apos;d recommend multi-user install if it prompts for it.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Finding Packages&lt;/h2&gt;
&lt;p&gt;I&apos;d recommend using their website to find packages to install, but make sure to click the &quot;unstable&quot; button has NixOS stable is a Linux Distribution few use.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://search.nixos.org/packages&quot;&gt;https://search.nixos.org/packages&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Or from terminal you can list all packages with &lt;code&gt;nix-env -qaP&lt;/code&gt; then just grep what you are looking for. Example: &lt;code&gt;nix-env -qaP | grep hugo&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Usage&lt;/h2&gt;
&lt;p&gt;Here is the basic usage of nix, most revolve around the &lt;code&gt;nix-env&lt;/code&gt; command. These are manually managed and require user intervention&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;List Installed packages &lt;code&gt;nix-env -q&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Install Packages &lt;code&gt;nix-env -iA nixpkgs.packagename&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Erase Packages &lt;code&gt;nix-env -e packagename&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Update All Packages &lt;code&gt;nix-env -u&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Update Specific Packages &lt;code&gt;nix-env -u packagename&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Hold Specific Package &lt;code&gt;nix-env --set-flag keep true packagename&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;List Backups (Generations) &lt;code&gt;nix-env --list-generations&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Rollback to Last Backup &lt;code&gt;nix-env --rollback&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Rollback to Specific Generation &lt;code&gt;nix-env --switch-generation #&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Help and Manual&lt;/h2&gt;
&lt;p&gt;Read the &lt;a href=&quot;https://nixos.org/manual/nix/stable/&quot;&gt;official Nix manual&lt;/a&gt;. You can also get more details with &lt;code&gt;man nix&lt;/code&gt; or &lt;code&gt;man nix-env&lt;/code&gt;.&lt;/p&gt;
&lt;h2&gt;Troubleshooting&lt;/h2&gt;
&lt;h3&gt;Programs not showing up in start menu&lt;/h3&gt;
&lt;p&gt;NIX stores all the .desktop files for the programs it installs @ &lt;code&gt;/home/$USER/.nix-profile/share/applications/&lt;/code&gt; and a simple symlink will fix them not showing up in your start menu.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ln -s /home/$USER/.nix-profile/share/applications/* /home/$USER/.local/share/applications/
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/Ty8C2B910EI&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Life without a Smart Phone</title><link>https://christitus.com/switching-to-dumbphone/</link><guid isPermaLink="true">https://christitus.com/switching-to-dumbphone/</guid><description>&lt;p&gt;I recently switched to a Dumb Phone from the smart phone and many asked why? This is my breakdown of the entire experience and recommendations. This certainly won&apos;t be for everyone, but for those that attempt it, I can promise that it will be extremely rewarding for those that have the willpower to do it.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1557833634467414016&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;Why use a dumb phone?&lt;/h2&gt;
&lt;p&gt;Here are the benefits for using a dumb phone that I have found:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;More Productivity&lt;/li&gt;
&lt;li&gt;Mindfulness
&lt;ul&gt;
&lt;li&gt;Less Anxiety&lt;/li&gt;
&lt;li&gt;More at rest&lt;/li&gt;
&lt;li&gt;No longer overwhelmed&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is probably more, but these are the two massive things that has changed my life for the better. I can boil down these benefits to the fact I can&apos;t check my email, look up a restaurant, google some fact, browse social media, and many other apps dinging or grabbing my attention. The greatest strength of the smart phone is it can do ANYTHING, but that can lead to massive decision fatigue and it personally made me FAR less productive.&lt;/p&gt;
&lt;h2&gt;My Journey and Downsides&lt;/h2&gt;
&lt;p&gt;I had no intention of using a dumb phone, but then after researching some privacy, and security phones I bought one that looked cool. Little did I know, the Punkt MP02 really was a dumb phone with an app for Signal, so it could be marketed as a &quot;Security Phone&quot;.&lt;/p&gt;
&lt;p&gt;My first reaction was, &quot;This phone SUCKS!&quot;, but I needed to make a video about it, so I continued. Initially I was in shock without my smart phone:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No News when on the toilet&lt;/li&gt;
&lt;li&gt;Email on the go&lt;/li&gt;
&lt;li&gt;Music while working out or walking&lt;/li&gt;
&lt;li&gt;Workout Apps&lt;/li&gt;
&lt;li&gt;Food Apps&lt;/li&gt;
&lt;li&gt;Social Media: Twitter to kill time, or YouTube studio to check comments, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Within an hour or two I was bored during tasks my smart phone would fill in. Having said that, I really didn&apos;t even use my smart phone much. My digital wellbeing app clocked in at an average of 30 minute of usage a day. While many people are using their phones 3+ hours per day. &lt;strong&gt;The average in the world being 3 hours 15 minutes screen time per day and Americans spending 4 hours 16 minutes on mobile devices per day!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;After I became bored and didn&apos;t fill in every second, something magical happened. I actually had a cloud lift from me, and I started doing all the tasks I&apos;d been putting off. I did more in that one day then I had in the PAST WEEK!&lt;/p&gt;
&lt;h2&gt;Recommendations and Cheating&lt;/h2&gt;
&lt;p&gt;There are some recommendations and &quot;cheating&quot; I do when it comes to quality of life. But before I get in to that, I have to say, &quot;You do not NEED your smartphone&quot;. All these things are simply conveniences and if push came to shove, I&apos;d rather lose these things than have them because of the benefits of a dumb phone.&lt;/p&gt;
&lt;h3&gt;Navigation&lt;/h3&gt;
&lt;p&gt;This is a big one, but on my dumb phone there is WiFi tethering. My workaround is simply to use an all-in-one android car deck I installed last year that utilizes the WiFi.&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/SXmFBWTxl-U&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h3&gt;Uber, Food, Music, Workout and Bank Apps&lt;/h3&gt;
&lt;p&gt;Most of these are covered by using a computer and a webpage, however for those that do require a physical phone I can either use my old smartphone or get away with a android image off of &lt;a href=&quot;https://www.osboxes.org/android-x86/&quot;&gt;https://www.osboxes.org/android-x86/&lt;/a&gt; and load it up in Virtualbox or VMWare. Here is a walkthrough video I did on that:&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/JQc6VXuwlWk&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h3&gt;Group Messages&lt;/h3&gt;
&lt;p&gt;This is one of the downsides, because most dumbphones can&apos;t do MMS or groups messages. The Punkt MP02 doesn&apos;t do group messages but can receive them independently and GIFs come in, but emoji&apos;s do not. Depending on the phone, these things may or may NOT work. One workaround is to use Google Fi for your carrier and then &lt;a href=&quot;https://messages.google.com&quot;&gt;https://messages.google.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/dumbphone/web-message.webp&quot; alt=&quot;web-message&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Camera and Photos&lt;/h3&gt;
&lt;p&gt;Use an actual camera and then upload them your storage. Like we did back in the day!&lt;/p&gt;
&lt;h2&gt;Will I Go Back?&lt;/h2&gt;
&lt;p&gt;I sincerely doubt it. If anything I might get a bit better dumb phone with a bit more options like music or even a good camera if that ever became an option. However, my well being is first and foremost and after I STOPPED lying to myself that I needed a smart phone. I haven&apos;t felt this good in a very LONG time.&lt;/p&gt;
&lt;p&gt;There is also a lot of folks that simply addicted and can&apos;t quit their smartphone. Even though my usage was 30 minutes a day with minimal usage, I was addicted. They are designed that way. I was lying to myself when I said I&apos;ll just delete my social media apps or this or that. In the end, when boredom hit, I always would pick up my phone because there was always SOMETHING it could do to fill the time.&lt;/p&gt;
&lt;p&gt;In the end, most of the population simply can&apos;t quit it and will remain addicted and working with it as a severe handicap on their life. This gives me the ultimate edge to get ahead and produce more content than a person with a smart phone.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/tzbKqTRuRzU&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 17 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I recently switched to a Dumb Phone from the smart phone and many asked why? This is my breakdown of the entire experience and recommendations. This certainly won&apos;t be for everyone, but for those that attempt it, I can promise that it will be extremely rewarding for those that have the willpower to do it.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1557833634467414016&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;Why use a dumb phone?&lt;/h2&gt;
&lt;p&gt;Here are the benefits for using a dumb phone that I have found:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;More Productivity&lt;/li&gt;
&lt;li&gt;Mindfulness
&lt;ul&gt;
&lt;li&gt;Less Anxiety&lt;/li&gt;
&lt;li&gt;More at rest&lt;/li&gt;
&lt;li&gt;No longer overwhelmed&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is probably more, but these are the two massive things that has changed my life for the better. I can boil down these benefits to the fact I can&apos;t check my email, look up a restaurant, google some fact, browse social media, and many other apps dinging or grabbing my attention. The greatest strength of the smart phone is it can do ANYTHING, but that can lead to massive decision fatigue and it personally made me FAR less productive.&lt;/p&gt;
&lt;h2&gt;My Journey and Downsides&lt;/h2&gt;
&lt;p&gt;I had no intention of using a dumb phone, but then after researching some privacy, and security phones I bought one that looked cool. Little did I know, the Punkt MP02 really was a dumb phone with an app for Signal, so it could be marketed as a &quot;Security Phone&quot;.&lt;/p&gt;
&lt;p&gt;My first reaction was, &quot;This phone SUCKS!&quot;, but I needed to make a video about it, so I continued. Initially I was in shock without my smart phone:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No News when on the toilet&lt;/li&gt;
&lt;li&gt;Email on the go&lt;/li&gt;
&lt;li&gt;Music while working out or walking&lt;/li&gt;
&lt;li&gt;Workout Apps&lt;/li&gt;
&lt;li&gt;Food Apps&lt;/li&gt;
&lt;li&gt;Social Media: Twitter to kill time, or YouTube studio to check comments, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Within an hour or two I was bored during tasks my smart phone would fill in. Having said that, I really didn&apos;t even use my smart phone much. My digital wellbeing app clocked in at an average of 30 minute of usage a day. While many people are using their phones 3+ hours per day. &lt;strong&gt;The average in the world being 3 hours 15 minutes screen time per day and Americans spending 4 hours 16 minutes on mobile devices per day!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;After I became bored and didn&apos;t fill in every second, something magical happened. I actually had a cloud lift from me, and I started doing all the tasks I&apos;d been putting off. I did more in that one day then I had in the PAST WEEK!&lt;/p&gt;
&lt;h2&gt;Recommendations and Cheating&lt;/h2&gt;
&lt;p&gt;There are some recommendations and &quot;cheating&quot; I do when it comes to quality of life. But before I get in to that, I have to say, &quot;You do not NEED your smartphone&quot;. All these things are simply conveniences and if push came to shove, I&apos;d rather lose these things than have them because of the benefits of a dumb phone.&lt;/p&gt;
&lt;h3&gt;Navigation&lt;/h3&gt;
&lt;p&gt;This is a big one, but on my dumb phone there is WiFi tethering. My workaround is simply to use an all-in-one android car deck I installed last year that utilizes the WiFi.&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/SXmFBWTxl-U&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h3&gt;Uber, Food, Music, Workout and Bank Apps&lt;/h3&gt;
&lt;p&gt;Most of these are covered by using a computer and a webpage, however for those that do require a physical phone I can either use my old smartphone or get away with a android image off of &lt;a href=&quot;https://www.osboxes.org/android-x86/&quot;&gt;https://www.osboxes.org/android-x86/&lt;/a&gt; and load it up in Virtualbox or VMWare. Here is a walkthrough video I did on that:&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/JQc6VXuwlWk&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h3&gt;Group Messages&lt;/h3&gt;
&lt;p&gt;This is one of the downsides, because most dumbphones can&apos;t do MMS or groups messages. The Punkt MP02 doesn&apos;t do group messages but can receive them independently and GIFs come in, but emoji&apos;s do not. Depending on the phone, these things may or may NOT work. One workaround is to use Google Fi for your carrier and then &lt;a href=&quot;https://messages.google.com&quot;&gt;https://messages.google.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/dumbphone/web-message.webp&quot; alt=&quot;web-message&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Camera and Photos&lt;/h3&gt;
&lt;p&gt;Use an actual camera and then upload them your storage. Like we did back in the day!&lt;/p&gt;
&lt;h2&gt;Will I Go Back?&lt;/h2&gt;
&lt;p&gt;I sincerely doubt it. If anything I might get a bit better dumb phone with a bit more options like music or even a good camera if that ever became an option. However, my well being is first and foremost and after I STOPPED lying to myself that I needed a smart phone. I haven&apos;t felt this good in a very LONG time.&lt;/p&gt;
&lt;p&gt;There is also a lot of folks that simply addicted and can&apos;t quit their smartphone. Even though my usage was 30 minutes a day with minimal usage, I was addicted. They are designed that way. I was lying to myself when I said I&apos;ll just delete my social media apps or this or that. In the end, when boredom hit, I always would pick up my phone because there was always SOMETHING it could do to fill the time.&lt;/p&gt;
&lt;p&gt;In the end, most of the population simply can&apos;t quit it and will remain addicted and working with it as a severe handicap on their life. This gives me the ultimate edge to get ahead and produce more content than a person with a smart phone.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/tzbKqTRuRzU&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Disable Win Defender</title><link>https://christitus.com/disable-win-defender/</link><guid isPermaLink="true">https://christitus.com/disable-win-defender/</guid><description>&lt;p&gt;Windows Defender can be a massive drain on system performance and often can have a lot of false positives. While I recommend Anti-virus for most, I don&apos;t like having it enabled on my systems that aren&apos;t used for web browsing. &lt;/p&gt;
&lt;h2&gt;How Secure is Windows Defender&lt;/h2&gt;
&lt;p&gt;I often hear the phrase and have used the phrase &quot;Windows Defender is good enough&quot;, but often get mistaken in to thinking Defender is a good Anti-Virus. For detection rates it is good, but for protection it is NOT! Why? Anyone with a little bit of knowledge knows how to disable it without the user even knowing it. The services, registry entries, and built-in windows policies are designed to make it easy for an administrator to disable it. Why does Microsoft make it so easy to disable it? Simple, Windows in business environments never use Defender and administrators need to disable it.&lt;/p&gt;
&lt;h2&gt;What are the methods to disable defender?&lt;/h2&gt;
&lt;p&gt;There are a multitude of ways to disable defender or render it useless. Most properly programmed viruses will utilize one or more of these methods below.&lt;/p&gt;
&lt;h3&gt;Windows Settings&lt;/h3&gt;
&lt;p&gt;Turn off Tamper Protection and Real-Time monitoring.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/remove-win-defender/real-monitoring.webp&quot; alt=&quot;real-monitoring&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Registry&lt;/h3&gt;
&lt;p&gt;There are so many registry settings, but the main ones to focus on are below:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender\Features]
&quot;MpPlatformKillbitsFromEngine&quot;=hex:00,00,00,00,00,00,00,00
&quot;TamperProtectionSource&quot;=dword:00000000
&quot;MpCapability&quot;=hex:00,00,00,00,00,00,00,00
&quot;TamperProtection&quot;=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender]
&quot;PUAProtection&quot;=dword:00000000
&quot;DisableRoutinelyTakingAction&quot;=dword:00000001
&quot;ServiceKeepAlive&quot;=dword:00000000
&quot;AllowFastServiceStartup&quot;=dword:00000000
&quot;DisableLocalAdminMerge&quot;=dword:00000001
&quot;DisableAntiSpyware&quot;=dword:00000001
&quot;RandomizeScheduleTaskTimes&quot;=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Microsoft Antimalware]
&quot;ServiceKeepAlive&quot;=dword:00000000
&quot;AllowFastServiceStartup&quot;=dword:00000000
&quot;DisableRoutinelyTakingAction&quot;=dword:00000001
&quot;DisableAntiSpyware&quot;=dword:00000001
&quot;DisableAntiVirus&quot;=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection]
&quot;DisableRealtimeMonitoring&quot;=dword:00000001
&quot;DisableBehaviorMonitoring&quot;=dword:00000001
&quot;DisableOnAccessProtection&quot;=dword:00000001
&quot;DisableScanOnRealtimeEnable&quot;=dword:00000001
&quot;DisableIOAVProtection&quot;=dword:00000001
&quot;LocalSettingOverrideDisableOnAccessProtection&quot;=dword:00000000
&quot;LocalSettingOverrideRealtimeScanDirection&quot;=dword:00000000
&quot;LocalSettingOverrideDisableIOAVProtection&quot;=dword:00000000
&quot;LocalSettingOverrideDisableBehaviorMonitoring&quot;=dword:00000000
&quot;LocalSettingOverrideDisableIntrusionPreventionSystem&quot;=dword:00000000
&quot;LocalSettingOverrideDisableRealtimeMonitoring&quot;=dword:00000000
&quot;RealtimeScanDirection&quot;=dword:00000002
&quot;IOAVMaxSize&quot;=dword:00000512
&quot;DisableInformationProtectionControl&quot;=dword:00000001
&quot;DisableIntrusionPreventionSystem&quot;=dword:00000001
&quot;DisableRawWriteNotification&quot;=dword:00000001
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For a more comprehensive list check out: &lt;a href=&quot;https://christitus.com/files/windefender_disable.reg&quot;&gt;https://christitus.com/files/windefender_disable.reg&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Services&lt;/h3&gt;
&lt;p&gt;List of Services Windows Defender uses and relies upon.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;WdNisSvc&lt;/li&gt;
&lt;li&gt;WdNisDrv&lt;/li&gt;
&lt;li&gt;WdFilter&lt;/li&gt;
&lt;li&gt;WdBoot&lt;/li&gt;
&lt;li&gt;wcncsvc&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Files&lt;/h3&gt;
&lt;p&gt;There are a ton of program files and logs for Windows Defender located at &lt;code&gt;C:\Program Files\Windows Defender&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Powershell&lt;/h3&gt;
&lt;p&gt;This can be used to do temporary disable parts or all of Defender as well. Here is some basic command I used and shared on Twitter:&lt;/p&gt;
&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1556368265139585026&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;GitHub Projects - CAUTION&lt;/h2&gt;
&lt;p&gt;Here are a couple GitHub projects that will completely destroy defender and when used improperly can even be used to deliver virus payloads onto systems&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/jbara2002/windows-defender-remover&quot;&gt;https://github.com/jbara2002/windows-defender-remover&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/qtkite/defender-control&quot;&gt;https://github.com/qtkite/defender-control&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/UywjKEMjSp0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 12 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Windows Defender can be a massive drain on system performance and often can have a lot of false positives. While I recommend Anti-virus for most, I don&apos;t like having it enabled on my systems that aren&apos;t used for web browsing. &lt;/p&gt;
&lt;h2&gt;How Secure is Windows Defender&lt;/h2&gt;
&lt;p&gt;I often hear the phrase and have used the phrase &quot;Windows Defender is good enough&quot;, but often get mistaken in to thinking Defender is a good Anti-Virus. For detection rates it is good, but for protection it is NOT! Why? Anyone with a little bit of knowledge knows how to disable it without the user even knowing it. The services, registry entries, and built-in windows policies are designed to make it easy for an administrator to disable it. Why does Microsoft make it so easy to disable it? Simple, Windows in business environments never use Defender and administrators need to disable it.&lt;/p&gt;
&lt;h2&gt;What are the methods to disable defender?&lt;/h2&gt;
&lt;p&gt;There are a multitude of ways to disable defender or render it useless. Most properly programmed viruses will utilize one or more of these methods below.&lt;/p&gt;
&lt;h3&gt;Windows Settings&lt;/h3&gt;
&lt;p&gt;Turn off Tamper Protection and Real-Time monitoring.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/remove-win-defender/real-monitoring.webp&quot; alt=&quot;real-monitoring&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Registry&lt;/h3&gt;
&lt;p&gt;There are so many registry settings, but the main ones to focus on are below:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender\Features]
&quot;MpPlatformKillbitsFromEngine&quot;=hex:00,00,00,00,00,00,00,00
&quot;TamperProtectionSource&quot;=dword:00000000
&quot;MpCapability&quot;=hex:00,00,00,00,00,00,00,00
&quot;TamperProtection&quot;=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender]
&quot;PUAProtection&quot;=dword:00000000
&quot;DisableRoutinelyTakingAction&quot;=dword:00000001
&quot;ServiceKeepAlive&quot;=dword:00000000
&quot;AllowFastServiceStartup&quot;=dword:00000000
&quot;DisableLocalAdminMerge&quot;=dword:00000001
&quot;DisableAntiSpyware&quot;=dword:00000001
&quot;RandomizeScheduleTaskTimes&quot;=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Microsoft Antimalware]
&quot;ServiceKeepAlive&quot;=dword:00000000
&quot;AllowFastServiceStartup&quot;=dword:00000000
&quot;DisableRoutinelyTakingAction&quot;=dword:00000001
&quot;DisableAntiSpyware&quot;=dword:00000001
&quot;DisableAntiVirus&quot;=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection]
&quot;DisableRealtimeMonitoring&quot;=dword:00000001
&quot;DisableBehaviorMonitoring&quot;=dword:00000001
&quot;DisableOnAccessProtection&quot;=dword:00000001
&quot;DisableScanOnRealtimeEnable&quot;=dword:00000001
&quot;DisableIOAVProtection&quot;=dword:00000001
&quot;LocalSettingOverrideDisableOnAccessProtection&quot;=dword:00000000
&quot;LocalSettingOverrideRealtimeScanDirection&quot;=dword:00000000
&quot;LocalSettingOverrideDisableIOAVProtection&quot;=dword:00000000
&quot;LocalSettingOverrideDisableBehaviorMonitoring&quot;=dword:00000000
&quot;LocalSettingOverrideDisableIntrusionPreventionSystem&quot;=dword:00000000
&quot;LocalSettingOverrideDisableRealtimeMonitoring&quot;=dword:00000000
&quot;RealtimeScanDirection&quot;=dword:00000002
&quot;IOAVMaxSize&quot;=dword:00000512
&quot;DisableInformationProtectionControl&quot;=dword:00000001
&quot;DisableIntrusionPreventionSystem&quot;=dword:00000001
&quot;DisableRawWriteNotification&quot;=dword:00000001
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For a more comprehensive list check out: &lt;a href=&quot;https://christitus.com/files/windefender_disable.reg&quot;&gt;https://christitus.com/files/windefender_disable.reg&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Services&lt;/h3&gt;
&lt;p&gt;List of Services Windows Defender uses and relies upon.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;WdNisSvc&lt;/li&gt;
&lt;li&gt;WdNisDrv&lt;/li&gt;
&lt;li&gt;WdFilter&lt;/li&gt;
&lt;li&gt;WdBoot&lt;/li&gt;
&lt;li&gt;wcncsvc&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Files&lt;/h3&gt;
&lt;p&gt;There are a ton of program files and logs for Windows Defender located at &lt;code&gt;C:\Program Files\Windows Defender&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Powershell&lt;/h3&gt;
&lt;p&gt;This can be used to do temporary disable parts or all of Defender as well. Here is some basic command I used and shared on Twitter:&lt;/p&gt;
&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1556368265139585026&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;GitHub Projects - CAUTION&lt;/h2&gt;
&lt;p&gt;Here are a couple GitHub projects that will completely destroy defender and when used improperly can even be used to deliver virus payloads onto systems&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/jbara2002/windows-defender-remover&quot;&gt;https://github.com/jbara2002/windows-defender-remover&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/qtkite/defender-control&quot;&gt;https://github.com/qtkite/defender-control&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/UywjKEMjSp0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Best Package Manager</title><link>https://christitus.com/best-package-manager/</link><guid isPermaLink="true">https://christitus.com/best-package-manager/</guid><description>&lt;p&gt;Instead of using the built-in package manager in Linux or some container that never puts the programs files in a usable spot, we will use Homebrew!&lt;/p&gt;

&lt;p&gt;I know, it&apos;s an OS X package manager, but it works fantastic on Linux and solves MANY problems.&lt;/p&gt;
&lt;p&gt;Main issues it addresses:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Older packages from stable Linux distributions&lt;/li&gt;
&lt;li&gt;Putting the installed packages in easy spots to reference them and modify them when needed.&lt;/li&gt;
&lt;li&gt;Using sudo can be dangerous and brew installs it to a home directory instead of systemwide without needing sudo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A good example of this. On Debian and Fedora the package HUGO is old... like really old. Anywhere between version .60 and .90 where home brew installs version .101-extended&lt;/p&gt;
&lt;h2&gt;Installing Homebrew&lt;/h2&gt;
&lt;h3&gt;Dependencies&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Debian or Ubuntu&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get install build-essential procps curl file git
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Fedora, CentOS, or Red Hat&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo yum groupinstall &apos;Development Tools&apos;
sudo yum install procps-ng curl file git
sudo yum install libxcrypt-compat # needed by Fedora 30 and up
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Install Script&lt;/h3&gt;
&lt;p&gt;One command to install it:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/bin/bash -c &quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Make brew available in terminal&lt;/h3&gt;
&lt;p&gt;By default homebrew puts itself in an easy to access directory. &lt;code&gt;/home/linuxbrew/.linuxbrew&lt;/code&gt; but there are a variety methods to use it from your prompt.&lt;/p&gt;
&lt;h4&gt;Official Method&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;test -d ~/.linuxbrew &amp;amp;&amp;amp; eval &quot;$(~/.linuxbrew/bin/brew shellenv)&quot;
test -d /home/linuxbrew/.linuxbrew &amp;amp;&amp;amp; eval &quot;$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)&quot;
test -r ~/.bash_profile &amp;amp;&amp;amp; echo &quot;eval \&quot;\$($(brew --prefix)/bin/brew shellenv)\&quot;&quot; &amp;gt;&amp;gt; ~/.bash_profile
echo &quot;eval \&quot;\$($(brew --prefix)/bin/brew shellenv)\&quot;&quot; &amp;gt;&amp;gt; ~/.profile
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;The .bashrc Method&lt;/h4&gt;
&lt;p&gt;Add the following line to &lt;code&gt;~/.bashrc&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;eval &quot;$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: if you use ZSH then the file you need to edit is &lt;code&gt;~/.zshrc&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Using Homebrew&lt;/h2&gt;
&lt;p&gt;With homebrew setup here are the commands I use almost daily&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;brew install programname&lt;/code&gt; - Install programname using brew&lt;/li&gt;
&lt;li&gt;&lt;code&gt;brew search programname&lt;/code&gt; - Search for programname in brew&lt;/li&gt;
&lt;li&gt;&lt;code&gt;brew uninstall programname&lt;/code&gt; - Uninstall program&lt;/li&gt;
&lt;li&gt;&lt;code&gt;brew update&lt;/code&gt; - Updates brew&lt;/li&gt;
&lt;li&gt;&lt;code&gt;brew upgrade program&lt;/code&gt; - Updates just that one program&lt;/li&gt;
&lt;li&gt;&lt;code&gt;brew list&lt;/code&gt; - List programs in brew&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Get Lost? &lt;code&gt;man brew&lt;/code&gt; to look at all documentation in terminal or don&apos;t know what a program does? &lt;code&gt;brew info programname&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;That&apos;s it for the daily syntax&lt;/p&gt;
&lt;h2&gt;Understanding Homebrew terms&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;keg - Program binaries created from source&lt;/li&gt;
&lt;li&gt;bottle - Program binaries downloaded&lt;/li&gt;
&lt;li&gt;cellar - Directory where kegs / binaries are stored&lt;/li&gt;
&lt;li&gt;tap - git repository&lt;/li&gt;
&lt;li&gt;cask - mac os native binary (not used in Linux)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is other stuff to homebrew but read the full documentation if interested here &lt;a href=&quot;https://docs.brew.sh/Formula-Cookbook#homebrew-terminology&quot;&gt;https://docs.brew.sh/Formula-Cookbook#homebrew-terminology&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Basics of homebrew on Linux official documentation &lt;a href=&quot;https://docs.brew.sh/Homebrew-on-Linux&quot;&gt;https://docs.brew.sh/Homebrew-on-Linux&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/QsYEvnV-P34&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h2&gt;Thank you Homebrew Team&lt;/h2&gt;
&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1554153066823385089&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;</description><pubDate>Mon, 08 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Instead of using the built-in package manager in Linux or some container that never puts the programs files in a usable spot, we will use Homebrew!&lt;/p&gt;

&lt;p&gt;I know, it&apos;s an OS X package manager, but it works fantastic on Linux and solves MANY problems.&lt;/p&gt;
&lt;p&gt;Main issues it addresses:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Older packages from stable Linux distributions&lt;/li&gt;
&lt;li&gt;Putting the installed packages in easy spots to reference them and modify them when needed.&lt;/li&gt;
&lt;li&gt;Using sudo can be dangerous and brew installs it to a home directory instead of systemwide without needing sudo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A good example of this. On Debian and Fedora the package HUGO is old... like really old. Anywhere between version .60 and .90 where home brew installs version .101-extended&lt;/p&gt;
&lt;h2&gt;Installing Homebrew&lt;/h2&gt;
&lt;h3&gt;Dependencies&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Debian or Ubuntu&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get install build-essential procps curl file git
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Fedora, CentOS, or Red Hat&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo yum groupinstall &apos;Development Tools&apos;
sudo yum install procps-ng curl file git
sudo yum install libxcrypt-compat # needed by Fedora 30 and up
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Install Script&lt;/h3&gt;
&lt;p&gt;One command to install it:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/bin/bash -c &quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Make brew available in terminal&lt;/h3&gt;
&lt;p&gt;By default homebrew puts itself in an easy to access directory. &lt;code&gt;/home/linuxbrew/.linuxbrew&lt;/code&gt; but there are a variety methods to use it from your prompt.&lt;/p&gt;
&lt;h4&gt;Official Method&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;test -d ~/.linuxbrew &amp;amp;&amp;amp; eval &quot;$(~/.linuxbrew/bin/brew shellenv)&quot;
test -d /home/linuxbrew/.linuxbrew &amp;amp;&amp;amp; eval &quot;$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)&quot;
test -r ~/.bash_profile &amp;amp;&amp;amp; echo &quot;eval \&quot;\$($(brew --prefix)/bin/brew shellenv)\&quot;&quot; &amp;gt;&amp;gt; ~/.bash_profile
echo &quot;eval \&quot;\$($(brew --prefix)/bin/brew shellenv)\&quot;&quot; &amp;gt;&amp;gt; ~/.profile
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;The .bashrc Method&lt;/h4&gt;
&lt;p&gt;Add the following line to &lt;code&gt;~/.bashrc&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;eval &quot;$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: if you use ZSH then the file you need to edit is &lt;code&gt;~/.zshrc&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Using Homebrew&lt;/h2&gt;
&lt;p&gt;With homebrew setup here are the commands I use almost daily&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;brew install programname&lt;/code&gt; - Install programname using brew&lt;/li&gt;
&lt;li&gt;&lt;code&gt;brew search programname&lt;/code&gt; - Search for programname in brew&lt;/li&gt;
&lt;li&gt;&lt;code&gt;brew uninstall programname&lt;/code&gt; - Uninstall program&lt;/li&gt;
&lt;li&gt;&lt;code&gt;brew update&lt;/code&gt; - Updates brew&lt;/li&gt;
&lt;li&gt;&lt;code&gt;brew upgrade program&lt;/code&gt; - Updates just that one program&lt;/li&gt;
&lt;li&gt;&lt;code&gt;brew list&lt;/code&gt; - List programs in brew&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Get Lost? &lt;code&gt;man brew&lt;/code&gt; to look at all documentation in terminal or don&apos;t know what a program does? &lt;code&gt;brew info programname&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;That&apos;s it for the daily syntax&lt;/p&gt;
&lt;h2&gt;Understanding Homebrew terms&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;keg - Program binaries created from source&lt;/li&gt;
&lt;li&gt;bottle - Program binaries downloaded&lt;/li&gt;
&lt;li&gt;cellar - Directory where kegs / binaries are stored&lt;/li&gt;
&lt;li&gt;tap - git repository&lt;/li&gt;
&lt;li&gt;cask - mac os native binary (not used in Linux)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is other stuff to homebrew but read the full documentation if interested here &lt;a href=&quot;https://docs.brew.sh/Formula-Cookbook#homebrew-terminology&quot;&gt;https://docs.brew.sh/Formula-Cookbook#homebrew-terminology&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Basics of homebrew on Linux official documentation &lt;a href=&quot;https://docs.brew.sh/Homebrew-on-Linux&quot;&gt;https://docs.brew.sh/Homebrew-on-Linux&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/QsYEvnV-P34&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h2&gt;Thank you Homebrew Team&lt;/h2&gt;
&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1554153066823385089&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;</content:encoded></item><item><title>Save HOURS of work with Regex</title><link>https://christitus.com/regex/</link><guid isPermaLink="true">https://christitus.com/regex/</guid><description>&lt;p&gt;RegEx is a formidable tool that many just don&apos;t understand, but can save literally thousands of hours of work.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1553598175314845697&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;However, for many years I just couldn&apos;t be bothered to learn anything beside the basics &lt;code&gt;.*&lt;/code&gt; or &lt;code&gt;[a-z]&lt;/code&gt;. I just had a project pop up where I&apos;d have to spend hours finding and replacing a complex markdown line I was using to pull images and a video link. The solution was painfully obvious... either I get better with RegEx or spend hours finding and replacing text in hundreds of posts.&lt;/p&gt;
&lt;h2&gt;Understanding RegEx&lt;/h2&gt;
&lt;p&gt;Learning all the syntax for RegEx is not happening for me and probably many others. There is a solution for this and you don&apos;t need to... &lt;a href=&quot;https://regexr.com/&quot;&gt;https://regexr.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/regex/text-example.webp&quot; alt=&quot;text-example&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Now that you have an explainer of all the syntax and cheat sheet. We just need to know a few basic features of RegEx, so you can perfect the pattern that you need. Also, the need to understand groups and variables will make the find and replace much more powerful.&lt;/p&gt;
&lt;h2&gt;Making the Perfect Pattern&lt;/h2&gt;
&lt;p&gt;With our test example on &lt;a href=&quot;http://regexr.com&quot;&gt;regexr.com&lt;/a&gt; we can test our pattern to make sure we match exactly what we need. Now normally a guide would start talking about &lt;code&gt;.*&lt;/code&gt; and other match characters, but frankly any site like regexr or &lt;a href=&quot;http://regex101.com&quot;&gt;regex101.com&lt;/a&gt;, will have those laid out for you.&lt;/p&gt;
&lt;p&gt;Instead, let&apos;s talk about escaping characters and how to match weird expressions that have syntax like &lt;code&gt;[,(,+,?&lt;/code&gt; and more. All these can really mess up matching your pattern. So you need to &lt;em&gt;escape&lt;/em&gt; the with a &lt;code&gt;\&lt;/code&gt; before the symbol, so it would look something like this &lt;code&gt;\[blah\]&lt;/code&gt; this is regex speak for &lt;code&gt;[blah]&lt;/code&gt; the escaping character makes it actually register the bracket or parenthesis. Without it, it will probably just give you some syntax error.&lt;/p&gt;
&lt;p&gt;The websites I gave above are perfect for pointing out flaws in your pattern or maybe you missed escaping that + sign or question mark. It&apos;s why having these syntax sites available is vital.&lt;/p&gt;
&lt;h2&gt;Selection Groups&lt;/h2&gt;
&lt;p&gt;Now that you understand how to match things with RegEx you can wipe out things with ease, but what about saving that bit of the match you need?&lt;/p&gt;
&lt;p&gt;Example (I want to save youtube video id):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;img.youtube.com/vi/0q3rGKIMZg
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Using this Regex will clean it up and save the id using the selection group.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;.*vi\/(.*)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This will match and SELECT everything after &lt;code&gt;vi/&lt;/code&gt;  with &lt;code&gt;(.*)&lt;/code&gt; in the string, where &lt;code&gt;.*vi\/&lt;/code&gt; matches &lt;code&gt;img.youtube.com/vi/&lt;/code&gt;. The value &lt;code&gt;0q3rGKIMZg&lt;/code&gt; will be stored in &lt;code&gt;$1&lt;/code&gt; which is the first selection group. If you do multiple &lt;code&gt;()&lt;/code&gt; selections the second one would be &lt;code&gt;$2&lt;/code&gt; and so on.&lt;/p&gt;
&lt;p&gt;Example new format from old &lt;code&gt;{{ youtube 0q3rGKIMZg }}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The replace field would simply be &lt;code&gt;{{ youtube $1 }}&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/uwtPH6owqZA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 05 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;RegEx is a formidable tool that many just don&apos;t understand, but can save literally thousands of hours of work.&lt;/p&gt;

&lt;blockquote class=&quot;x-embed&quot;&gt;&lt;a href=&quot;https://x.com/christitustech/status/1553598175314845697&quot;&gt;View post by @christitustech on X&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;However, for many years I just couldn&apos;t be bothered to learn anything beside the basics &lt;code&gt;.*&lt;/code&gt; or &lt;code&gt;[a-z]&lt;/code&gt;. I just had a project pop up where I&apos;d have to spend hours finding and replacing a complex markdown line I was using to pull images and a video link. The solution was painfully obvious... either I get better with RegEx or spend hours finding and replacing text in hundreds of posts.&lt;/p&gt;
&lt;h2&gt;Understanding RegEx&lt;/h2&gt;
&lt;p&gt;Learning all the syntax for RegEx is not happening for me and probably many others. There is a solution for this and you don&apos;t need to... &lt;a href=&quot;https://regexr.com/&quot;&gt;https://regexr.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/regex/text-example.webp&quot; alt=&quot;text-example&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Now that you have an explainer of all the syntax and cheat sheet. We just need to know a few basic features of RegEx, so you can perfect the pattern that you need. Also, the need to understand groups and variables will make the find and replace much more powerful.&lt;/p&gt;
&lt;h2&gt;Making the Perfect Pattern&lt;/h2&gt;
&lt;p&gt;With our test example on &lt;a href=&quot;http://regexr.com&quot;&gt;regexr.com&lt;/a&gt; we can test our pattern to make sure we match exactly what we need. Now normally a guide would start talking about &lt;code&gt;.*&lt;/code&gt; and other match characters, but frankly any site like regexr or &lt;a href=&quot;http://regex101.com&quot;&gt;regex101.com&lt;/a&gt;, will have those laid out for you.&lt;/p&gt;
&lt;p&gt;Instead, let&apos;s talk about escaping characters and how to match weird expressions that have syntax like &lt;code&gt;[,(,+,?&lt;/code&gt; and more. All these can really mess up matching your pattern. So you need to &lt;em&gt;escape&lt;/em&gt; the with a &lt;code&gt;\&lt;/code&gt; before the symbol, so it would look something like this &lt;code&gt;\[blah\]&lt;/code&gt; this is regex speak for &lt;code&gt;[blah]&lt;/code&gt; the escaping character makes it actually register the bracket or parenthesis. Without it, it will probably just give you some syntax error.&lt;/p&gt;
&lt;p&gt;The websites I gave above are perfect for pointing out flaws in your pattern or maybe you missed escaping that + sign or question mark. It&apos;s why having these syntax sites available is vital.&lt;/p&gt;
&lt;h2&gt;Selection Groups&lt;/h2&gt;
&lt;p&gt;Now that you understand how to match things with RegEx you can wipe out things with ease, but what about saving that bit of the match you need?&lt;/p&gt;
&lt;p&gt;Example (I want to save youtube video id):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;img.youtube.com/vi/0q3rGKIMZg
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Using this Regex will clean it up and save the id using the selection group.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;.*vi\/(.*)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This will match and SELECT everything after &lt;code&gt;vi/&lt;/code&gt;  with &lt;code&gt;(.*)&lt;/code&gt; in the string, where &lt;code&gt;.*vi\/&lt;/code&gt; matches &lt;code&gt;img.youtube.com/vi/&lt;/code&gt;. The value &lt;code&gt;0q3rGKIMZg&lt;/code&gt; will be stored in &lt;code&gt;$1&lt;/code&gt; which is the first selection group. If you do multiple &lt;code&gt;()&lt;/code&gt; selections the second one would be &lt;code&gt;$2&lt;/code&gt; and so on.&lt;/p&gt;
&lt;p&gt;Example new format from old &lt;code&gt;{{ youtube 0q3rGKIMZg }}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The replace field would simply be &lt;code&gt;{{ youtube $1 }}&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/uwtPH6owqZA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>The 3 Biggest Security Mistakes Linux Users Make</title><link>https://christitus.com/linux-security-mistakes/</link><guid isPermaLink="true">https://christitus.com/linux-security-mistakes/</guid><description>&lt;p&gt;Security is a journey, not a destination&lt;/p&gt;

&lt;p&gt;So after making a couple videos showing how to increase performance in desktop computers running Linux, I was overwhelmed by the sheer scale of comments worried about mitigations. If you are worried about that, you should be even more worried about the things below.&lt;/p&gt;
&lt;p&gt;Here are the 3 biggest things I see wrong in Linux installs that can easily be exploited or lead to massive problems. I&apos;m choosing some of the worst offenders from the basic security layers an attacker goes through.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/linux-security-mistakes/basic-layers.webp&quot; alt=&quot;basic-layers&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Network Level - Not using a Firewall&lt;/h2&gt;
&lt;p&gt;Managing a firewall on a system can be a monumental task, but one of the most important is managing the traffic coming to and from your computer. The best packages for this in Linux is &lt;code&gt;ufw&lt;/code&gt; and &lt;code&gt;fail2ban&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;UFW&lt;/h3&gt;
&lt;p&gt;Uncomplicated Firewall is easy to setup and understand. It blocks traffic and allows it.&lt;/p&gt;
&lt;h4&gt;Install UFW&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install ufw
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;My recommended Rules&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo ufw limit 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Fail2Ban&lt;/h3&gt;
&lt;p&gt;Fail2Ban is one of the best programs that is installed in every single Linux server I have EVER installed. This program is a intrusion prevention utility. Most install it, but forget to configure and use it. These are the settings I like to use.&lt;/p&gt;
&lt;h4&gt;Installing Fail2Ban&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install fail2ban
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;My Fail2Ban Settings File&lt;/h4&gt;
&lt;p&gt;Fail2Ban by default doesn&apos;t really do much unless you adjust the settings file. Here is mine, but feel free to change it to your needs.&lt;/p&gt;
&lt;p&gt;All configuration files are in &lt;code&gt;/etc/fail2ban&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Configuration file examples and defaults are in two main files &lt;code&gt;/etc/fail2ban/fail2ban.conf&lt;/code&gt; and &lt;code&gt;/etc/fail2ban/jail.conf&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;My Config - &lt;code&gt;/etc/fail2ban/jail.local&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[DEFAULT]
ignoreip = 127.0.0.1/8 ::1
bantime = 3600
findtime = 600
maxretry = 5

[sshd]
enabled = true
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now in more complex service environments I would generally start adding services and programs like &lt;code&gt;ssh-jail.conf&lt;/code&gt; to the &lt;code&gt;/etc/fail2ban/jail.d/&lt;/code&gt; directory. Any program that hackers use is typically always under watch, like WordPress installs for example:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/etc/fail2ban/jail.d/wordpress.conf&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[wordpress]
enabled = true
filter = wordpress
logpath = /var/log/auth.log
maxretry = 3
port = http,https
bantime = 300
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Enabling Fail2Ban&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl enable fail2ban
sudo systemctl start fail2ban
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Operating System Level - Adding Repositories&lt;/h2&gt;
&lt;p&gt;Too many times do I see people installing and using 10+ repositories on a Linux install. Obviously, adding repositories to get the programs you want on your system is something you will do. However, there is a hierarchy to these repositories and if you just blindly trust and import all the keys to the repositories, they can and will override packages from the base distribution. This isn&apos;t good and can lead to security issues or even break your system. I&apos;d highly recommend putting a priority on these, so it will only use them when the package doesn&apos;t exist in that base repo.&lt;/p&gt;
&lt;p&gt;If you don&apos;t use any priority, often times the package you want from the added repo is installed and updated, but sometimes they add OTHER packages in that repo that will also overwrite existing packages, which can lead to some undesired results.&lt;/p&gt;
&lt;h3&gt;Prioritizing Repositories&lt;/h3&gt;
&lt;p&gt;Official documentation for APT (Debian) - &lt;a href=&quot;https://wiki.debian.org/DebianRepository/UseThirdParty&quot;&gt;https://wiki.debian.org/DebianRepository/UseThirdParty&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;All priority preference files are stored in the &lt;code&gt;/etc/apt/preferences.d/&lt;/code&gt; directory.&lt;/p&gt;
&lt;p&gt;Example: &lt;code&gt;volian.pref&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Package: *
Pin: origin deb.volian.org
Pin-Priority: 100
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Set specific packages to only install with the &lt;code&gt;Package: *&lt;/code&gt; Line&lt;/li&gt;
&lt;li&gt;Pin: Origin is the address of the repo&lt;/li&gt;
&lt;li&gt;Pin-Priority is generally 100 which means it will update packages NOT in base repos.
&lt;ul&gt;
&lt;li&gt;1 = do not auto update&lt;/li&gt;
&lt;li&gt;100 = update if not in other repos&lt;/li&gt;
&lt;li&gt;over 100 = overwrite base repos&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Arch doesn&apos;t have any priorities in pacman that I can find, but most are building from source with limited 3rd party repositories. Building from source presents even more dangers for those that are blindly installing programs through the AUR.&lt;/p&gt;
&lt;h2&gt;Application Level - Not using AppArmor or SELinux&lt;/h2&gt;
&lt;p&gt;Most Linux distributions have one of these installed by default, but there is one major one that most forget. Arch Linux. A lot of install scripts forget apparmor and SELinux is too complex for many to install. These programs do one massive security feature that many just don&apos;t realize. They can sandbox and limit program access even when they get elevated. If an application profile doesn&apos;t exist, they typically limit its access to the home folder and limit hardware access. You can customize application profiles to expand or limit access as needed. Without having either of the programs installed, you are putting yourself at risk.&lt;/p&gt;
&lt;p&gt;However, just the simple act of installing these programs often leads to them being used or setup. They typically are set up to be in complain mode for AppArmor or permissive mode for SELinux. While these are fine for logging and adding some security, it normally would NOT stop the program doing damage.&lt;/p&gt;
&lt;p&gt;I&apos;ve set these up in server environments and it is not trivial to do or maintain. Most, if not all, Linux desktops don&apos;t bother with setting these to enforce mode and blocking programs that don&apos;t comply to their application profile. This requires the end user to have knowledge of how to set up profiles and generate them when they are missing, so the programs will work correctly.&lt;/p&gt;
&lt;p&gt;To learn more about using them:
AppArmor Documentation &lt;a href=&quot;https://gitlab.com/apparmor/apparmor/-/wikis/Documentation&quot;&gt;https://gitlab.com/apparmor/apparmor/-/wikis/Documentation&lt;/a&gt;
SELinux Documentation &lt;a href=&quot;https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/selinux_users_and_administrators_guide/index&quot;&gt;https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/selinux_users_and_administrators_guide/index&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/QxNsyrftJ8I&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 03 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Security is a journey, not a destination&lt;/p&gt;

&lt;p&gt;So after making a couple videos showing how to increase performance in desktop computers running Linux, I was overwhelmed by the sheer scale of comments worried about mitigations. If you are worried about that, you should be even more worried about the things below.&lt;/p&gt;
&lt;p&gt;Here are the 3 biggest things I see wrong in Linux installs that can easily be exploited or lead to massive problems. I&apos;m choosing some of the worst offenders from the basic security layers an attacker goes through.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/linux-security-mistakes/basic-layers.webp&quot; alt=&quot;basic-layers&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Network Level - Not using a Firewall&lt;/h2&gt;
&lt;p&gt;Managing a firewall on a system can be a monumental task, but one of the most important is managing the traffic coming to and from your computer. The best packages for this in Linux is &lt;code&gt;ufw&lt;/code&gt; and &lt;code&gt;fail2ban&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;UFW&lt;/h3&gt;
&lt;p&gt;Uncomplicated Firewall is easy to setup and understand. It blocks traffic and allows it.&lt;/p&gt;
&lt;h4&gt;Install UFW&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install ufw
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;My recommended Rules&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo ufw limit 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Fail2Ban&lt;/h3&gt;
&lt;p&gt;Fail2Ban is one of the best programs that is installed in every single Linux server I have EVER installed. This program is a intrusion prevention utility. Most install it, but forget to configure and use it. These are the settings I like to use.&lt;/p&gt;
&lt;h4&gt;Installing Fail2Ban&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install fail2ban
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;My Fail2Ban Settings File&lt;/h4&gt;
&lt;p&gt;Fail2Ban by default doesn&apos;t really do much unless you adjust the settings file. Here is mine, but feel free to change it to your needs.&lt;/p&gt;
&lt;p&gt;All configuration files are in &lt;code&gt;/etc/fail2ban&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Configuration file examples and defaults are in two main files &lt;code&gt;/etc/fail2ban/fail2ban.conf&lt;/code&gt; and &lt;code&gt;/etc/fail2ban/jail.conf&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;My Config - &lt;code&gt;/etc/fail2ban/jail.local&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[DEFAULT]
ignoreip = 127.0.0.1/8 ::1
bantime = 3600
findtime = 600
maxretry = 5

[sshd]
enabled = true
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now in more complex service environments I would generally start adding services and programs like &lt;code&gt;ssh-jail.conf&lt;/code&gt; to the &lt;code&gt;/etc/fail2ban/jail.d/&lt;/code&gt; directory. Any program that hackers use is typically always under watch, like WordPress installs for example:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/etc/fail2ban/jail.d/wordpress.conf&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[wordpress]
enabled = true
filter = wordpress
logpath = /var/log/auth.log
maxretry = 3
port = http,https
bantime = 300
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Enabling Fail2Ban&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl enable fail2ban
sudo systemctl start fail2ban
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Operating System Level - Adding Repositories&lt;/h2&gt;
&lt;p&gt;Too many times do I see people installing and using 10+ repositories on a Linux install. Obviously, adding repositories to get the programs you want on your system is something you will do. However, there is a hierarchy to these repositories and if you just blindly trust and import all the keys to the repositories, they can and will override packages from the base distribution. This isn&apos;t good and can lead to security issues or even break your system. I&apos;d highly recommend putting a priority on these, so it will only use them when the package doesn&apos;t exist in that base repo.&lt;/p&gt;
&lt;p&gt;If you don&apos;t use any priority, often times the package you want from the added repo is installed and updated, but sometimes they add OTHER packages in that repo that will also overwrite existing packages, which can lead to some undesired results.&lt;/p&gt;
&lt;h3&gt;Prioritizing Repositories&lt;/h3&gt;
&lt;p&gt;Official documentation for APT (Debian) - &lt;a href=&quot;https://wiki.debian.org/DebianRepository/UseThirdParty&quot;&gt;https://wiki.debian.org/DebianRepository/UseThirdParty&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;All priority preference files are stored in the &lt;code&gt;/etc/apt/preferences.d/&lt;/code&gt; directory.&lt;/p&gt;
&lt;p&gt;Example: &lt;code&gt;volian.pref&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Package: *
Pin: origin deb.volian.org
Pin-Priority: 100
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Set specific packages to only install with the &lt;code&gt;Package: *&lt;/code&gt; Line&lt;/li&gt;
&lt;li&gt;Pin: Origin is the address of the repo&lt;/li&gt;
&lt;li&gt;Pin-Priority is generally 100 which means it will update packages NOT in base repos.
&lt;ul&gt;
&lt;li&gt;1 = do not auto update&lt;/li&gt;
&lt;li&gt;100 = update if not in other repos&lt;/li&gt;
&lt;li&gt;over 100 = overwrite base repos&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Arch doesn&apos;t have any priorities in pacman that I can find, but most are building from source with limited 3rd party repositories. Building from source presents even more dangers for those that are blindly installing programs through the AUR.&lt;/p&gt;
&lt;h2&gt;Application Level - Not using AppArmor or SELinux&lt;/h2&gt;
&lt;p&gt;Most Linux distributions have one of these installed by default, but there is one major one that most forget. Arch Linux. A lot of install scripts forget apparmor and SELinux is too complex for many to install. These programs do one massive security feature that many just don&apos;t realize. They can sandbox and limit program access even when they get elevated. If an application profile doesn&apos;t exist, they typically limit its access to the home folder and limit hardware access. You can customize application profiles to expand or limit access as needed. Without having either of the programs installed, you are putting yourself at risk.&lt;/p&gt;
&lt;p&gt;However, just the simple act of installing these programs often leads to them being used or setup. They typically are set up to be in complain mode for AppArmor or permissive mode for SELinux. While these are fine for logging and adding some security, it normally would NOT stop the program doing damage.&lt;/p&gt;
&lt;p&gt;I&apos;ve set these up in server environments and it is not trivial to do or maintain. Most, if not all, Linux desktops don&apos;t bother with setting these to enforce mode and blocking programs that don&apos;t comply to their application profile. This requires the end user to have knowledge of how to set up profiles and generate them when they are missing, so the programs will work correctly.&lt;/p&gt;
&lt;p&gt;To learn more about using them:
AppArmor Documentation &lt;a href=&quot;https://gitlab.com/apparmor/apparmor/-/wikis/Documentation&quot;&gt;https://gitlab.com/apparmor/apparmor/-/wikis/Documentation&lt;/a&gt;
SELinux Documentation &lt;a href=&quot;https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/selinux_users_and_administrators_guide/index&quot;&gt;https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/selinux_users_and_administrators_guide/index&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/QxNsyrftJ8I&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Shrink VMWare VMDK File</title><link>https://christitus.com/shrink-vmware-vmdk/</link><guid isPermaLink="true">https://christitus.com/shrink-vmware-vmdk/</guid><description>&lt;p&gt;This goes over reducing the size of a VMDK file using open-vm-tools and is used often in VMWare environments.&lt;/p&gt;

&lt;h2&gt;Tools Needed&lt;/h2&gt;
&lt;p&gt;I&apos;d recommend VMWare Workstation Pro, but you can get away with just using player if you don&apos;t have a license.&lt;/p&gt;
&lt;p&gt;Inside the Guest (Virtual Machine) you need to install &lt;code&gt;open-vm-tools&lt;/code&gt; on Linux which should be in the base repository for most main distributions.&lt;/p&gt;
&lt;h2&gt;Shrinking VMDK&lt;/h2&gt;
&lt;h3&gt;On Guest&lt;/h3&gt;
&lt;p&gt;These are done on the GUEST (Inside Virtual Machine)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;vmware-toolbox-cmd disk shrink /
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you are want to shrink a Windows Guest you need to install VMWare-Tools inside the VM. After the tools are installed, simply click the following in VMWare Workstation &lt;code&gt;VM Tab -&amp;gt; Manage -&amp;gt; Clean up Disks&lt;/code&gt; (Windows ONLY)&lt;/p&gt;
&lt;h3&gt;On Host&lt;/h3&gt;
&lt;p&gt;From inside your VMWare Workstation install you will find the following program &lt;code&gt;vmware-vdiskmanager&lt;/code&gt; this is where we finalize the vmdk by defragmenting it and doing the final shrink.&lt;/p&gt;
&lt;h4&gt;Defrag&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;vmware-vdiskmanager.exe -d /path/to/shrink.vmdk
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Final Shrink&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;vmware-vdiskmanager.exe -k /path/to/shrink.vmdk
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Example&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/vmware-vdisk.webp&quot; alt=&quot;vdisk&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Still Too Big?&lt;/h2&gt;
&lt;p&gt;If it is still too large, you can simply export the VM to OVF format inside VMWare Workstation. This will create a new vmdk file that will be considerably smaller. OVF is pretty easy to move to VirtualBox and other VM platforms as well.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;export to ovf&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/vmware-ovf.webp&quot; alt=&quot;ovf&quot; /&gt;&lt;/p&gt;
</description><pubDate>Sat, 30 Jul 2022 18:40:50 GMT</pubDate><content:encoded>&lt;p&gt;This goes over reducing the size of a VMDK file using open-vm-tools and is used often in VMWare environments.&lt;/p&gt;

&lt;h2&gt;Tools Needed&lt;/h2&gt;
&lt;p&gt;I&apos;d recommend VMWare Workstation Pro, but you can get away with just using player if you don&apos;t have a license.&lt;/p&gt;
&lt;p&gt;Inside the Guest (Virtual Machine) you need to install &lt;code&gt;open-vm-tools&lt;/code&gt; on Linux which should be in the base repository for most main distributions.&lt;/p&gt;
&lt;h2&gt;Shrinking VMDK&lt;/h2&gt;
&lt;h3&gt;On Guest&lt;/h3&gt;
&lt;p&gt;These are done on the GUEST (Inside Virtual Machine)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;vmware-toolbox-cmd disk shrink /
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you are want to shrink a Windows Guest you need to install VMWare-Tools inside the VM. After the tools are installed, simply click the following in VMWare Workstation &lt;code&gt;VM Tab -&amp;gt; Manage -&amp;gt; Clean up Disks&lt;/code&gt; (Windows ONLY)&lt;/p&gt;
&lt;h3&gt;On Host&lt;/h3&gt;
&lt;p&gt;From inside your VMWare Workstation install you will find the following program &lt;code&gt;vmware-vdiskmanager&lt;/code&gt; this is where we finalize the vmdk by defragmenting it and doing the final shrink.&lt;/p&gt;
&lt;h4&gt;Defrag&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;vmware-vdiskmanager.exe -d /path/to/shrink.vmdk
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Final Shrink&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;vmware-vdiskmanager.exe -k /path/to/shrink.vmdk
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Example&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/vmware-vdisk.webp&quot; alt=&quot;vdisk&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Still Too Big?&lt;/h2&gt;
&lt;p&gt;If it is still too large, you can simply export the VM to OVF format inside VMWare Workstation. This will create a new vmdk file that will be considerably smaller. OVF is pretty easy to move to VirtualBox and other VM platforms as well.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;export to ovf&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/vmware-ovf.webp&quot; alt=&quot;ovf&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>Unlock Steam Deck</title><link>https://christitus.com/unlock-steam-deck/</link><guid isPermaLink="true">https://christitus.com/unlock-steam-deck/</guid><description>&lt;p&gt;This article shows you how to make the steamdeck writable and a full blown desktop that you can install apps on that aren&apos;t Flatpak, AppImage, or Snaps. Simply use &lt;code&gt;yay -S packagename&lt;/code&gt; to install the app of your choice.&lt;/p&gt;

&lt;h2&gt;Make Desktop Usable with password&lt;/h2&gt;
&lt;p&gt;set user password with &lt;code&gt;passwd&lt;/code&gt; which then allows the use of sudo and various commands. By default the deck user comes with NO PASSWORD! without setting the user password you can NOT use &lt;code&gt;sudo&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Making the steamdeck writable&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo steamos-readonly disable
echo &quot;keyserver hkps://keyserver.ubuntu.com&quot; &amp;gt;&amp;gt; /etc/pacman.d/gnupg/gpg.conf
sudo pacman-key --init
sudo pacman-key --populate
sudo pacman-key --refresh-keys
yay -S base-devel
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Signing Issues - Package Installs&lt;/h2&gt;
&lt;p&gt;The repositories for holo and steam deck are very interesting. Here are the base repos and what it is using.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/etc/pacman/mirrrorlist&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Server = https://steamdeck-packages.steamos.cloud/archlinux-mirror/$repo/os/$arch
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The main issue is the gnupg signing is completely messed up and often fails when installing packages. This is because the core archlinux-keyring is badly out of date and it will show that any package you are trying to install is out of date, corrupt, or having marginal trust.&lt;/p&gt;
&lt;p&gt;Obviously changing the repos to official arch ones would fix this, but then that would change the kernel and a variety of other packages. To fix the key signatures the easiest thing is to grab the up to date keyring from the core archlinux repos and manually install it.&lt;/p&gt;
&lt;p&gt;Download Official archlinux-keyring ZST Package: &lt;a href=&quot;https://archlinux.org/packages/core/any/archlinux-keyring/download&quot;&gt;https://archlinux.org/packages/core/any/archlinux-keyring/download&lt;/a&gt;
Then install the downloaded ZST file through pacman - Ex. &lt;code&gt;sudo pacman -U archlinux-keyring-20220713-2-any.pkg.tar.zst&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This solves all your signing issues.&lt;/p&gt;
&lt;h2&gt;Making your own Steam Deck HTPC&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/holo.webp&quot; alt=&quot;holoiso&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The new steam interface for steam deck is absolutely a home run. It just works with so much functionality and much more when only controling your system with a controller.&lt;/p&gt;
&lt;p&gt;Check out HOLO-ISO - &lt;a href=&quot;https://github.com/theVakhovskeIsTaken/holoiso&quot;&gt;https://github.com/theVakhovskeIsTaken/holoiso&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;League of Legends on Linux / Steam&lt;/h2&gt;
&lt;p&gt;Many also asked about the League of Legends and other riot games on steam deck. Now this can be done on any Linux system, but the way its done changes all the time as Riot isn&apos;t very friendly to Linux. From the anti-cheat to the ridiculous launcher, it is always a nightmare to deal with unless the publisher stops smoking the devil&apos;s lettuce and actually listens to its customers. Because of the ever changing landscape around these two things stay subscribed to &lt;a href=&quot;https://www.reddit.com/r/leagueoflinux/&quot;&gt;https://www.reddit.com/r/leagueoflinux/&lt;/a&gt; sub reddit. Those guys are working day and night to make sure that LoL keeps playing on Linux and are an amazing community... UNLIKE most of League communities haha.&lt;/p&gt;
&lt;h2&gt;Steam Deck - Unexplored Potential&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/8oQdJjxn9EA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Thu, 28 Jul 2022 02:26:53 GMT</pubDate><content:encoded>&lt;p&gt;This article shows you how to make the steamdeck writable and a full blown desktop that you can install apps on that aren&apos;t Flatpak, AppImage, or Snaps. Simply use &lt;code&gt;yay -S packagename&lt;/code&gt; to install the app of your choice.&lt;/p&gt;

&lt;h2&gt;Make Desktop Usable with password&lt;/h2&gt;
&lt;p&gt;set user password with &lt;code&gt;passwd&lt;/code&gt; which then allows the use of sudo and various commands. By default the deck user comes with NO PASSWORD! without setting the user password you can NOT use &lt;code&gt;sudo&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Making the steamdeck writable&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo steamos-readonly disable
echo &quot;keyserver hkps://keyserver.ubuntu.com&quot; &amp;gt;&amp;gt; /etc/pacman.d/gnupg/gpg.conf
sudo pacman-key --init
sudo pacman-key --populate
sudo pacman-key --refresh-keys
yay -S base-devel
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Signing Issues - Package Installs&lt;/h2&gt;
&lt;p&gt;The repositories for holo and steam deck are very interesting. Here are the base repos and what it is using.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/etc/pacman/mirrrorlist&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Server = https://steamdeck-packages.steamos.cloud/archlinux-mirror/$repo/os/$arch
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The main issue is the gnupg signing is completely messed up and often fails when installing packages. This is because the core archlinux-keyring is badly out of date and it will show that any package you are trying to install is out of date, corrupt, or having marginal trust.&lt;/p&gt;
&lt;p&gt;Obviously changing the repos to official arch ones would fix this, but then that would change the kernel and a variety of other packages. To fix the key signatures the easiest thing is to grab the up to date keyring from the core archlinux repos and manually install it.&lt;/p&gt;
&lt;p&gt;Download Official archlinux-keyring ZST Package: &lt;a href=&quot;https://archlinux.org/packages/core/any/archlinux-keyring/download&quot;&gt;https://archlinux.org/packages/core/any/archlinux-keyring/download&lt;/a&gt;
Then install the downloaded ZST file through pacman - Ex. &lt;code&gt;sudo pacman -U archlinux-keyring-20220713-2-any.pkg.tar.zst&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This solves all your signing issues.&lt;/p&gt;
&lt;h2&gt;Making your own Steam Deck HTPC&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/holo.webp&quot; alt=&quot;holoiso&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The new steam interface for steam deck is absolutely a home run. It just works with so much functionality and much more when only controling your system with a controller.&lt;/p&gt;
&lt;p&gt;Check out HOLO-ISO - &lt;a href=&quot;https://github.com/theVakhovskeIsTaken/holoiso&quot;&gt;https://github.com/theVakhovskeIsTaken/holoiso&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;League of Legends on Linux / Steam&lt;/h2&gt;
&lt;p&gt;Many also asked about the League of Legends and other riot games on steam deck. Now this can be done on any Linux system, but the way its done changes all the time as Riot isn&apos;t very friendly to Linux. From the anti-cheat to the ridiculous launcher, it is always a nightmare to deal with unless the publisher stops smoking the devil&apos;s lettuce and actually listens to its customers. Because of the ever changing landscape around these two things stay subscribed to &lt;a href=&quot;https://www.reddit.com/r/leagueoflinux/&quot;&gt;https://www.reddit.com/r/leagueoflinux/&lt;/a&gt; sub reddit. Those guys are working day and night to make sure that LoL keeps playing on Linux and are an amazing community... UNLIKE most of League communities haha.&lt;/p&gt;
&lt;h2&gt;Steam Deck - Unexplored Potential&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/8oQdJjxn9EA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Speedup Linux</title><link>https://christitus.com/speedup-linux/</link><guid isPermaLink="true">https://christitus.com/speedup-linux/</guid><description>&lt;p&gt;Linux by default is meant for servers and actually decreases the performance for greater security. While this great in business, when using Linux as a desktop it is not ideal unless your are serving other devices on your network with that machine.&lt;/p&gt;

&lt;h2&gt;Disable Mitigations&lt;/h2&gt;
&lt;p&gt;This will have a substantial increase in performance just by doing disable many mitigations that happen in multi-threaded systems. The more core count you have the greater the performance gain. Some performances increases can be as large as 30%, but the average increase is about 10%.&lt;/p&gt;
&lt;p&gt;Add this to your &lt;code&gt;/etc/default/grub&lt;/code&gt; under line &lt;code&gt;GRUB_CMDLINE_LINUX=&quot;rhgb quiet&quot;&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;GRUB_CMDLINE_LINUX=&quot;rhgb quiet mitigations=off&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;ZSwap for 16GB or Less Systems&lt;/h2&gt;
&lt;p&gt;Z Swap is the a neat Linux feature that compresses data that is about to enter your swap file. This causes it to be used quite a bit less and can give a performance uplift to those with a small amount of memory. If you have a system with 32GB or greater, I wouldn&apos;t recommend doing this.&lt;/p&gt;
&lt;p&gt;Add this to your &lt;code&gt;/etc/default/grub&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;GRUB_CMDLINE_LINUX=&quot;zswap.enabled=1 rhgb quiet mitigations=off&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Systems older than Linux 5.11&lt;/h2&gt;
&lt;p&gt;The now-retired Make Linux Fast Again project collected a massive amount of the flags including the ones used above. However, this is mainly for older Linux installs and why I really don&apos;t use it. These are all the flags that project recommended:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;noibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier mds=off tsx=on tsx_async_abort=off mitigations=off
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Is this really needed?&lt;/h2&gt;
&lt;p&gt;While all this above isn&apos;t really needed, it is a really neat way to squeeze a bit performance out of your systems. It is ONLY recommended for those not sharing services and files through your network. It is also NOT recommended for those using Linux in a virtual machine as many of the mitigations are for VM protection. So use this RESPONSIBLY and don&apos;t just slap it on every Linux install.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/8XueTkMTNvc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Sun, 24 Jul 2022 15:30:53 GMT</pubDate><content:encoded>&lt;p&gt;Linux by default is meant for servers and actually decreases the performance for greater security. While this great in business, when using Linux as a desktop it is not ideal unless your are serving other devices on your network with that machine.&lt;/p&gt;

&lt;h2&gt;Disable Mitigations&lt;/h2&gt;
&lt;p&gt;This will have a substantial increase in performance just by doing disable many mitigations that happen in multi-threaded systems. The more core count you have the greater the performance gain. Some performances increases can be as large as 30%, but the average increase is about 10%.&lt;/p&gt;
&lt;p&gt;Add this to your &lt;code&gt;/etc/default/grub&lt;/code&gt; under line &lt;code&gt;GRUB_CMDLINE_LINUX=&quot;rhgb quiet&quot;&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;GRUB_CMDLINE_LINUX=&quot;rhgb quiet mitigations=off&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;ZSwap for 16GB or Less Systems&lt;/h2&gt;
&lt;p&gt;Z Swap is the a neat Linux feature that compresses data that is about to enter your swap file. This causes it to be used quite a bit less and can give a performance uplift to those with a small amount of memory. If you have a system with 32GB or greater, I wouldn&apos;t recommend doing this.&lt;/p&gt;
&lt;p&gt;Add this to your &lt;code&gt;/etc/default/grub&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;GRUB_CMDLINE_LINUX=&quot;zswap.enabled=1 rhgb quiet mitigations=off&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Systems older than Linux 5.11&lt;/h2&gt;
&lt;p&gt;The now-retired Make Linux Fast Again project collected a massive amount of the flags including the ones used above. However, this is mainly for older Linux installs and why I really don&apos;t use it. These are all the flags that project recommended:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;noibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier mds=off tsx=on tsx_async_abort=off mitigations=off
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Is this really needed?&lt;/h2&gt;
&lt;p&gt;While all this above isn&apos;t really needed, it is a really neat way to squeeze a bit performance out of your systems. It is ONLY recommended for those not sharing services and files through your network. It is also NOT recommended for those using Linux in a virtual machine as many of the mitigations are for VM protection. So use this RESPONSIBLY and don&apos;t just slap it on every Linux install.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/8XueTkMTNvc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Star Trek Window Management</title><link>https://christitus.com/star-trek-os/</link><guid isPermaLink="true">https://christitus.com/star-trek-os/</guid><description>&lt;p&gt;The LCARS system from Star Trek is a staple in the geek world. Ever since it made its first appearence in the Next Generation TV series in the 90s people have been obsessed with recreating that system. Leave it to Linux to give a functional LCARS recreation for those Star Trek fans out there.&lt;/p&gt;

&lt;h2&gt;The LCARS Desktop Environment&lt;/h2&gt;
&lt;p&gt;This was created and hosted on &lt;a href=&quot;https://lcarsde.github.io/index.html&quot;&gt;https://lcarsde.github.io/index.html&lt;/a&gt;. The creator made 5 packages that you need to install before you can use it. The entire environment isn&apos;t all that practical unless you have a massive monitor because of all the screen real estate lost to the LCARS design. This isn&apos;t very up to date so I recommend using debian version 10 (buster) for maximum compatibility. Newer version of Debian have issues with the &lt;code&gt;python3-posix-ipc&lt;/code&gt; dependancy.&lt;/p&gt;
&lt;p&gt;Download base Debian 10 (buster) distro @ &lt;a href=&quot;https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/archive/10.12.0+nonfree/amd64/iso-cd/firmware-10.12.0-amd64-netinst.iso&quot;&gt;https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/archive/10.12.0+nonfree/amd64/iso-cd/firmware-10.12.0-amd64-netinst.iso&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Install nothing but base system. No GUI components to keep it light.&lt;/p&gt;
&lt;h3&gt;Install Dependancies&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Xorg&lt;/li&gt;
&lt;li&gt;LightDM&lt;/li&gt;
&lt;li&gt;Firefox (or other browser)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Set Graphical install &lt;code&gt;sudo systemctl set-default graphical.target&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: There are a ton of different python dependancies and you need to track these down to utilize the full desktop environment&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;My LCARS script&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;mkdir lcars-build
cd lcars-build
wget https://github.com/lcarsde/lcarswm/releases/download/22.1/lcarswm_22.1_amd64.deb
wget https://github.com/lcarsde/menu/releases/download/22.1/lcarsde-app-menu_22.1_amd64.deb
wget https://github.com/lcarsde/status-bar/releases/download/22.2/status-bar_22.2_amd64.deb
wget https://github.com/lcarsde/application-starter/releases/download/21.1/lcarsde-application-starter_21.1_amd64.deb
wget https://github.com/lcarsde/logout/releases/download/20.1/lcarsde-logout_20.1_amd64.deb
sudo dpkg -i *.deb
sudo apt -f install
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Using LCARS&lt;/h2&gt;
&lt;p&gt;To use it after installation, you logout of your desktop and select LCARS instead of KDE,GNOME, or whatever your current system is. This is an extremely minimal install so you don&apos;t have to worry about it conflicting with your current install.&lt;/p&gt;
&lt;p&gt;The complete manual is located @ &lt;a href=&quot;https://lcarsde.github.io/manual.html&quot;&gt;https://lcarsde.github.io/manual.html&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Setting up intial configuration&lt;/h3&gt;
&lt;p&gt;Edit the file @ &lt;code&gt;~/.config/lcarde/status-config.xml&lt;/code&gt; look for these lines and change them to your system:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;widget name=&quot;LcarsdeWifiStatus&quot;&amp;gt;
 41         &amp;lt;position x=&quot;4&quot; y=&quot;2&quot; width=&quot;1&quot; height=&quot;1&quot; /&amp;gt;
 42         &amp;lt;properties&amp;gt;
 43             &amp;lt;!-- Device should correspond to a folder in /sys/class/net that starts with &quot;w&quot; --&amp;gt;
 44             &amp;lt;property key=&quot;device&quot; **value=&quot;wlp2s0&quot;** /&amp;gt;
 45         &amp;lt;/properties&amp;gt;
 46     &amp;lt;/widget&amp;gt;
 47     &amp;lt;widget name=&quot;LcarsdeEthStatus&quot;&amp;gt;
 48         &amp;lt;position x=&quot;4&quot; y=&quot;1&quot; width=&quot;1&quot; height=&quot;1&quot; /&amp;gt;
 49         &amp;lt;properties&amp;gt;
 50             &amp;lt;!-- Device should correspond to a folder in /sys/class/net that starts with &quot;e&quot; --&amp;gt;
 51             &amp;lt;property key=&quot;device&quot; **value=&quot;enp0s20f0u2u3i5&quot;** /&amp;gt;
 52         &amp;lt;/properties&amp;gt;
 53     &amp;lt;/widget&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Change the programs to what you use in &lt;code&gt;~/.config/lcarde/settings.xml&lt;/code&gt;
Example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
  2 &amp;lt;lcarswm&amp;gt;
  3     &amp;lt;key-config&amp;gt;
  4         &amp;lt;!-- keys for executing programs --&amp;gt;
  5         &amp;lt;binding&amp;gt;
  6             &amp;lt;keys&amp;gt;Lin+T&amp;lt;/keys&amp;gt;
  7             &amp;lt;exec&amp;gt;kitty&amp;lt;/exec&amp;gt;
  8         &amp;lt;/binding&amp;gt;
  9         &amp;lt;binding&amp;gt;
 10             &amp;lt;keys&amp;gt;Lin+B&amp;lt;/keys&amp;gt;
 11             &amp;lt;exec&amp;gt;brave-browser&amp;lt;/exec&amp;gt;
 12         &amp;lt;/binding&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Images&lt;/h2&gt;
&lt;p&gt;The prebuilt image download is no longer available. Use the build instructions above to create the environment.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;p&gt;_Release Date: July 22, 2022*&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/hbg-QgKOdac&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Thu, 21 Jul 2022 17:07:52 GMT</pubDate><content:encoded>&lt;p&gt;The LCARS system from Star Trek is a staple in the geek world. Ever since it made its first appearence in the Next Generation TV series in the 90s people have been obsessed with recreating that system. Leave it to Linux to give a functional LCARS recreation for those Star Trek fans out there.&lt;/p&gt;

&lt;h2&gt;The LCARS Desktop Environment&lt;/h2&gt;
&lt;p&gt;This was created and hosted on &lt;a href=&quot;https://lcarsde.github.io/index.html&quot;&gt;https://lcarsde.github.io/index.html&lt;/a&gt;. The creator made 5 packages that you need to install before you can use it. The entire environment isn&apos;t all that practical unless you have a massive monitor because of all the screen real estate lost to the LCARS design. This isn&apos;t very up to date so I recommend using debian version 10 (buster) for maximum compatibility. Newer version of Debian have issues with the &lt;code&gt;python3-posix-ipc&lt;/code&gt; dependancy.&lt;/p&gt;
&lt;p&gt;Download base Debian 10 (buster) distro @ &lt;a href=&quot;https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/archive/10.12.0+nonfree/amd64/iso-cd/firmware-10.12.0-amd64-netinst.iso&quot;&gt;https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/archive/10.12.0+nonfree/amd64/iso-cd/firmware-10.12.0-amd64-netinst.iso&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Install nothing but base system. No GUI components to keep it light.&lt;/p&gt;
&lt;h3&gt;Install Dependancies&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Xorg&lt;/li&gt;
&lt;li&gt;LightDM&lt;/li&gt;
&lt;li&gt;Firefox (or other browser)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Set Graphical install &lt;code&gt;sudo systemctl set-default graphical.target&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: There are a ton of different python dependancies and you need to track these down to utilize the full desktop environment&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;My LCARS script&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;mkdir lcars-build
cd lcars-build
wget https://github.com/lcarsde/lcarswm/releases/download/22.1/lcarswm_22.1_amd64.deb
wget https://github.com/lcarsde/menu/releases/download/22.1/lcarsde-app-menu_22.1_amd64.deb
wget https://github.com/lcarsde/status-bar/releases/download/22.2/status-bar_22.2_amd64.deb
wget https://github.com/lcarsde/application-starter/releases/download/21.1/lcarsde-application-starter_21.1_amd64.deb
wget https://github.com/lcarsde/logout/releases/download/20.1/lcarsde-logout_20.1_amd64.deb
sudo dpkg -i *.deb
sudo apt -f install
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Using LCARS&lt;/h2&gt;
&lt;p&gt;To use it after installation, you logout of your desktop and select LCARS instead of KDE,GNOME, or whatever your current system is. This is an extremely minimal install so you don&apos;t have to worry about it conflicting with your current install.&lt;/p&gt;
&lt;p&gt;The complete manual is located @ &lt;a href=&quot;https://lcarsde.github.io/manual.html&quot;&gt;https://lcarsde.github.io/manual.html&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Setting up intial configuration&lt;/h3&gt;
&lt;p&gt;Edit the file @ &lt;code&gt;~/.config/lcarde/status-config.xml&lt;/code&gt; look for these lines and change them to your system:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;widget name=&quot;LcarsdeWifiStatus&quot;&amp;gt;
 41         &amp;lt;position x=&quot;4&quot; y=&quot;2&quot; width=&quot;1&quot; height=&quot;1&quot; /&amp;gt;
 42         &amp;lt;properties&amp;gt;
 43             &amp;lt;!-- Device should correspond to a folder in /sys/class/net that starts with &quot;w&quot; --&amp;gt;
 44             &amp;lt;property key=&quot;device&quot; **value=&quot;wlp2s0&quot;** /&amp;gt;
 45         &amp;lt;/properties&amp;gt;
 46     &amp;lt;/widget&amp;gt;
 47     &amp;lt;widget name=&quot;LcarsdeEthStatus&quot;&amp;gt;
 48         &amp;lt;position x=&quot;4&quot; y=&quot;1&quot; width=&quot;1&quot; height=&quot;1&quot; /&amp;gt;
 49         &amp;lt;properties&amp;gt;
 50             &amp;lt;!-- Device should correspond to a folder in /sys/class/net that starts with &quot;e&quot; --&amp;gt;
 51             &amp;lt;property key=&quot;device&quot; **value=&quot;enp0s20f0u2u3i5&quot;** /&amp;gt;
 52         &amp;lt;/properties&amp;gt;
 53     &amp;lt;/widget&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Change the programs to what you use in &lt;code&gt;~/.config/lcarde/settings.xml&lt;/code&gt;
Example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
  2 &amp;lt;lcarswm&amp;gt;
  3     &amp;lt;key-config&amp;gt;
  4         &amp;lt;!-- keys for executing programs --&amp;gt;
  5         &amp;lt;binding&amp;gt;
  6             &amp;lt;keys&amp;gt;Lin+T&amp;lt;/keys&amp;gt;
  7             &amp;lt;exec&amp;gt;kitty&amp;lt;/exec&amp;gt;
  8         &amp;lt;/binding&amp;gt;
  9         &amp;lt;binding&amp;gt;
 10             &amp;lt;keys&amp;gt;Lin+B&amp;lt;/keys&amp;gt;
 11             &amp;lt;exec&amp;gt;brave-browser&amp;lt;/exec&amp;gt;
 12         &amp;lt;/binding&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Images&lt;/h2&gt;
&lt;p&gt;The prebuilt image download is no longer available. Use the build instructions above to create the environment.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;p&gt;_Release Date: July 22, 2022*&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/hbg-QgKOdac&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Stop Using APT</title><link>https://christitus.com/stop-using-apt/</link><guid isPermaLink="true">https://christitus.com/stop-using-apt/</guid><description>&lt;p&gt;APT is slow... single downloading and generally uses slow mirrors as it doesn&apos;t optimize them out of the box. It also doesn&apos;t have a history so rolling back updates can really suck.&lt;/p&gt;

&lt;p&gt;Welp, all that is now fixed with &lt;a href=&quot;https://gitlab.com/volian/nala&quot;&gt;Nala&lt;/a&gt; and it is absolutely wonderful. Not only does it fix all that listed above but it makes the updates look beautiful.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/nala/nala.webp&quot; alt=&quot;nala-image&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Install&lt;/h2&gt;
&lt;p&gt;Add Repository - NOT NEEDED FOR Debian SID/testing&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;echo &quot;deb http://deb.volian.org/volian/ scar main&quot; | sudo tee /etc/apt/sources.list.d/volian-archive-scar-unstable.list; wget -qO - https://deb.volian.org/volian/scar.key | sudo tee /etc/apt/trusted.gpg.d/volian-archive-scar-unstable.gpg
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Install Nala on any Debian Sid or Ubuntu 22+ with:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt install nala
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Install on Debian Stable or Ubuntu 21 and below:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt install nala-legacy
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Update Mirrors&lt;/h2&gt;
&lt;p&gt;This will drastically speed up your downloads&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo nala fetch
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Select the mirrors you want from the list. Typically you will want to select three. Here is an example:
&lt;img src=&quot;/images/2022/nala/mirror.webp&quot; alt=&quot;nala-mirror&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;View Update History&lt;/h2&gt;
&lt;p&gt;Nala has a robust history and even an UNDO! These commands are a life saver.&lt;/p&gt;
&lt;p&gt;View the history:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nala history
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Undo a history (&lt;code&gt;sudo nala history undo ID&lt;/code&gt;):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo nala history undo 1
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Convert APT to Nala&lt;/h2&gt;
&lt;p&gt;Add the following to your &lt;code&gt;~/.bashrc&lt;/code&gt; AND &lt;code&gt;/root/.bashrc&lt;/code&gt; file:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;apt() { 
  command nala &quot;$@&quot;
}
sudo() {
  if [ &quot;$1&quot; = &quot;apt&quot; ]; then
    shift
    command sudo nala &quot;$@&quot;
  else
    command sudo &quot;$@&quot;
  fi
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;From here you can install programs with apt or nala command and it will always work perfectly!&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This is everything I want in a package manager and more. My hat is off to the team that came up with all these drastic improvements and it has made my life so much easier on Debian based systems!&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/oroSkR4Nn_w&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Tue, 19 Jul 2022 22:32:28 GMT</pubDate><content:encoded>&lt;p&gt;APT is slow... single downloading and generally uses slow mirrors as it doesn&apos;t optimize them out of the box. It also doesn&apos;t have a history so rolling back updates can really suck.&lt;/p&gt;

&lt;p&gt;Welp, all that is now fixed with &lt;a href=&quot;https://gitlab.com/volian/nala&quot;&gt;Nala&lt;/a&gt; and it is absolutely wonderful. Not only does it fix all that listed above but it makes the updates look beautiful.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/nala/nala.webp&quot; alt=&quot;nala-image&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Install&lt;/h2&gt;
&lt;p&gt;Add Repository - NOT NEEDED FOR Debian SID/testing&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;echo &quot;deb http://deb.volian.org/volian/ scar main&quot; | sudo tee /etc/apt/sources.list.d/volian-archive-scar-unstable.list; wget -qO - https://deb.volian.org/volian/scar.key | sudo tee /etc/apt/trusted.gpg.d/volian-archive-scar-unstable.gpg
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Install Nala on any Debian Sid or Ubuntu 22+ with:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt install nala
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Install on Debian Stable or Ubuntu 21 and below:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt install nala-legacy
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Update Mirrors&lt;/h2&gt;
&lt;p&gt;This will drastically speed up your downloads&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo nala fetch
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Select the mirrors you want from the list. Typically you will want to select three. Here is an example:
&lt;img src=&quot;/images/2022/nala/mirror.webp&quot; alt=&quot;nala-mirror&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;View Update History&lt;/h2&gt;
&lt;p&gt;Nala has a robust history and even an UNDO! These commands are a life saver.&lt;/p&gt;
&lt;p&gt;View the history:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nala history
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Undo a history (&lt;code&gt;sudo nala history undo ID&lt;/code&gt;):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo nala history undo 1
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Convert APT to Nala&lt;/h2&gt;
&lt;p&gt;Add the following to your &lt;code&gt;~/.bashrc&lt;/code&gt; AND &lt;code&gt;/root/.bashrc&lt;/code&gt; file:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;apt() { 
  command nala &quot;$@&quot;
}
sudo() {
  if [ &quot;$1&quot; = &quot;apt&quot; ]; then
    shift
    command sudo nala &quot;$@&quot;
  else
    command sudo &quot;$@&quot;
  fi
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;From here you can install programs with apt or nala command and it will always work perfectly!&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This is everything I want in a package manager and more. My hat is off to the team that came up with all these drastic improvements and it has made my life so much easier on Debian based systems!&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/oroSkR4Nn_w&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>You are NOT safe in Windows</title><link>https://christitus.com/not-safe-windows/</link><guid isPermaLink="true">https://christitus.com/not-safe-windows/</guid><description>&lt;p&gt;Thank you to all the Microsoft Windows users from all the Technicians that work on this operating system. Without your continued use, we wouldn&apos;t have jobs.&lt;/p&gt;

&lt;h2&gt;Why is Windows NOT secure?&lt;/h2&gt;
&lt;p&gt;Legacy systems and a fundamental flaw in system design. It is far to easy to get system level access through a variety of methods. Let&apos;s go over the systems that you can use to exploit a traditional Windows user, so you know what NOT to do.&lt;/p&gt;
&lt;h3&gt;PowerShell&lt;/h3&gt;
&lt;p&gt;Powershell is one of the most powerful tools in Windows, but it is at a cost. While it makes it incredibly easy to administrator and make modifications to massive amounts of systems quickly, it can be abused. Pretty much anything you want to do can be accomplished with Powershell. This is most evident in business systems where it is required to administer systems and even Office 365 in the cloud.&lt;/p&gt;
&lt;h3&gt;Task Scheduler&lt;/h3&gt;
&lt;p&gt;So many processes end up running at a system level in Task scheduler and something the core system relied heavily on. This can not be disabled and is always one of the biggest Achilles heels for Windows. I am often disabling tasks to debloat systems such as auto-submission tools Microsoft uses like Telemetry and even Defender bug reports.&lt;/p&gt;
&lt;h3&gt;Visual Basic - .vbs scripts&lt;/h3&gt;
&lt;p&gt;VBS scripts often provide a level of scripting that isn&apos;t possible with many other methods. While this is good in business, it is very bad for the end user. I designed a vbs script to migrate on-premises outlook mailboxes to O365 mailboxes so a thousand users wouldn&apos;t have to redownload all their emails. However this can easily be abused for those malicious actors out there. Be cautious of this loophole and any vbs script that runs on your system.&lt;/p&gt;
&lt;h3&gt;Group Policy&lt;/h3&gt;
&lt;p&gt;Again this is used in many pro+ systems and even if you aren&apos;t part of a domain can be abused by using &lt;code&gt;gpedit.msc&lt;/code&gt; to create a local policy that can run scripts, lock user features, and much more. Home users typically don&apos;t have this functionally unless a hack is done.&lt;/p&gt;
&lt;p&gt;If you want Group Polcy as a home user type the following in an elevated to Administrator prompt:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;dism /online /norestart /add-package:&quot;%SystemRoot%servicingPackages{{PackageFileName}}**
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Registry&lt;/h3&gt;
&lt;p&gt;So many things can be accomplished with the registry, such as auto login, and various hooks that can happen by just launching your web browser or windows explorer. Registry is basically the brain of windows and can be exploited easily to do pretty much anything.&lt;/p&gt;
&lt;h2&gt;How to protect yourself&lt;/h2&gt;
&lt;p&gt;I highly recommend hardening your system with just basic tools that do NOT run in the background, but disable many of the tools above. These tools are wonderful in the right hands, but world ending the wrong ones.&lt;/p&gt;
&lt;p&gt;A simple free hardening tool on Github will disable many of these attack surfaces and do FAR more than any antivirus or internet security suite can, while also not adding ANY overhead or extra processes to your system.&lt;/p&gt;
&lt;p&gt;HardenTools to disable services: &lt;a href=&quot;https://github.com/securitywithoutborders/hardentools&quot;&gt;https://github.com/securitywithoutborders/hardentools&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/hardentools.webp&quot; alt=&quot;harden&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/Bh8HqxxI4pc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 15 Jul 2022 18:14:39 GMT</pubDate><content:encoded>&lt;p&gt;Thank you to all the Microsoft Windows users from all the Technicians that work on this operating system. Without your continued use, we wouldn&apos;t have jobs.&lt;/p&gt;

&lt;h2&gt;Why is Windows NOT secure?&lt;/h2&gt;
&lt;p&gt;Legacy systems and a fundamental flaw in system design. It is far to easy to get system level access through a variety of methods. Let&apos;s go over the systems that you can use to exploit a traditional Windows user, so you know what NOT to do.&lt;/p&gt;
&lt;h3&gt;PowerShell&lt;/h3&gt;
&lt;p&gt;Powershell is one of the most powerful tools in Windows, but it is at a cost. While it makes it incredibly easy to administrator and make modifications to massive amounts of systems quickly, it can be abused. Pretty much anything you want to do can be accomplished with Powershell. This is most evident in business systems where it is required to administer systems and even Office 365 in the cloud.&lt;/p&gt;
&lt;h3&gt;Task Scheduler&lt;/h3&gt;
&lt;p&gt;So many processes end up running at a system level in Task scheduler and something the core system relied heavily on. This can not be disabled and is always one of the biggest Achilles heels for Windows. I am often disabling tasks to debloat systems such as auto-submission tools Microsoft uses like Telemetry and even Defender bug reports.&lt;/p&gt;
&lt;h3&gt;Visual Basic - .vbs scripts&lt;/h3&gt;
&lt;p&gt;VBS scripts often provide a level of scripting that isn&apos;t possible with many other methods. While this is good in business, it is very bad for the end user. I designed a vbs script to migrate on-premises outlook mailboxes to O365 mailboxes so a thousand users wouldn&apos;t have to redownload all their emails. However this can easily be abused for those malicious actors out there. Be cautious of this loophole and any vbs script that runs on your system.&lt;/p&gt;
&lt;h3&gt;Group Policy&lt;/h3&gt;
&lt;p&gt;Again this is used in many pro+ systems and even if you aren&apos;t part of a domain can be abused by using &lt;code&gt;gpedit.msc&lt;/code&gt; to create a local policy that can run scripts, lock user features, and much more. Home users typically don&apos;t have this functionally unless a hack is done.&lt;/p&gt;
&lt;p&gt;If you want Group Polcy as a home user type the following in an elevated to Administrator prompt:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;dism /online /norestart /add-package:&quot;%SystemRoot%servicingPackages{{PackageFileName}}**
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Registry&lt;/h3&gt;
&lt;p&gt;So many things can be accomplished with the registry, such as auto login, and various hooks that can happen by just launching your web browser or windows explorer. Registry is basically the brain of windows and can be exploited easily to do pretty much anything.&lt;/p&gt;
&lt;h2&gt;How to protect yourself&lt;/h2&gt;
&lt;p&gt;I highly recommend hardening your system with just basic tools that do NOT run in the background, but disable many of the tools above. These tools are wonderful in the right hands, but world ending the wrong ones.&lt;/p&gt;
&lt;p&gt;A simple free hardening tool on Github will disable many of these attack surfaces and do FAR more than any antivirus or internet security suite can, while also not adding ANY overhead or extra processes to your system.&lt;/p&gt;
&lt;p&gt;HardenTools to disable services: &lt;a href=&quot;https://github.com/securitywithoutborders/hardentools&quot;&gt;https://github.com/securitywithoutborders/hardentools&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/hardentools.webp&quot; alt=&quot;harden&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/Bh8HqxxI4pc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Why I Hate Windows Defender</title><link>https://christitus.com/bad-windows-defender/</link><guid isPermaLink="true">https://christitus.com/bad-windows-defender/</guid><description>&lt;p&gt;Windows Defender is often seen as a good antivirus, but I want to inform you of a cost noone sees but developers because of Defender.&lt;/p&gt;

&lt;h2&gt;Is Windows Defender Good?&lt;/h2&gt;
&lt;p&gt;Yes. It does detect a ton of viruses and have good detection rates as long as you are online, since it relies heavily on its online connection. However, there is a dark side to having Microsoft control this entire part of your PC that we need to go over. The false positives are excessive and I believe it is by design.&lt;/p&gt;
&lt;h2&gt;The Mafia for Software Developers&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022-thumbs/bad-windows-defender.webp&quot; alt=&quot;bad-defender&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Smartscreen is powered by Windows Defender and you have to buy a $300 A YEAR code signing license with Extended Validation to bypass it. The EV cert is close to the mafia extorting business users for &quot;protection&quot;. If you don&apos;t use Defender, you don&apos;t need to worry about smartscreen. Using standard code signing with an external anti-virus will work close to the same as Defender is disabled when you use a 3rd party av.&lt;/p&gt;
&lt;h3&gt;Code Signing Cost&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Cost for 1 year - prices as of 7/11/2022&lt;/em&gt;&lt;/p&gt;
&lt;div class=&quot;table-scroll&quot;&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Site&lt;/th&gt;&lt;th&gt;Extended Validation&lt;/th&gt;&lt;th&gt;Regular Validation&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Comodo&lt;/td&gt;&lt;td&gt;$319&lt;/td&gt;&lt;td&gt;$85&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Instant SSL&lt;/td&gt;&lt;td&gt;$299&lt;/td&gt;&lt;td&gt;$166&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sectigo&lt;/td&gt;&lt;td&gt;$399&lt;/td&gt;&lt;td&gt;$179&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DigiCert&lt;/td&gt;&lt;td&gt;$566&lt;/td&gt;&lt;td&gt;$404&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;The big question is &quot;Why does extended validation cost so much more?&quot; and it is simply gatekeeping at its best. Many SSL companies will tell you it is because the &quot;vetting process is harder&quot;, but I smell bullshit on that. It costs usually double and sometimes more. The only difference is it requires a hardware cryptographic key and Microsoft smartscreen immediately gives it a pass on all scans.&lt;/p&gt;
&lt;div class=&quot;table-scroll&quot;&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Extended Validation&lt;/th&gt;&lt;th&gt;Regular Validation&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Hardware Key&lt;/td&gt;&lt;td&gt;Software Key&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Smartscreen Bypassed&lt;/td&gt;&lt;td&gt;Smartscreen Error&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;I can&apos;t find anything in regards to who is really profiting the most of the Extended Validation code signing and if Microsoft is getting a cut since it is basically the only reason to have one. However, the entire situation is a bit suspect and any development person I know loath the process that Extended Validation is.&lt;/p&gt;
&lt;h2&gt;Free Anti-Virus Alternatives&lt;/h2&gt;
&lt;p&gt;Is there something better than windows defender that is free? I&apos;d say &lt;a href=&quot;https://www.bitdefender.com/solutions/free.html&quot;&gt;BitDefender Free&lt;/a&gt; offers superior protection.&lt;/p&gt;
&lt;p&gt;This is a drastic shift in recommendation for me, because I used to say &quot;All Free AV is worthless&quot;, but now I see this from a different angle. Don&apos;t get me wrong most FREE antivirus is glorified advertising for a paid product that essentially does the same thing. After looking at all the free offerings, I&apos;d say BitDefender Free is better than using Defender.&lt;/p&gt;
&lt;h2&gt;Paid Anti-Virus&lt;/h2&gt;
&lt;p&gt;For those that want good detection rates, better privacy, and low overhead. The antivirus I have recommend has stayed the same for years. I recommend &lt;a href=&quot;https://www.eset.com/&quot;&gt;ESET&lt;/a&gt; for this because it is a proven antivirus that isn&apos;t as intrusive as the others.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/9P6r7DLS77Q&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 11 Jul 2022 16:36:33 GMT</pubDate><content:encoded>&lt;p&gt;Windows Defender is often seen as a good antivirus, but I want to inform you of a cost noone sees but developers because of Defender.&lt;/p&gt;

&lt;h2&gt;Is Windows Defender Good?&lt;/h2&gt;
&lt;p&gt;Yes. It does detect a ton of viruses and have good detection rates as long as you are online, since it relies heavily on its online connection. However, there is a dark side to having Microsoft control this entire part of your PC that we need to go over. The false positives are excessive and I believe it is by design.&lt;/p&gt;
&lt;h2&gt;The Mafia for Software Developers&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022-thumbs/bad-windows-defender.webp&quot; alt=&quot;bad-defender&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Smartscreen is powered by Windows Defender and you have to buy a $300 A YEAR code signing license with Extended Validation to bypass it. The EV cert is close to the mafia extorting business users for &quot;protection&quot;. If you don&apos;t use Defender, you don&apos;t need to worry about smartscreen. Using standard code signing with an external anti-virus will work close to the same as Defender is disabled when you use a 3rd party av.&lt;/p&gt;
&lt;h3&gt;Code Signing Cost&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Cost for 1 year - prices as of 7/11/2022&lt;/em&gt;&lt;/p&gt;
&lt;div class=&quot;table-scroll&quot;&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Site&lt;/th&gt;&lt;th&gt;Extended Validation&lt;/th&gt;&lt;th&gt;Regular Validation&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Comodo&lt;/td&gt;&lt;td&gt;$319&lt;/td&gt;&lt;td&gt;$85&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Instant SSL&lt;/td&gt;&lt;td&gt;$299&lt;/td&gt;&lt;td&gt;$166&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sectigo&lt;/td&gt;&lt;td&gt;$399&lt;/td&gt;&lt;td&gt;$179&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DigiCert&lt;/td&gt;&lt;td&gt;$566&lt;/td&gt;&lt;td&gt;$404&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;The big question is &quot;Why does extended validation cost so much more?&quot; and it is simply gatekeeping at its best. Many SSL companies will tell you it is because the &quot;vetting process is harder&quot;, but I smell bullshit on that. It costs usually double and sometimes more. The only difference is it requires a hardware cryptographic key and Microsoft smartscreen immediately gives it a pass on all scans.&lt;/p&gt;
&lt;div class=&quot;table-scroll&quot;&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Extended Validation&lt;/th&gt;&lt;th&gt;Regular Validation&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Hardware Key&lt;/td&gt;&lt;td&gt;Software Key&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Smartscreen Bypassed&lt;/td&gt;&lt;td&gt;Smartscreen Error&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;I can&apos;t find anything in regards to who is really profiting the most of the Extended Validation code signing and if Microsoft is getting a cut since it is basically the only reason to have one. However, the entire situation is a bit suspect and any development person I know loath the process that Extended Validation is.&lt;/p&gt;
&lt;h2&gt;Free Anti-Virus Alternatives&lt;/h2&gt;
&lt;p&gt;Is there something better than windows defender that is free? I&apos;d say &lt;a href=&quot;https://www.bitdefender.com/solutions/free.html&quot;&gt;BitDefender Free&lt;/a&gt; offers superior protection.&lt;/p&gt;
&lt;p&gt;This is a drastic shift in recommendation for me, because I used to say &quot;All Free AV is worthless&quot;, but now I see this from a different angle. Don&apos;t get me wrong most FREE antivirus is glorified advertising for a paid product that essentially does the same thing. After looking at all the free offerings, I&apos;d say BitDefender Free is better than using Defender.&lt;/p&gt;
&lt;h2&gt;Paid Anti-Virus&lt;/h2&gt;
&lt;p&gt;For those that want good detection rates, better privacy, and low overhead. The antivirus I have recommend has stayed the same for years. I recommend &lt;a href=&quot;https://www.eset.com/&quot;&gt;ESET&lt;/a&gt; for this because it is a proven antivirus that isn&apos;t as intrusive as the others.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/9P6r7DLS77Q&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Choosing the Right Linux Distro</title><link>https://christitus.com/choose-linux-distro/</link><guid isPermaLink="true">https://christitus.com/choose-linux-distro/</guid><description>&lt;p&gt;Choosing a Linux distribution can be difficult, especially if you don&apos;t know much about Linux. However, over the past several years I&apos;ve tried almost every Distribution that you can choose. There are some that I have not installed, because it was just more of the same.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2022/choose-linux-distribution/distros.webp&quot; alt=&quot;distros&quot; /&gt;&lt;/p&gt;
&lt;p&gt;To start with there is a misconception that there is thousands of choices in Linux Distributions. While technically true, there is really only 3 distributions you need to know about for desktop use, but before we get into that you need to know about what makes up a distribution. This is mandatory to understand why there is so many different ones that splinter off of these three.&lt;/p&gt;
&lt;h2&gt;What is in a Distribution&lt;/h2&gt;
&lt;p&gt;Windows and Mac are called Operating Systems, NOT distributions... but in Linux this isn&apos;t the case. Why? That is because each Linux offering has different options at its core. With Windows and Mac you always get the same bootloader, file manager, etc. and in Linux these can differ drastically from one to the next. So this is what makes up the Linux distribution.&lt;/p&gt;
&lt;h3&gt;Bootloader&lt;/h3&gt;
&lt;p&gt;This can is usually either GRUB or systemd-boot. This may not mean much to you, but i&apos;ll explain the difference. GRUB has been around for ages and can be themed while having a ton of flexibility. It supports UEFI and Legacy, while systemd-boot is pretty much included with every modern linux distribution and only boots via UEFI and has a limited menu system. I highly encourage you that want a themed multi-boot system to check out my Top 5 Bootloader project that auto-installs multiple themes: &lt;a href=&quot;https://christitus.com/bootloader-themes/&quot;&gt;https://christitus.com/bootloader-themes/&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Init System&lt;/h3&gt;
&lt;p&gt;When your system is initializing on startup it needs to verify all the devices it will use and get the system ready for boot. Almost every Linux system these days use systemd. Systemd is very big and inclusive, but to many is bloated. It does much more than just initializing the system. It has Timers, bootloader, services, and much more. I did a YouTube video explaining everything in systemd if you want to learn more. &lt;a href=&quot;https://youtu.be/hc7J-zWEty8&quot;&gt;https://youtu.be/hc7J-zWEty8&lt;/a&gt;
There is other options out there for Linux and certain fringe distributions that use them, but if you want other options check out init.d and precursors to systemd. They are much faster and if looking at building an ultimate minimal system this is the route to take.&lt;/p&gt;
&lt;h3&gt;Display Render&lt;/h3&gt;
&lt;p&gt;To draw graphics on the screen we need a render. There are only two major ones you need to know about. Wayland and Xorg. Wayland is the new kid that should be faster and better, but is lacking features and compatibility. Xorg is the old, wise man that just works, but is starting to show its age. To me, I always choose Xorg because Wayland always runs into problems. Xorg has two features that Wayland is lacking for me right now. It has X11 forwarding for running GUI programs remotely through an SSH connection and using legacy programs for sharing a keyboard/mouse across screens using synergy/barrier. I did a video on this here: &lt;a href=&quot;https://youtu.be/Fci_ALdEzGc&quot;&gt;https://youtu.be/Fci_ALdEzGc&lt;/a&gt;. To many it simply doesn&apos;t matter, because they both fundamentally do the same thing.&lt;/p&gt;
&lt;h3&gt;Display Manager&lt;/h3&gt;
&lt;p&gt;This really should be called a Login Manager or user selector, but in Linux the entire ecosystem is run by extremely smart technical people, that just so happen to be terrible at marketing. So the &quot;Display Manager&quot; comes in many flavors and this is where we start to run into many personal options in Distributions. Personally, I really don&apos;t care about this, but there are three main ones that are used and can be configured differently:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;lightdm&lt;/li&gt;
&lt;li&gt;sddm&lt;/li&gt;
&lt;li&gt;gdm
While there are others, these three pretty much are always chosen for a distribution. SDDM is generally bundled with KDE systems (which we will get into here in a bit), GDM is for GNOME systems, and lightdm (my personal fav) is pretty much a catch all.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Desktop Environments&lt;/h3&gt;
&lt;p&gt;Think of Desktop Environments as the tools that make up the control center in an Operating System. Want to change the display resolution, theme, colors, fonts, etc. well all that stuff is in the desktop environment. Now you don&apos;t technically need a full blow DE with all this stuff. The main thing you do need is a Window Manager to control where windows are placed. With all that said lets layout the common DEs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GNOME&lt;/li&gt;
&lt;li&gt;KDE&lt;/li&gt;
&lt;li&gt;XFCE&lt;/li&gt;
&lt;li&gt;Window Managers&lt;/li&gt;
&lt;li&gt;and many, many, more.
This could be a 100 page manual with all the options, but I want to give you the basics. GNOME gives more of a mac-esque style and KDE gives that windows look and feed. XFCE is more bare-bones with the essential tools and not much else. Where a basic &quot;window manager&quot; is just the window manager without any utilities. You might think... &quot;How the hell do you change the resolution? or font? with a window manger...&quot; This is accomplished either by hard coding it in to the configuration files or by installing an independent utility.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Package Managers&lt;/h3&gt;
&lt;p&gt;This is how distributions install programs. Here are the major ones you need to know about.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;APT - Debian distros &lt;code&gt;apt install programname&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;DNF / YUM - RHEL distros &lt;code&gt;dnf install programname&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Pacman - Arch distros &lt;code&gt;pacman -S programname&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Distributions&lt;/h2&gt;
&lt;p&gt;So now that you know what they are made up of we can easily get to deciding what you really want your computing experience to be like. Figure out what components above you like and do NOT like. Then swap them out for something better. The main gripe I have with Windows and Mac is I find their file manager absolutely terrible. I want to switch them and rip out the junk they give me, but we can&apos;t as they are integral to the function of the operating system. In Linux, we get that freedom. Here are the three &quot;distributions&quot; that pretty much everything is based on and what the base package installs are. Remember you can change the things you do NOT like from the stock settings.&lt;/p&gt;
&lt;h3&gt;Debian Linux&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/choose-linux-distribution/debian.webp&quot; alt=&quot;debian&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Debian uses a stable release cycle and generally has older packages, but they don&apos;t usually have many bugs and are very reliable. This is typically my go to for desktops I don&apos;t change much.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bootloader - GRUB&lt;/li&gt;
&lt;li&gt;Init System - systemd&lt;/li&gt;
&lt;li&gt;Display Render - Xorg&lt;/li&gt;
&lt;li&gt;Display Manager - SDDM/GDM&lt;/li&gt;
&lt;li&gt;Desktop Environment - KDE/GNOME&lt;/li&gt;
&lt;li&gt;Package Manager - APT&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Arch Linux&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/choose-linux-distribution/arch.webp&quot; alt=&quot;arch&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Very new packages with a massive user repository to grab programs you might be missing and builds them for you. The main issue is if you forget to update your system for a period of months it is prone to breaking. Backups are MANDATORY if you use this for your daily use. The benefits are you get the latest and greatest and is often thought to be the best for drivers and hardware that is just released. Its unique that you get to choose every component and can utilize pretty much any COMBINATION of components listed above. The only constant is its package manager which is PACMAN. The other unique aspect is it has a helper program that can install things through the AUR (Arch User Repository) and boy does it have options here... I&apos;m going to recommend the top three&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;paru&lt;/li&gt;
&lt;li&gt;yay&lt;/li&gt;
&lt;li&gt;trizen
They follow the same syntax as pacman except you run them at a user level and they can install pretty much any package. For a complete list visit: &lt;a href=&quot;https://aur.archlinux.org/&quot;&gt;https://aur.archlinux.org/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Fedora Linux&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/choose-linux-distribution/fedora.webp&quot; alt=&quot;fedora&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This is a RHEL (Red Hat Enterprise Linux) based distribution. It strikes a balance between newer packages and Linux kernels between Debian and Arch. Its not as new as Arch, but not as old as Debian. It has different SPINS but its main download uses the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bootloader - Systemd&lt;/li&gt;
&lt;li&gt;Init System - systemd&lt;/li&gt;
&lt;li&gt;Display Render - Wayland&lt;/li&gt;
&lt;li&gt;Desktop Environment - GNOME&lt;/li&gt;
&lt;li&gt;Package Manager - DNF&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;So the best distribution is the one that suits your needs and preferences. Instead of the one size fits all approach of Mac and Windows, Linux takes a completely different approach. Learn the above and try out the different options and you will make the perfect system for your needs. You will also understand why all the top 5 distros and other Linux garbage on the internet is worthless. That is because there is no perfect distro, however there is the perfect distro for YOU! It just so happens that it is different for each user and you have the options that no other system on earth give you with Linux.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/dL05DoJ0qsQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Tue, 28 Jun 2022 22:12:25 GMT</pubDate><content:encoded>&lt;p&gt;Choosing a Linux distribution can be difficult, especially if you don&apos;t know much about Linux. However, over the past several years I&apos;ve tried almost every Distribution that you can choose. There are some that I have not installed, because it was just more of the same.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2022/choose-linux-distribution/distros.webp&quot; alt=&quot;distros&quot; /&gt;&lt;/p&gt;
&lt;p&gt;To start with there is a misconception that there is thousands of choices in Linux Distributions. While technically true, there is really only 3 distributions you need to know about for desktop use, but before we get into that you need to know about what makes up a distribution. This is mandatory to understand why there is so many different ones that splinter off of these three.&lt;/p&gt;
&lt;h2&gt;What is in a Distribution&lt;/h2&gt;
&lt;p&gt;Windows and Mac are called Operating Systems, NOT distributions... but in Linux this isn&apos;t the case. Why? That is because each Linux offering has different options at its core. With Windows and Mac you always get the same bootloader, file manager, etc. and in Linux these can differ drastically from one to the next. So this is what makes up the Linux distribution.&lt;/p&gt;
&lt;h3&gt;Bootloader&lt;/h3&gt;
&lt;p&gt;This can is usually either GRUB or systemd-boot. This may not mean much to you, but i&apos;ll explain the difference. GRUB has been around for ages and can be themed while having a ton of flexibility. It supports UEFI and Legacy, while systemd-boot is pretty much included with every modern linux distribution and only boots via UEFI and has a limited menu system. I highly encourage you that want a themed multi-boot system to check out my Top 5 Bootloader project that auto-installs multiple themes: &lt;a href=&quot;https://christitus.com/bootloader-themes/&quot;&gt;https://christitus.com/bootloader-themes/&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Init System&lt;/h3&gt;
&lt;p&gt;When your system is initializing on startup it needs to verify all the devices it will use and get the system ready for boot. Almost every Linux system these days use systemd. Systemd is very big and inclusive, but to many is bloated. It does much more than just initializing the system. It has Timers, bootloader, services, and much more. I did a YouTube video explaining everything in systemd if you want to learn more. &lt;a href=&quot;https://youtu.be/hc7J-zWEty8&quot;&gt;https://youtu.be/hc7J-zWEty8&lt;/a&gt;
There is other options out there for Linux and certain fringe distributions that use them, but if you want other options check out init.d and precursors to systemd. They are much faster and if looking at building an ultimate minimal system this is the route to take.&lt;/p&gt;
&lt;h3&gt;Display Render&lt;/h3&gt;
&lt;p&gt;To draw graphics on the screen we need a render. There are only two major ones you need to know about. Wayland and Xorg. Wayland is the new kid that should be faster and better, but is lacking features and compatibility. Xorg is the old, wise man that just works, but is starting to show its age. To me, I always choose Xorg because Wayland always runs into problems. Xorg has two features that Wayland is lacking for me right now. It has X11 forwarding for running GUI programs remotely through an SSH connection and using legacy programs for sharing a keyboard/mouse across screens using synergy/barrier. I did a video on this here: &lt;a href=&quot;https://youtu.be/Fci_ALdEzGc&quot;&gt;https://youtu.be/Fci_ALdEzGc&lt;/a&gt;. To many it simply doesn&apos;t matter, because they both fundamentally do the same thing.&lt;/p&gt;
&lt;h3&gt;Display Manager&lt;/h3&gt;
&lt;p&gt;This really should be called a Login Manager or user selector, but in Linux the entire ecosystem is run by extremely smart technical people, that just so happen to be terrible at marketing. So the &quot;Display Manager&quot; comes in many flavors and this is where we start to run into many personal options in Distributions. Personally, I really don&apos;t care about this, but there are three main ones that are used and can be configured differently:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;lightdm&lt;/li&gt;
&lt;li&gt;sddm&lt;/li&gt;
&lt;li&gt;gdm
While there are others, these three pretty much are always chosen for a distribution. SDDM is generally bundled with KDE systems (which we will get into here in a bit), GDM is for GNOME systems, and lightdm (my personal fav) is pretty much a catch all.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Desktop Environments&lt;/h3&gt;
&lt;p&gt;Think of Desktop Environments as the tools that make up the control center in an Operating System. Want to change the display resolution, theme, colors, fonts, etc. well all that stuff is in the desktop environment. Now you don&apos;t technically need a full blow DE with all this stuff. The main thing you do need is a Window Manager to control where windows are placed. With all that said lets layout the common DEs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GNOME&lt;/li&gt;
&lt;li&gt;KDE&lt;/li&gt;
&lt;li&gt;XFCE&lt;/li&gt;
&lt;li&gt;Window Managers&lt;/li&gt;
&lt;li&gt;and many, many, more.
This could be a 100 page manual with all the options, but I want to give you the basics. GNOME gives more of a mac-esque style and KDE gives that windows look and feed. XFCE is more bare-bones with the essential tools and not much else. Where a basic &quot;window manager&quot; is just the window manager without any utilities. You might think... &quot;How the hell do you change the resolution? or font? with a window manger...&quot; This is accomplished either by hard coding it in to the configuration files or by installing an independent utility.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Package Managers&lt;/h3&gt;
&lt;p&gt;This is how distributions install programs. Here are the major ones you need to know about.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;APT - Debian distros &lt;code&gt;apt install programname&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;DNF / YUM - RHEL distros &lt;code&gt;dnf install programname&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Pacman - Arch distros &lt;code&gt;pacman -S programname&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Distributions&lt;/h2&gt;
&lt;p&gt;So now that you know what they are made up of we can easily get to deciding what you really want your computing experience to be like. Figure out what components above you like and do NOT like. Then swap them out for something better. The main gripe I have with Windows and Mac is I find their file manager absolutely terrible. I want to switch them and rip out the junk they give me, but we can&apos;t as they are integral to the function of the operating system. In Linux, we get that freedom. Here are the three &quot;distributions&quot; that pretty much everything is based on and what the base package installs are. Remember you can change the things you do NOT like from the stock settings.&lt;/p&gt;
&lt;h3&gt;Debian Linux&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/choose-linux-distribution/debian.webp&quot; alt=&quot;debian&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Debian uses a stable release cycle and generally has older packages, but they don&apos;t usually have many bugs and are very reliable. This is typically my go to for desktops I don&apos;t change much.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bootloader - GRUB&lt;/li&gt;
&lt;li&gt;Init System - systemd&lt;/li&gt;
&lt;li&gt;Display Render - Xorg&lt;/li&gt;
&lt;li&gt;Display Manager - SDDM/GDM&lt;/li&gt;
&lt;li&gt;Desktop Environment - KDE/GNOME&lt;/li&gt;
&lt;li&gt;Package Manager - APT&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Arch Linux&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/choose-linux-distribution/arch.webp&quot; alt=&quot;arch&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Very new packages with a massive user repository to grab programs you might be missing and builds them for you. The main issue is if you forget to update your system for a period of months it is prone to breaking. Backups are MANDATORY if you use this for your daily use. The benefits are you get the latest and greatest and is often thought to be the best for drivers and hardware that is just released. Its unique that you get to choose every component and can utilize pretty much any COMBINATION of components listed above. The only constant is its package manager which is PACMAN. The other unique aspect is it has a helper program that can install things through the AUR (Arch User Repository) and boy does it have options here... I&apos;m going to recommend the top three&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;paru&lt;/li&gt;
&lt;li&gt;yay&lt;/li&gt;
&lt;li&gt;trizen
They follow the same syntax as pacman except you run them at a user level and they can install pretty much any package. For a complete list visit: &lt;a href=&quot;https://aur.archlinux.org/&quot;&gt;https://aur.archlinux.org/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Fedora Linux&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/choose-linux-distribution/fedora.webp&quot; alt=&quot;fedora&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This is a RHEL (Red Hat Enterprise Linux) based distribution. It strikes a balance between newer packages and Linux kernels between Debian and Arch. Its not as new as Arch, but not as old as Debian. It has different SPINS but its main download uses the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bootloader - Systemd&lt;/li&gt;
&lt;li&gt;Init System - systemd&lt;/li&gt;
&lt;li&gt;Display Render - Wayland&lt;/li&gt;
&lt;li&gt;Desktop Environment - GNOME&lt;/li&gt;
&lt;li&gt;Package Manager - DNF&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;So the best distribution is the one that suits your needs and preferences. Instead of the one size fits all approach of Mac and Windows, Linux takes a completely different approach. Learn the above and try out the different options and you will make the perfect system for your needs. You will also understand why all the top 5 distros and other Linux garbage on the internet is worthless. That is because there is no perfect distro, however there is the perfect distro for YOU! It just so happens that it is different for each user and you have the options that no other system on earth give you with Linux.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/dL05DoJ0qsQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Ubuntu&apos;s Decline</title><link>https://christitus.com/ubuntu-decline/</link><guid isPermaLink="true">https://christitus.com/ubuntu-decline/</guid><description>&lt;p&gt;When Ubuntu came on the scene in 2004, it made desktop Linux viable to many with its ease of use and friendly layout. Instead of constantly improving this and becoming the &quot;King of All Distributions&quot; it took a very different path. While I still use Ubuntu server with some caveats, I will NOT use Ubuntu Desktop.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2022/ubuntu-decline/ubuntu.webp&quot; alt=&quot;ubuntu&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;What Ubuntu does right&lt;/h2&gt;
&lt;p&gt;Before we roast Ubuntu and its decline, we need to understand why they rose to the top. Not only did they make Linux desktop easy, but they did the same in the server realm as well. They also made highly successful and well designed products for Linux, like the Unity Desktop Environment. They were one of the first to also make it easy for us to use nVidia cards on our systems without much fuss.&lt;/p&gt;
&lt;h2&gt;The things that lead to the decline&lt;/h2&gt;
&lt;p&gt;This is not going to be an exhaustive list, but rather the large things they have done to ensure their downfall and what has caused many to leave Ubuntu to never return.&lt;/p&gt;
&lt;h3&gt;Snaps&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/ubuntu-decline/snaps.webp&quot; alt=&quot;snaps&quot; /&gt;&lt;/p&gt;
&lt;p&gt;By far the biggest issue with Ubuntu is Snaps. They created a universal package manager that can work on any system. Sounds amazing, right? WRONG! The two biggest issues are simple: Its slow as hell and closed source.&lt;/p&gt;
&lt;p&gt;How is it slow? Well, it can take upwards of 10-15 seconds to launch Firefox snap, which is a web browser that would normally take MAYBE 1-2 seconds. What the hell Canonical!?! It&apos;s obviously not ready, so why are forcing everyone to use snaps? Do they just not like users? Do they think their users are just too stupid to know its this slow?&lt;/p&gt;
&lt;p&gt;Closed Source. This can be summed up to there is only one place to download packages, Canonical. Want to open up a Snap store for a competing distribution? Too bad, its closed source. Is this the worst thing about it? No, but why bother with it when there are better solutions like AppImage and Flatpak which ARE open source?&lt;/p&gt;
&lt;h3&gt;Spyware&lt;/h3&gt;
&lt;p&gt;Back in Ubuntu 14 they were submitting search results to Canonical. Then in Ubuntu 16 they introduced a bundled amazon store which they were compensated for. Too many this was just simply spyware on their distribution. A blatant cash grab if you will... However, to me it screams of desperation. They want or need money and this was the easiest way to accomplish this. Apple and Microsoft does this... why not Canonical? The answer is surprisingly simple, many users ran from big tech for privacy and why choose Ubuntu when their are so many better distributions.&lt;/p&gt;
&lt;h3&gt;Lack of commitment&lt;/h3&gt;
&lt;p&gt;The last reason many users have given up on Ubuntu is it just feels like Canonical is padding their balance sheet for an eventual buyout from some biggest tech firm. The days of innovation are over and they have killed so many projects that no one trusts them anymore. It has been eroded away by not listening to the community, doing things not in the best interest of their users, and abandoning many, many projects. Here is the short list:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ubuntu Touch&lt;/li&gt;
&lt;li&gt;Unity Desktop Environment&lt;/li&gt;
&lt;li&gt;Mir Display Manager&lt;/li&gt;
&lt;li&gt;Ubuntu One (Cloud services)&lt;/li&gt;
&lt;li&gt;PPA Repos - .DEB Packages being phased out from Software Centre&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The Future&lt;/h2&gt;
&lt;p&gt;The future of Ubuntu Desktop is pretty bleak. It feels like we are watching it circle the toilet bowl to be forever gone in a few years. I want to give two outcomes...&lt;/p&gt;
&lt;p&gt;It continues down this path, forcing everyone to use snaps and fades to irrelevance until the entire desktop offering is discontinued.&lt;/p&gt;
&lt;p&gt;It cuts it losses with snaps and starts streamlining their distro. Gone are the days of slow boot times and bloated distribution installs. It reverts to what it began as... a user friendly and easy to user distribution that just works.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/pMfqCzbSmQU&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 27 Jun 2022 20:52:45 GMT</pubDate><content:encoded>&lt;p&gt;When Ubuntu came on the scene in 2004, it made desktop Linux viable to many with its ease of use and friendly layout. Instead of constantly improving this and becoming the &quot;King of All Distributions&quot; it took a very different path. While I still use Ubuntu server with some caveats, I will NOT use Ubuntu Desktop.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2022/ubuntu-decline/ubuntu.webp&quot; alt=&quot;ubuntu&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;What Ubuntu does right&lt;/h2&gt;
&lt;p&gt;Before we roast Ubuntu and its decline, we need to understand why they rose to the top. Not only did they make Linux desktop easy, but they did the same in the server realm as well. They also made highly successful and well designed products for Linux, like the Unity Desktop Environment. They were one of the first to also make it easy for us to use nVidia cards on our systems without much fuss.&lt;/p&gt;
&lt;h2&gt;The things that lead to the decline&lt;/h2&gt;
&lt;p&gt;This is not going to be an exhaustive list, but rather the large things they have done to ensure their downfall and what has caused many to leave Ubuntu to never return.&lt;/p&gt;
&lt;h3&gt;Snaps&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/ubuntu-decline/snaps.webp&quot; alt=&quot;snaps&quot; /&gt;&lt;/p&gt;
&lt;p&gt;By far the biggest issue with Ubuntu is Snaps. They created a universal package manager that can work on any system. Sounds amazing, right? WRONG! The two biggest issues are simple: Its slow as hell and closed source.&lt;/p&gt;
&lt;p&gt;How is it slow? Well, it can take upwards of 10-15 seconds to launch Firefox snap, which is a web browser that would normally take MAYBE 1-2 seconds. What the hell Canonical!?! It&apos;s obviously not ready, so why are forcing everyone to use snaps? Do they just not like users? Do they think their users are just too stupid to know its this slow?&lt;/p&gt;
&lt;p&gt;Closed Source. This can be summed up to there is only one place to download packages, Canonical. Want to open up a Snap store for a competing distribution? Too bad, its closed source. Is this the worst thing about it? No, but why bother with it when there are better solutions like AppImage and Flatpak which ARE open source?&lt;/p&gt;
&lt;h3&gt;Spyware&lt;/h3&gt;
&lt;p&gt;Back in Ubuntu 14 they were submitting search results to Canonical. Then in Ubuntu 16 they introduced a bundled amazon store which they were compensated for. Too many this was just simply spyware on their distribution. A blatant cash grab if you will... However, to me it screams of desperation. They want or need money and this was the easiest way to accomplish this. Apple and Microsoft does this... why not Canonical? The answer is surprisingly simple, many users ran from big tech for privacy and why choose Ubuntu when their are so many better distributions.&lt;/p&gt;
&lt;h3&gt;Lack of commitment&lt;/h3&gt;
&lt;p&gt;The last reason many users have given up on Ubuntu is it just feels like Canonical is padding their balance sheet for an eventual buyout from some biggest tech firm. The days of innovation are over and they have killed so many projects that no one trusts them anymore. It has been eroded away by not listening to the community, doing things not in the best interest of their users, and abandoning many, many projects. Here is the short list:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ubuntu Touch&lt;/li&gt;
&lt;li&gt;Unity Desktop Environment&lt;/li&gt;
&lt;li&gt;Mir Display Manager&lt;/li&gt;
&lt;li&gt;Ubuntu One (Cloud services)&lt;/li&gt;
&lt;li&gt;PPA Repos - .DEB Packages being phased out from Software Centre&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The Future&lt;/h2&gt;
&lt;p&gt;The future of Ubuntu Desktop is pretty bleak. It feels like we are watching it circle the toilet bowl to be forever gone in a few years. I want to give two outcomes...&lt;/p&gt;
&lt;p&gt;It continues down this path, forcing everyone to use snaps and fades to irrelevance until the entire desktop offering is discontinued.&lt;/p&gt;
&lt;p&gt;It cuts it losses with snaps and starts streamlining their distro. Gone are the days of slow boot times and bloated distribution installs. It reverts to what it began as... a user friendly and easy to user distribution that just works.&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/pMfqCzbSmQU&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Is Antivirus Worthless?</title><link>https://christitus.com/antivirus-worthless/</link><guid isPermaLink="true">https://christitus.com/antivirus-worthless/</guid><description>&lt;p&gt;To many advanced users, Antivirus IS worthless. That is because it uses system resources and provides more annoyances than benefits. However, for many users it is required as they will not know what is a virus or not.&lt;/p&gt;

&lt;h2&gt;How to Scan&lt;/h2&gt;
&lt;p&gt;The biggest issue with antivirus is some show false positives and others show nothing when it is a virus. So what is the best way to scan?&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://virustotal.com&quot;&gt;https://virustotal.com&lt;/a&gt; is my recommendation. It will help you determine if that exe or zip file you just downloaded from a shady source is infected. This will do a far better job than an individual antivirus scans, since virustotal is an aggregate and uses antivirus engines for EVERY major antivirus.&lt;/p&gt;
&lt;h2&gt;What not to do&lt;/h2&gt;
&lt;p&gt;Downloading free antivirus is terrible and typically you will be giving away your privacy as they will be submitting the URLs you visit in many free packages, like Kasperky Cloud Free. Avast and AVG on the other hand you will be inidated with popups and upsells to a bloated internet security suite that does nothing but slow your computer down. I&apos;ve also seen people install multiple AntiVirus programs, which just slows down a PC considerably while providing little to no extra protection.&lt;/p&gt;
&lt;p&gt;So Never do any of these things!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Download FREE AntiVirus&lt;/li&gt;
&lt;li&gt;Install, Buy, or Download ANY Internet Security Suite&lt;/li&gt;
&lt;li&gt;Installing multiple AntiVirus programs&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;False Positives&lt;/h2&gt;
&lt;p&gt;I&apos;ve been giving out an exe file for my Debloat Utility to anyone that pays $5 on &lt;a href=&quot;http://cttstore.com&quot;&gt;cttstore.com&lt;/a&gt; to help fund its future development. However, since it is a free and open source project that is a PowerShell script that gets converted to EXE it has caused MANY false positives. The reason is many Antivirus companies are lazy and block EVERY powershell script that is converted to EXE. Microsoft, AVG, Avast, etc. which you can see below.&lt;/p&gt;
&lt;p&gt;PowerShell to EXE Disclaimer
&lt;img src=&quot;/images/2022/antivirus-worthless/virus-ps1-exe.webp&quot; alt=&quot;ps1toexe&quot; /&gt;&lt;/p&gt;
&lt;p&gt;VirusTotal Result from PowerShell Script to EXE
&lt;img src=&quot;/images/2022/antivirus-worthless/script-virus.webp&quot; alt=&quot;script-virustotal&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Obviously with false positives there are times where AntiVirus programs completely miss viruses. How does this happen and how I changed the exe to bypass antivirus programs. There are two methods I&apos;ve used to reduce or even completely remove antivirus scans.&lt;/p&gt;
&lt;h3&gt;Code Signed EXEs have less false positives&lt;/h3&gt;
&lt;p&gt;Code Signing is the practice of using cryptographic keys to sign EXE files like below.
&lt;img src=&quot;/images/2022/antivirus-worthless/signed-file.webp&quot; alt=&quot;signed-file&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Good antivirus programs will NOT flag my EXE when I used a code signing key. However, if I don&apos;t sign the EXE it will flag it as a virus. So, why doesn&apos;t everyone use a code signing key? It&apos;s expensive. Roughly it is $100 a year for the &quot;basic&quot; code signing and to bypass Microsoft SmartScreen for &quot;enhanced&quot; code signing it will set you back almost $275 a year. Feels kinda like extortion, but I can appreciate that I now have a digital signature for my exe so folks know it came from me.&lt;/p&gt;
&lt;p&gt;Let&apos;s move on to the easiest way to obscure your exe to bypass Antivirus.&lt;/p&gt;
&lt;h3&gt;Encrypted Files can not be scanned for viruses&lt;/h3&gt;
&lt;p&gt;Simply created an encrypted file will bypass any scans. I find the easiest way to do this is using 7-zip with SHA256 encryptioon and a password. This is how I distribute my EXE now so I don&apos;t have to worry about antiviruses. So, be EXTREMELY CAREFUL when opening files with passwords, as your antivirus can not scan it. If you do not trust the source you downloaded it... DO NOT OPEN IT!&lt;/p&gt;
&lt;p&gt;Here is an example of a encrypted file:
&lt;img src=&quot;/images/2022/antivirus-worthless/encrypted-file.webp&quot; alt=&quot;encrypted-file&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Recommended AntiVirus&lt;/h2&gt;
&lt;p&gt;If you don&apos;t want to spend any money then simply use Microsoft&apos;s Defender. Its decent with it&apos;s cloud protection and is already baked into Windows. Its detection rates are passable and has a small system impact.&lt;/p&gt;
&lt;p&gt;The biggest factors to look at when considering antivirus is System Impact and History/Detection Rates.&lt;/p&gt;
&lt;p&gt;ESET NOD32 Antivirus is the best I&apos;ve found. They were one of the original antivirus programs with NOD32&apos;s creation in 1987 and ESET being founded by the developers of NOD32 in 1992. The basic antivirus is fast has very little passive performance loss and fantastic detection rates. I recommend just doing the basic &lt;a href=&quot;https://www.jdoqocy.com/click-100287975-15083621&quot;&gt;NOD32 Antivirus&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/UXT17bQ2W2Q&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 22 Jun 2022 21:44:33 GMT</pubDate><content:encoded>&lt;p&gt;To many advanced users, Antivirus IS worthless. That is because it uses system resources and provides more annoyances than benefits. However, for many users it is required as they will not know what is a virus or not.&lt;/p&gt;

&lt;h2&gt;How to Scan&lt;/h2&gt;
&lt;p&gt;The biggest issue with antivirus is some show false positives and others show nothing when it is a virus. So what is the best way to scan?&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://virustotal.com&quot;&gt;https://virustotal.com&lt;/a&gt; is my recommendation. It will help you determine if that exe or zip file you just downloaded from a shady source is infected. This will do a far better job than an individual antivirus scans, since virustotal is an aggregate and uses antivirus engines for EVERY major antivirus.&lt;/p&gt;
&lt;h2&gt;What not to do&lt;/h2&gt;
&lt;p&gt;Downloading free antivirus is terrible and typically you will be giving away your privacy as they will be submitting the URLs you visit in many free packages, like Kasperky Cloud Free. Avast and AVG on the other hand you will be inidated with popups and upsells to a bloated internet security suite that does nothing but slow your computer down. I&apos;ve also seen people install multiple AntiVirus programs, which just slows down a PC considerably while providing little to no extra protection.&lt;/p&gt;
&lt;p&gt;So Never do any of these things!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Download FREE AntiVirus&lt;/li&gt;
&lt;li&gt;Install, Buy, or Download ANY Internet Security Suite&lt;/li&gt;
&lt;li&gt;Installing multiple AntiVirus programs&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;False Positives&lt;/h2&gt;
&lt;p&gt;I&apos;ve been giving out an exe file for my Debloat Utility to anyone that pays $5 on &lt;a href=&quot;http://cttstore.com&quot;&gt;cttstore.com&lt;/a&gt; to help fund its future development. However, since it is a free and open source project that is a PowerShell script that gets converted to EXE it has caused MANY false positives. The reason is many Antivirus companies are lazy and block EVERY powershell script that is converted to EXE. Microsoft, AVG, Avast, etc. which you can see below.&lt;/p&gt;
&lt;p&gt;PowerShell to EXE Disclaimer
&lt;img src=&quot;/images/2022/antivirus-worthless/virus-ps1-exe.webp&quot; alt=&quot;ps1toexe&quot; /&gt;&lt;/p&gt;
&lt;p&gt;VirusTotal Result from PowerShell Script to EXE
&lt;img src=&quot;/images/2022/antivirus-worthless/script-virus.webp&quot; alt=&quot;script-virustotal&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Obviously with false positives there are times where AntiVirus programs completely miss viruses. How does this happen and how I changed the exe to bypass antivirus programs. There are two methods I&apos;ve used to reduce or even completely remove antivirus scans.&lt;/p&gt;
&lt;h3&gt;Code Signed EXEs have less false positives&lt;/h3&gt;
&lt;p&gt;Code Signing is the practice of using cryptographic keys to sign EXE files like below.
&lt;img src=&quot;/images/2022/antivirus-worthless/signed-file.webp&quot; alt=&quot;signed-file&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Good antivirus programs will NOT flag my EXE when I used a code signing key. However, if I don&apos;t sign the EXE it will flag it as a virus. So, why doesn&apos;t everyone use a code signing key? It&apos;s expensive. Roughly it is $100 a year for the &quot;basic&quot; code signing and to bypass Microsoft SmartScreen for &quot;enhanced&quot; code signing it will set you back almost $275 a year. Feels kinda like extortion, but I can appreciate that I now have a digital signature for my exe so folks know it came from me.&lt;/p&gt;
&lt;p&gt;Let&apos;s move on to the easiest way to obscure your exe to bypass Antivirus.&lt;/p&gt;
&lt;h3&gt;Encrypted Files can not be scanned for viruses&lt;/h3&gt;
&lt;p&gt;Simply created an encrypted file will bypass any scans. I find the easiest way to do this is using 7-zip with SHA256 encryptioon and a password. This is how I distribute my EXE now so I don&apos;t have to worry about antiviruses. So, be EXTREMELY CAREFUL when opening files with passwords, as your antivirus can not scan it. If you do not trust the source you downloaded it... DO NOT OPEN IT!&lt;/p&gt;
&lt;p&gt;Here is an example of a encrypted file:
&lt;img src=&quot;/images/2022/antivirus-worthless/encrypted-file.webp&quot; alt=&quot;encrypted-file&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Recommended AntiVirus&lt;/h2&gt;
&lt;p&gt;If you don&apos;t want to spend any money then simply use Microsoft&apos;s Defender. Its decent with it&apos;s cloud protection and is already baked into Windows. Its detection rates are passable and has a small system impact.&lt;/p&gt;
&lt;p&gt;The biggest factors to look at when considering antivirus is System Impact and History/Detection Rates.&lt;/p&gt;
&lt;p&gt;ESET NOD32 Antivirus is the best I&apos;ve found. They were one of the original antivirus programs with NOD32&apos;s creation in 1987 and ESET being founded by the developers of NOD32 in 1992. The basic antivirus is fast has very little passive performance loss and fantastic detection rates. I recommend just doing the basic &lt;a href=&quot;https://www.jdoqocy.com/click-100287975-15083621&quot;&gt;NOD32 Antivirus&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/UXT17bQ2W2Q&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Future Internet</title><link>https://christitus.com/future-internet/</link><guid isPermaLink="true">https://christitus.com/future-internet/</guid><description>&lt;p&gt;Renewing website domains, paying for web hosting, and having them expire are all going to be a thing of the past.
Using IPFS (Inter-planetary File System) is a way to store websites decentralized and without any money. How fast or how slow it will be, is determined by how popular it is with IPFS nodes.
This guide shows how to host a website, owning a web domain forever, and redirecting these domains to traditional website hosts.&lt;/p&gt;

&lt;h2&gt;IPFS - A Better Storage System&lt;/h2&gt;
&lt;p&gt;IPFS is absolutely amazing as you can run a node on anything and share your files. If they are used by other people then they will populate to their nodes and I&apos;ve shared and used video files over 1 GB in size! The main issue is there isn&apos;t many browsers that support IPFS and it is slower than normal storage right now. However, you never have to worry about hosting costs and as long as the content is accessed by others on a regular basis it will live forever!&lt;/p&gt;
&lt;h3&gt;Improving IPFS in Brave Browser&lt;/h3&gt;
&lt;p&gt;I highly recommend using IPFS Companion if you plan on doing this regularly. You don&apos;t have to run your own node, but can that is up to you. Using this add-on will help resolve IPFS addresses much faster even in Gateway only mode.&lt;/p&gt;
&lt;p&gt;Enable IPFS Companion Extension&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.ipfs.io/install/ipfs-companion/&quot;&gt;https://docs.ipfs.io/install/ipfs-companion/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After installing IPFS Companion change the following brave settings under Settings -&amp;gt; IPFS&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enable IPFS Public Gateway Fallback (Not Required, but recommended)&lt;/li&gt;
&lt;li&gt;Enable IPFS Companion
&lt;img src=&quot;/images/2022/future-internet/ipfs-settings.webp&quot; alt=&quot;ipfs-settings&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Enable Blockchain domains - The Unstoppable Domains extension (In the future, this should be baked into many browsers. Brave natively supports .crypto)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://unstoppabledomains.com/extension&quot;&gt;https://unstoppabledomains.com/extension&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Blockchains - Not all created equal&lt;/h2&gt;
&lt;p&gt;The technology powering blockchains are amazing, but most just care about the monetary gain. I&apos;m more interested in actually using the blockchain and where all the meta data lives for decentralized web or Web3. So what blockchains have I used for this? Lets review:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ethereum was one of the original ones that is incredible slow and expensive. I feel like this has turned from a usable blockchain into something only millionaires can use. Maybe this will change in the future, but right now it isn&apos;t usable because of the cost to submit transactions. ENS Domains uses ethereum.&lt;/li&gt;
&lt;li&gt;Polygon is a bridge blockchain that drastically improves upon what ethereum started. Fees are non-existent and is very functional. Transfer times are generally about a minute. This is currently what unstoppable domains uses.&lt;/li&gt;
&lt;li&gt;Solana is not something I recommend, but is considered the fastest blockchain out there. However, It has crashed multiple times and halted completely. I am also skeptical that is even decentralized with the problems it has had. It is very easy to work on and something to watch.&lt;/li&gt;
&lt;li&gt;Cardano is probably my favorite out of all these blockchains for the future. It is very decentralized, transactions can be as fast as 20 seconds and up to a couple minutes. Its roadmap is probably the most promising blockchain with future transactions hitting upwards of 10,000+ transactions per second in a decentralized format. Another possible chain that can be used in the future.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Buying Websites Forever&lt;/h2&gt;
&lt;p&gt;Currently ens domains requires renewing websites, while unstoppable domains provides them forever. This entire space is exploding, so getting a good name is becoming more and more difficult just like the traditional web. There is a very healthy resale market on &lt;a href=&quot;http://Opensea.io&quot;&gt;Opensea.io&lt;/a&gt; that folks are using to squat or resell domains purchased through unstoppable domains. If adoption keeps moving this direction, we will soon see some pretty ridiculous prices on domain names. Buying direct from unstoppable domains ranges from $10 to $100 per domain name, depending on domain ending.
&lt;img src=&quot;/images/2022/future-internet/domains.webp&quot; alt=&quot;domains&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Here is discount link for unstoppable if you are interested in picking up a domain: &lt;a href=&quot;https://unstoppabledomains.pxf.io/MX3zVM&quot;&gt;https://unstoppabledomains.pxf.io/MX3zVM&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Uploading Static Sites&lt;/h2&gt;
&lt;p&gt;Hosting your website through unstoppable domains is pretty easy, but just know you are limited on size if using their uploader. They have a 20 MB Limit!&lt;/p&gt;
&lt;p&gt;So for large static sites, simply put them all on a IPFS node local or remote and copy the IPFS hash into unstoppable domains to host ANY size of website.&lt;/p&gt;
&lt;p&gt;I personally build my entire static site using hugo because its free / open source. You can then simply upload to IPFS the entire /public folder once you do this. If you are going to go this route, I&apos;d recommend hosting an IPFS node so you can avoid the upload process entirely!&lt;/p&gt;
&lt;h2&gt;Redirect to Traditional Website&lt;/h2&gt;
&lt;p&gt;The simplist way to do this is with a meta redirect using a standard index.html (PLAIN TEXT ONLY!)&lt;/p&gt;
&lt;p&gt;index.html&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;title&amp;gt;HTML Meta Tag&amp;lt;/title&amp;gt;
    &amp;lt;meta http-equiv = &quot;refresh&quot; content = &quot;1; url = YOUR WEBSITE URL HERE&quot; /&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
      &amp;lt;p&amp;gt;YOUR WEBSITE DESCRIPTION HERE &amp;lt;/p&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/GERBV2Bv-A4&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Sat, 11 Jun 2022 20:07:10 GMT</pubDate><content:encoded>&lt;p&gt;Renewing website domains, paying for web hosting, and having them expire are all going to be a thing of the past.
Using IPFS (Inter-planetary File System) is a way to store websites decentralized and without any money. How fast or how slow it will be, is determined by how popular it is with IPFS nodes.
This guide shows how to host a website, owning a web domain forever, and redirecting these domains to traditional website hosts.&lt;/p&gt;

&lt;h2&gt;IPFS - A Better Storage System&lt;/h2&gt;
&lt;p&gt;IPFS is absolutely amazing as you can run a node on anything and share your files. If they are used by other people then they will populate to their nodes and I&apos;ve shared and used video files over 1 GB in size! The main issue is there isn&apos;t many browsers that support IPFS and it is slower than normal storage right now. However, you never have to worry about hosting costs and as long as the content is accessed by others on a regular basis it will live forever!&lt;/p&gt;
&lt;h3&gt;Improving IPFS in Brave Browser&lt;/h3&gt;
&lt;p&gt;I highly recommend using IPFS Companion if you plan on doing this regularly. You don&apos;t have to run your own node, but can that is up to you. Using this add-on will help resolve IPFS addresses much faster even in Gateway only mode.&lt;/p&gt;
&lt;p&gt;Enable IPFS Companion Extension&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.ipfs.io/install/ipfs-companion/&quot;&gt;https://docs.ipfs.io/install/ipfs-companion/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After installing IPFS Companion change the following brave settings under Settings -&amp;gt; IPFS&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enable IPFS Public Gateway Fallback (Not Required, but recommended)&lt;/li&gt;
&lt;li&gt;Enable IPFS Companion
&lt;img src=&quot;/images/2022/future-internet/ipfs-settings.webp&quot; alt=&quot;ipfs-settings&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Enable Blockchain domains - The Unstoppable Domains extension (In the future, this should be baked into many browsers. Brave natively supports .crypto)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://unstoppabledomains.com/extension&quot;&gt;https://unstoppabledomains.com/extension&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Blockchains - Not all created equal&lt;/h2&gt;
&lt;p&gt;The technology powering blockchains are amazing, but most just care about the monetary gain. I&apos;m more interested in actually using the blockchain and where all the meta data lives for decentralized web or Web3. So what blockchains have I used for this? Lets review:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ethereum was one of the original ones that is incredible slow and expensive. I feel like this has turned from a usable blockchain into something only millionaires can use. Maybe this will change in the future, but right now it isn&apos;t usable because of the cost to submit transactions. ENS Domains uses ethereum.&lt;/li&gt;
&lt;li&gt;Polygon is a bridge blockchain that drastically improves upon what ethereum started. Fees are non-existent and is very functional. Transfer times are generally about a minute. This is currently what unstoppable domains uses.&lt;/li&gt;
&lt;li&gt;Solana is not something I recommend, but is considered the fastest blockchain out there. However, It has crashed multiple times and halted completely. I am also skeptical that is even decentralized with the problems it has had. It is very easy to work on and something to watch.&lt;/li&gt;
&lt;li&gt;Cardano is probably my favorite out of all these blockchains for the future. It is very decentralized, transactions can be as fast as 20 seconds and up to a couple minutes. Its roadmap is probably the most promising blockchain with future transactions hitting upwards of 10,000+ transactions per second in a decentralized format. Another possible chain that can be used in the future.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Buying Websites Forever&lt;/h2&gt;
&lt;p&gt;Currently ens domains requires renewing websites, while unstoppable domains provides them forever. This entire space is exploding, so getting a good name is becoming more and more difficult just like the traditional web. There is a very healthy resale market on &lt;a href=&quot;http://Opensea.io&quot;&gt;Opensea.io&lt;/a&gt; that folks are using to squat or resell domains purchased through unstoppable domains. If adoption keeps moving this direction, we will soon see some pretty ridiculous prices on domain names. Buying direct from unstoppable domains ranges from $10 to $100 per domain name, depending on domain ending.
&lt;img src=&quot;/images/2022/future-internet/domains.webp&quot; alt=&quot;domains&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Here is discount link for unstoppable if you are interested in picking up a domain: &lt;a href=&quot;https://unstoppabledomains.pxf.io/MX3zVM&quot;&gt;https://unstoppabledomains.pxf.io/MX3zVM&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Uploading Static Sites&lt;/h2&gt;
&lt;p&gt;Hosting your website through unstoppable domains is pretty easy, but just know you are limited on size if using their uploader. They have a 20 MB Limit!&lt;/p&gt;
&lt;p&gt;So for large static sites, simply put them all on a IPFS node local or remote and copy the IPFS hash into unstoppable domains to host ANY size of website.&lt;/p&gt;
&lt;p&gt;I personally build my entire static site using hugo because its free / open source. You can then simply upload to IPFS the entire /public folder once you do this. If you are going to go this route, I&apos;d recommend hosting an IPFS node so you can avoid the upload process entirely!&lt;/p&gt;
&lt;h2&gt;Redirect to Traditional Website&lt;/h2&gt;
&lt;p&gt;The simplist way to do this is with a meta redirect using a standard index.html (PLAIN TEXT ONLY!)&lt;/p&gt;
&lt;p&gt;index.html&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;title&amp;gt;HTML Meta Tag&amp;lt;/title&amp;gt;
    &amp;lt;meta http-equiv = &quot;refresh&quot; content = &quot;1; url = YOUR WEBSITE URL HERE&quot; /&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
      &amp;lt;p&amp;gt;YOUR WEBSITE DESCRIPTION HERE &amp;lt;/p&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/GERBV2Bv-A4&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>The Ultimate Windows Utility</title><link>https://christitus.com/windows-tool/</link><guid isPermaLink="true">https://christitus.com/windows-tool/</guid><description>&lt;p&gt;Refined over years, this utility goes beyond debloating Windows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Install and update hundreds of apps via WinGet with a single click&lt;/li&gt;
&lt;li&gt;Apply safe, practical tweaks for performance and privacy&lt;/li&gt;
&lt;li&gt;Use proven Windows Update presets used in business environments&lt;/li&gt;
&lt;li&gt;Build a custom debloated Windows 11 ISO with Win11 Creator&lt;/li&gt;
&lt;li&gt;Automate your setup across multiple PCs&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;One Command - Download and Usage&lt;/h2&gt;
&lt;p&gt;Run in an elevated PowerShell (Run as Administrator):&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;irm christitus.com/win | iex
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Want the Offline EXE? Get It at &lt;a href=&quot;https://cttstore.com&quot;&gt;cttstore.com&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The online command always pulls the latest release straight from GitHub — but if you need more flexibility, the &lt;strong&gt;offline EXE from &lt;a href=&quot;https://cttstore.com&quot;&gt;cttstore.com&lt;/a&gt;&lt;/strong&gt; is the better option:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;No internet required&lt;/strong&gt; — run it on air-gapped machines, work environments, or anywhere without reliable connectivity&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Works online too&lt;/strong&gt; — fully functional on internet-connected machines just like the PowerShell command&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No PowerShell execution policy headaches&lt;/strong&gt; — just double-click and run as Administrator&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Portable&lt;/strong&gt; — copy it to a USB drive and carry your Windows setup toolkit everywhere&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Supports the project&lt;/strong&gt; — purchasing the EXE directly funds continued development and new features&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you find yourself setting up Windows machines regularly, the EXE pays for itself in convenience alone.&lt;/p&gt;
&lt;p&gt;Full documentation is available at &lt;a href=&quot;https://winutil.christitus.com&quot;&gt;winutil.christitus.com&lt;/a&gt;.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Utility Tabs&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Install&lt;/li&gt;
&lt;li&gt;Tweaks&lt;/li&gt;
&lt;li&gt;Config (Features &amp;amp; Legacy Panels)&lt;/li&gt;
&lt;li&gt;Updates&lt;/li&gt;
&lt;li&gt;Win11 Creator&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3&gt;Install&lt;/h3&gt;
&lt;p&gt;Uses WinGet to install, upgrade, or uninstall hundreds of popular applications without hunting for download links or dealing with installer bloat.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key features:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Install/Upgrade Selected&lt;/strong&gt; — installs programs not yet on your system; upgrades those that are&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Upgrade All&lt;/strong&gt; — updates every installed app in one click&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Uninstall&lt;/strong&gt; — removes selected apps cleanly&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Get Installed&lt;/strong&gt; — queries your system and shows what&apos;s already installed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Clear Selection&lt;/strong&gt; — resets your checkboxes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Search&lt;/strong&gt; — press &lt;code&gt;Ctrl+F&lt;/code&gt; to filter the app list as you type&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3&gt;Tweaks&lt;/h3&gt;
&lt;p&gt;The heart of the utility. All tweaks are reversible — a System Restore Point is created automatically before anything is applied.&lt;/p&gt;
&lt;h4&gt;Essential Tweaks&lt;/h4&gt;
&lt;p&gt;Safe optimizations recommended for most users. These improve performance, reduce telemetry, and trim unnecessary background activity without risking stability. Start here before touching anything else.&lt;/p&gt;
&lt;h4&gt;Advanced Tweaks (CAUTION)&lt;/h4&gt;
&lt;p&gt;For power users who understand the implications. These make deeper OS-level changes and carry a higher risk of side effects. Do not apply them blindly.&lt;/p&gt;
&lt;h4&gt;O&amp;amp;O ShutUp10++&lt;/h4&gt;
&lt;p&gt;Launch &lt;a href=&quot;https://www.oo-software.com/en/shutup10&quot;&gt;O&amp;amp;O ShutUp10++&lt;/a&gt; directly from Winutil — a free privacy tool that lets you fine-tune telemetry, update behavior, and app permission settings with a detailed GUI.&lt;/p&gt;
&lt;h4&gt;DNS&lt;/h4&gt;
&lt;p&gt;Switch your DNS provider from within Winutil. Available options include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Default / DHCP&lt;/li&gt;
&lt;li&gt;Google, Cloudflare, Cloudflare (malware blocking), Cloudflare (malware + adult content)&lt;/li&gt;
&lt;li&gt;OpenDNS, Quad9&lt;/li&gt;
&lt;li&gt;AdGuard (ads + trackers), AdGuard (ads + trackers + malware + adult content)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Both IPv4 and IPv6 are configured automatically.&lt;/p&gt;
&lt;h4&gt;Customize Preferences&lt;/h4&gt;
&lt;p&gt;Toggle visual and functional Windows settings to match your preferences.&lt;/p&gt;
&lt;h4&gt;Performance Plans&lt;/h4&gt;
&lt;p&gt;Add and activate the &lt;strong&gt;Ultimate Performance&lt;/strong&gt; power plan to minimize latency and maximize efficiency, or revert to the &lt;strong&gt;Balanced&lt;/strong&gt; profile when you don&apos;t need it.&lt;/p&gt;
&lt;h4&gt;Reverting Tweaks&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Undo Selected Tweaks&lt;/strong&gt; — reverts only what you chose&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System Restore&lt;/strong&gt; — roll back to the restore point Winutil created before tweaks ran&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3&gt;Config (Features &amp;amp; Fixes)&lt;/h3&gt;
&lt;h4&gt;Windows Features&lt;/h4&gt;
&lt;p&gt;Enable optional Windows components with a checkbox and a single click:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All .NET Frameworks (2, 3, 4)&lt;/li&gt;
&lt;li&gt;Hyper-V Virtualization&lt;/li&gt;
&lt;li&gt;Legacy Media (Windows Media Player, DirectPlay)&lt;/li&gt;
&lt;li&gt;NFS — Network File System&lt;/li&gt;
&lt;li&gt;Windows Subsystem for Linux (WSL)&lt;/li&gt;
&lt;li&gt;Windows Sandbox&lt;/li&gt;
&lt;li&gt;Enable Legacy F8 Boot Recovery&lt;/li&gt;
&lt;li&gt;Enable Daily Registry Backup (12:30 AM)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Fixes&lt;/h4&gt;
&lt;p&gt;One-click repairs for common system problems:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Fix&lt;/th&gt;
&lt;th&gt;What It Does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Set Up Autologin&lt;/td&gt;
&lt;td&gt;Configures automatic login for the current user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reset Windows Update&lt;/td&gt;
&lt;td&gt;Re-registers update DLLs and restarts update services&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reset Network&lt;/td&gt;
&lt;td&gt;Runs &lt;code&gt;netsh int ip reset&lt;/code&gt; and &lt;code&gt;netsh winsock reset&lt;/code&gt; to restore the network stack&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;System Corruption Scan&lt;/td&gt;
&lt;td&gt;Runs &lt;code&gt;sfc /scannow&lt;/code&gt; and &lt;code&gt;DISM /RestoreHealth&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WinGet Reinstall&lt;/td&gt;
&lt;td&gt;Restores WinGet if installs or uninstalls start failing&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;Legacy Windows Panels&lt;/h4&gt;
&lt;p&gt;Open classic Windows control panels that are faster and more feature-rich than the modern Settings app:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Control Panel&lt;/li&gt;
&lt;li&gt;Network Connections&lt;/li&gt;
&lt;li&gt;Power Panel&lt;/li&gt;
&lt;li&gt;Region&lt;/li&gt;
&lt;li&gt;Sound Settings&lt;/li&gt;
&lt;li&gt;System Properties&lt;/li&gt;
&lt;li&gt;User Accounts&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Remote Access&lt;/h4&gt;
&lt;p&gt;Enable an &lt;strong&gt;OpenSSH server&lt;/strong&gt; on your Windows machine for remote access without third-party software.&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;Updates&lt;/h3&gt;
&lt;p&gt;Three update modes to match your risk tolerance:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Mode&lt;/th&gt;
&lt;th&gt;What It Does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Default&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Restores standard Windows Update behavior (out-of-box settings)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Security (Recommended)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Delays feature updates by 365 days; delays security updates by 4 days to catch bad patches before they hit your machine&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Disable ALL Updates&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Turns off all updates entirely — only for isolated or special-purpose systems. Leaves the system without security patches. Use the Default button to restore.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr /&gt;
&lt;h3&gt;Win11 Creator&lt;/h3&gt;
&lt;p&gt;Win11 Creator takes an official Windows 11 ISO and produces a customized, debloated version — removing AI features, telemetry, and pre-installed apps while maintaining full program compatibility. Export the result as a new ISO or write it directly to a USB drive.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;You need an official Windows 11 ISO from &lt;a href=&quot;https://www.microsoft.com/en-us/software-download/windows11&quot;&gt;Microsoft&apos;s website&lt;/a&gt; before starting.&lt;/strong&gt; Requires ~10–15 GB of temporary disk space.&lt;/p&gt;
&lt;h4&gt;What it removes and changes&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;App &amp;amp; Component Removal:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;40+ bloat apps removed — Clipchamp, Teams, Copilot, Dev Home, new Outlook, Bing apps, Solitaire, and more&lt;/li&gt;
&lt;li&gt;OneDrive setup deleted from the image&lt;/li&gt;
&lt;li&gt;Unused Windows editions stripped (saves 1–2 GB per removed edition)&lt;/li&gt;
&lt;li&gt;Component store cleaned via DISM (reclaims 300–800 MB)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;System Customization:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hardware requirement checks bypassed — installs on machines without TPM 2.0, Secure Boot, or supported CPUs&lt;/li&gt;
&lt;li&gt;Local account setup enabled — skips the Microsoft account screen during OOBE&lt;/li&gt;
&lt;li&gt;BitLocker and device encryption disabled&lt;/li&gt;
&lt;li&gt;Chat icon removed from taskbar&lt;/li&gt;
&lt;li&gt;Dark mode enabled by default&lt;/li&gt;
&lt;li&gt;Empty taskbar and Start Menu — no pinned apps&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Privacy &amp;amp; Telemetry:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Advertising ID, tailored experiences, input personalization, and speech online privacy disabled&lt;/li&gt;
&lt;li&gt;Cloud content features, app suggestions, and Microsoft Store recommendations disabled&lt;/li&gt;
&lt;li&gt;Telemetry scheduled tasks removed (CEIP, Appraiser, WaaSMedic, and others)&lt;/li&gt;
&lt;li&gt;Copilot and search box suggestions disabled&lt;/li&gt;
&lt;li&gt;DevHome, new Outlook, and Teams auto-installation blocked&lt;/li&gt;
&lt;li&gt;Windows Update disabled during OOBE (re-enabled automatically on first login)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Optional: Driver Injection&lt;/strong&gt; — injects all drivers from your current system into the install image, useful for offline installations on machines with missing drivers.&lt;/p&gt;
&lt;h4&gt;Steps&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Select ISO&lt;/strong&gt; — browse to your official Windows 11 ISO (4 GB+)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mount &amp;amp; Verify&lt;/strong&gt; — Winutil mounts and validates the image, then lets you pick the edition (Pro selected by default)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Run Modification&lt;/strong&gt; — starts the customization process (10–30 minutes depending on disk speed)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Export&lt;/strong&gt; — save as a new ISO file or write directly to a USB drive&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Clean Up&lt;/strong&gt; (optional) — delete the temporary working directory (~10–15 GB)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Typical output ISO size: &lt;strong&gt;2.5–3.5 GB&lt;/strong&gt; (down from 5–6 GB original).&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Automation&lt;/h2&gt;
&lt;p&gt;Winutil configurations can be exported and reused to apply the same setup across multiple machines — ideal for labs, workstations, or personal reinstalls.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Export a config:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open Winutil&lt;/li&gt;
&lt;li&gt;Click the gear icon (top-right corner)&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;Export&lt;/strong&gt; and save the JSON file&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Apply the config on another machine:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;&amp;amp; ([ScriptBlock]::Create((irm &quot;https://christitus.com/win&quot;))) -Config &quot;C:\Path\To\Config.json&quot; -Run
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Run this in an elevated PowerShell session.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Demonstration Videos&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/92SM8Az5QVM&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/IuaNw8Tpn7Q&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/yKydZFJRzMk&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 13 May 2022 18:07:19 GMT</pubDate><content:encoded>&lt;p&gt;Refined over years, this utility goes beyond debloating Windows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Install and update hundreds of apps via WinGet with a single click&lt;/li&gt;
&lt;li&gt;Apply safe, practical tweaks for performance and privacy&lt;/li&gt;
&lt;li&gt;Use proven Windows Update presets used in business environments&lt;/li&gt;
&lt;li&gt;Build a custom debloated Windows 11 ISO with Win11 Creator&lt;/li&gt;
&lt;li&gt;Automate your setup across multiple PCs&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;One Command - Download and Usage&lt;/h2&gt;
&lt;p&gt;Run in an elevated PowerShell (Run as Administrator):&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;irm christitus.com/win | iex
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Want the Offline EXE? Get It at &lt;a href=&quot;https://cttstore.com&quot;&gt;cttstore.com&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The online command always pulls the latest release straight from GitHub — but if you need more flexibility, the &lt;strong&gt;offline EXE from &lt;a href=&quot;https://cttstore.com&quot;&gt;cttstore.com&lt;/a&gt;&lt;/strong&gt; is the better option:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;No internet required&lt;/strong&gt; — run it on air-gapped machines, work environments, or anywhere without reliable connectivity&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Works online too&lt;/strong&gt; — fully functional on internet-connected machines just like the PowerShell command&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No PowerShell execution policy headaches&lt;/strong&gt; — just double-click and run as Administrator&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Portable&lt;/strong&gt; — copy it to a USB drive and carry your Windows setup toolkit everywhere&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Supports the project&lt;/strong&gt; — purchasing the EXE directly funds continued development and new features&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you find yourself setting up Windows machines regularly, the EXE pays for itself in convenience alone.&lt;/p&gt;
&lt;p&gt;Full documentation is available at &lt;a href=&quot;https://winutil.christitus.com&quot;&gt;winutil.christitus.com&lt;/a&gt;.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Utility Tabs&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Install&lt;/li&gt;
&lt;li&gt;Tweaks&lt;/li&gt;
&lt;li&gt;Config (Features &amp;amp; Legacy Panels)&lt;/li&gt;
&lt;li&gt;Updates&lt;/li&gt;
&lt;li&gt;Win11 Creator&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3&gt;Install&lt;/h3&gt;
&lt;p&gt;Uses WinGet to install, upgrade, or uninstall hundreds of popular applications without hunting for download links or dealing with installer bloat.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key features:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Install/Upgrade Selected&lt;/strong&gt; — installs programs not yet on your system; upgrades those that are&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Upgrade All&lt;/strong&gt; — updates every installed app in one click&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Uninstall&lt;/strong&gt; — removes selected apps cleanly&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Get Installed&lt;/strong&gt; — queries your system and shows what&apos;s already installed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Clear Selection&lt;/strong&gt; — resets your checkboxes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Search&lt;/strong&gt; — press &lt;code&gt;Ctrl+F&lt;/code&gt; to filter the app list as you type&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3&gt;Tweaks&lt;/h3&gt;
&lt;p&gt;The heart of the utility. All tweaks are reversible — a System Restore Point is created automatically before anything is applied.&lt;/p&gt;
&lt;h4&gt;Essential Tweaks&lt;/h4&gt;
&lt;p&gt;Safe optimizations recommended for most users. These improve performance, reduce telemetry, and trim unnecessary background activity without risking stability. Start here before touching anything else.&lt;/p&gt;
&lt;h4&gt;Advanced Tweaks (CAUTION)&lt;/h4&gt;
&lt;p&gt;For power users who understand the implications. These make deeper OS-level changes and carry a higher risk of side effects. Do not apply them blindly.&lt;/p&gt;
&lt;h4&gt;O&amp;amp;O ShutUp10++&lt;/h4&gt;
&lt;p&gt;Launch &lt;a href=&quot;https://www.oo-software.com/en/shutup10&quot;&gt;O&amp;amp;O ShutUp10++&lt;/a&gt; directly from Winutil — a free privacy tool that lets you fine-tune telemetry, update behavior, and app permission settings with a detailed GUI.&lt;/p&gt;
&lt;h4&gt;DNS&lt;/h4&gt;
&lt;p&gt;Switch your DNS provider from within Winutil. Available options include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Default / DHCP&lt;/li&gt;
&lt;li&gt;Google, Cloudflare, Cloudflare (malware blocking), Cloudflare (malware + adult content)&lt;/li&gt;
&lt;li&gt;OpenDNS, Quad9&lt;/li&gt;
&lt;li&gt;AdGuard (ads + trackers), AdGuard (ads + trackers + malware + adult content)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Both IPv4 and IPv6 are configured automatically.&lt;/p&gt;
&lt;h4&gt;Customize Preferences&lt;/h4&gt;
&lt;p&gt;Toggle visual and functional Windows settings to match your preferences.&lt;/p&gt;
&lt;h4&gt;Performance Plans&lt;/h4&gt;
&lt;p&gt;Add and activate the &lt;strong&gt;Ultimate Performance&lt;/strong&gt; power plan to minimize latency and maximize efficiency, or revert to the &lt;strong&gt;Balanced&lt;/strong&gt; profile when you don&apos;t need it.&lt;/p&gt;
&lt;h4&gt;Reverting Tweaks&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Undo Selected Tweaks&lt;/strong&gt; — reverts only what you chose&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System Restore&lt;/strong&gt; — roll back to the restore point Winutil created before tweaks ran&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3&gt;Config (Features &amp;amp; Fixes)&lt;/h3&gt;
&lt;h4&gt;Windows Features&lt;/h4&gt;
&lt;p&gt;Enable optional Windows components with a checkbox and a single click:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All .NET Frameworks (2, 3, 4)&lt;/li&gt;
&lt;li&gt;Hyper-V Virtualization&lt;/li&gt;
&lt;li&gt;Legacy Media (Windows Media Player, DirectPlay)&lt;/li&gt;
&lt;li&gt;NFS — Network File System&lt;/li&gt;
&lt;li&gt;Windows Subsystem for Linux (WSL)&lt;/li&gt;
&lt;li&gt;Windows Sandbox&lt;/li&gt;
&lt;li&gt;Enable Legacy F8 Boot Recovery&lt;/li&gt;
&lt;li&gt;Enable Daily Registry Backup (12:30 AM)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Fixes&lt;/h4&gt;
&lt;p&gt;One-click repairs for common system problems:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Fix&lt;/th&gt;
&lt;th&gt;What It Does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Set Up Autologin&lt;/td&gt;
&lt;td&gt;Configures automatic login for the current user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reset Windows Update&lt;/td&gt;
&lt;td&gt;Re-registers update DLLs and restarts update services&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reset Network&lt;/td&gt;
&lt;td&gt;Runs &lt;code&gt;netsh int ip reset&lt;/code&gt; and &lt;code&gt;netsh winsock reset&lt;/code&gt; to restore the network stack&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;System Corruption Scan&lt;/td&gt;
&lt;td&gt;Runs &lt;code&gt;sfc /scannow&lt;/code&gt; and &lt;code&gt;DISM /RestoreHealth&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WinGet Reinstall&lt;/td&gt;
&lt;td&gt;Restores WinGet if installs or uninstalls start failing&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;Legacy Windows Panels&lt;/h4&gt;
&lt;p&gt;Open classic Windows control panels that are faster and more feature-rich than the modern Settings app:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Control Panel&lt;/li&gt;
&lt;li&gt;Network Connections&lt;/li&gt;
&lt;li&gt;Power Panel&lt;/li&gt;
&lt;li&gt;Region&lt;/li&gt;
&lt;li&gt;Sound Settings&lt;/li&gt;
&lt;li&gt;System Properties&lt;/li&gt;
&lt;li&gt;User Accounts&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Remote Access&lt;/h4&gt;
&lt;p&gt;Enable an &lt;strong&gt;OpenSSH server&lt;/strong&gt; on your Windows machine for remote access without third-party software.&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;Updates&lt;/h3&gt;
&lt;p&gt;Three update modes to match your risk tolerance:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Mode&lt;/th&gt;
&lt;th&gt;What It Does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Default&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Restores standard Windows Update behavior (out-of-box settings)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Security (Recommended)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Delays feature updates by 365 days; delays security updates by 4 days to catch bad patches before they hit your machine&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Disable ALL Updates&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Turns off all updates entirely — only for isolated or special-purpose systems. Leaves the system without security patches. Use the Default button to restore.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr /&gt;
&lt;h3&gt;Win11 Creator&lt;/h3&gt;
&lt;p&gt;Win11 Creator takes an official Windows 11 ISO and produces a customized, debloated version — removing AI features, telemetry, and pre-installed apps while maintaining full program compatibility. Export the result as a new ISO or write it directly to a USB drive.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;You need an official Windows 11 ISO from &lt;a href=&quot;https://www.microsoft.com/en-us/software-download/windows11&quot;&gt;Microsoft&apos;s website&lt;/a&gt; before starting.&lt;/strong&gt; Requires ~10–15 GB of temporary disk space.&lt;/p&gt;
&lt;h4&gt;What it removes and changes&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;App &amp;amp; Component Removal:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;40+ bloat apps removed — Clipchamp, Teams, Copilot, Dev Home, new Outlook, Bing apps, Solitaire, and more&lt;/li&gt;
&lt;li&gt;OneDrive setup deleted from the image&lt;/li&gt;
&lt;li&gt;Unused Windows editions stripped (saves 1–2 GB per removed edition)&lt;/li&gt;
&lt;li&gt;Component store cleaned via DISM (reclaims 300–800 MB)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;System Customization:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hardware requirement checks bypassed — installs on machines without TPM 2.0, Secure Boot, or supported CPUs&lt;/li&gt;
&lt;li&gt;Local account setup enabled — skips the Microsoft account screen during OOBE&lt;/li&gt;
&lt;li&gt;BitLocker and device encryption disabled&lt;/li&gt;
&lt;li&gt;Chat icon removed from taskbar&lt;/li&gt;
&lt;li&gt;Dark mode enabled by default&lt;/li&gt;
&lt;li&gt;Empty taskbar and Start Menu — no pinned apps&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Privacy &amp;amp; Telemetry:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Advertising ID, tailored experiences, input personalization, and speech online privacy disabled&lt;/li&gt;
&lt;li&gt;Cloud content features, app suggestions, and Microsoft Store recommendations disabled&lt;/li&gt;
&lt;li&gt;Telemetry scheduled tasks removed (CEIP, Appraiser, WaaSMedic, and others)&lt;/li&gt;
&lt;li&gt;Copilot and search box suggestions disabled&lt;/li&gt;
&lt;li&gt;DevHome, new Outlook, and Teams auto-installation blocked&lt;/li&gt;
&lt;li&gt;Windows Update disabled during OOBE (re-enabled automatically on first login)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Optional: Driver Injection&lt;/strong&gt; — injects all drivers from your current system into the install image, useful for offline installations on machines with missing drivers.&lt;/p&gt;
&lt;h4&gt;Steps&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Select ISO&lt;/strong&gt; — browse to your official Windows 11 ISO (4 GB+)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mount &amp;amp; Verify&lt;/strong&gt; — Winutil mounts and validates the image, then lets you pick the edition (Pro selected by default)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Run Modification&lt;/strong&gt; — starts the customization process (10–30 minutes depending on disk speed)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Export&lt;/strong&gt; — save as a new ISO file or write directly to a USB drive&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Clean Up&lt;/strong&gt; (optional) — delete the temporary working directory (~10–15 GB)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Typical output ISO size: &lt;strong&gt;2.5–3.5 GB&lt;/strong&gt; (down from 5–6 GB original).&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Automation&lt;/h2&gt;
&lt;p&gt;Winutil configurations can be exported and reused to apply the same setup across multiple machines — ideal for labs, workstations, or personal reinstalls.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Export a config:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open Winutil&lt;/li&gt;
&lt;li&gt;Click the gear icon (top-right corner)&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;Export&lt;/strong&gt; and save the JSON file&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Apply the config on another machine:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;&amp;amp; ([ScriptBlock]::Create((irm &quot;https://christitus.com/win&quot;))) -Config &quot;C:\Path\To\Config.json&quot; -Run
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Run this in an elevated PowerShell session.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Demonstration Videos&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/92SM8Az5QVM&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/IuaNw8Tpn7Q&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/yKydZFJRzMk&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Easily moving Linux installs</title><link>https://christitus.com/chezmoi/</link><guid isPermaLink="true">https://christitus.com/chezmoi/</guid><description>&lt;p&gt;Are you tired of having to reset all your app settings on a new install? Using a simple tool you will never have to reconfig your app settings again. Also adding new apps and programs are extremely simple and intuitive. Stop wasting your time and start using Chezmoi to restore your app settings. This isn&apos;t meant to be a system backup but a settings backup.&lt;/p&gt;

&lt;h2&gt;Why Chezmoi&lt;/h2&gt;
&lt;p&gt;Chezmoi offers the most simplistic approach and versioning that is simply is my preferred solution over the other dot file tools below. Here is a brief diagram of how it works. &lt;em&gt;Note: I do not use git from command line in my tutorial for commits and pushes&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/chezmoi/diagram.webp&quot; alt=&quot;diagram.webp&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Notes about other dot file tools&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GNU/Stow&lt;/strong&gt; is a very popular one, but I don&apos;t like using it because of its reliance on Symlinks&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bare GIT repos&lt;/strong&gt; are also another way of doing this, but managing the files can be cumbersome&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Git / Ansible playbooks&lt;/strong&gt; a great way to deploy new systems, but can be complex to maintain and keep up to date.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Home Directory Backups&lt;/strong&gt; many times end up backing up too much and overly bloat a new system or add in unwanted settings&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;First we install Chezmoi to the /bin folder. I recommend system wide below but you can also do the install to &lt;code&gt;~/.local/bin&lt;/code&gt; if you only want to install for current user&lt;/p&gt;
&lt;p&gt;System-wide install &lt;code&gt;/bin&lt;/code&gt; &lt;em&gt;Recommended&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;su
cd /
sh -c &quot;$(curl -fsLS chezmoi.io/get)&quot;
exit
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;User install &lt;code&gt;~/.local/bin&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd ~/.local
sh -c &quot;$(curl -fsLS chezmoi.io/get)&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: Most systems have ~/.local/bin, however a few do not&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Setting up config repository&lt;/h2&gt;
&lt;p&gt;First Setup a new repository for your config files on GitHub&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/chezmoi/new-repo.webp&quot; alt=&quot;new-repo.webp&quot; /&gt;&lt;/p&gt;
&lt;p&gt;For this example, call the repository &lt;code&gt;dotfiles&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;We now simply initialize chezmoi with that new GitHub repository&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;chezmoi init https://github.com/yourusername/dotfiles
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Adding files and Applying changes&lt;/h2&gt;
&lt;p&gt;chezmoi uses a git based aliases to add files and merge them. To add something to your dotconfigs you&apos;d simply do this command as an example: &lt;code&gt;chezmoi add .bashrc&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This copies the file to the working directory ~/.local/share/chezmoi and allows it to be a part of your repository. Just like the name suggests, the working directory is where you should be doing all your edits once they are added.&lt;/p&gt;
&lt;p&gt;Once you edit your file you need to &quot;apply&quot; it back to its home so they are used with &lt;code&gt;chezmoi apply&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;What happens if you edit the &quot;original&quot; file in the home directory? simply merge that change with the working directory with &lt;code&gt;chezmoi merge filename&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Now you are done for the day and you want to submit the changes to the remote repo so you can apply these changes to your other computers. You simply change directory to chezmoi with &lt;code&gt;chezmoi cd&lt;/code&gt; or &lt;code&gt;cd ~/.local/share/chezmoi&lt;/code&gt; and &lt;code&gt;git add files&lt;/code&gt; -&amp;gt; &lt;code&gt;git commit -m &quot;initial commit&quot;&lt;/code&gt; -&amp;gt; &lt;code&gt;git push&lt;/code&gt; in the command line. However, I really like the desktop application GitHub desktop and prefer to add the ~/.local/share/chezmoi directory to it and do the add, commit, and push in that GUI GitHub Directory shown below.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/chezmoi/git-desktop.webp&quot; alt=&quot;git-desktop.webp&quot; /&gt;&lt;/p&gt;
</description><pubDate>Mon, 25 Apr 2022 22:04:25 GMT</pubDate><content:encoded>&lt;p&gt;Are you tired of having to reset all your app settings on a new install? Using a simple tool you will never have to reconfig your app settings again. Also adding new apps and programs are extremely simple and intuitive. Stop wasting your time and start using Chezmoi to restore your app settings. This isn&apos;t meant to be a system backup but a settings backup.&lt;/p&gt;

&lt;h2&gt;Why Chezmoi&lt;/h2&gt;
&lt;p&gt;Chezmoi offers the most simplistic approach and versioning that is simply is my preferred solution over the other dot file tools below. Here is a brief diagram of how it works. &lt;em&gt;Note: I do not use git from command line in my tutorial for commits and pushes&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/chezmoi/diagram.webp&quot; alt=&quot;diagram.webp&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Notes about other dot file tools&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GNU/Stow&lt;/strong&gt; is a very popular one, but I don&apos;t like using it because of its reliance on Symlinks&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bare GIT repos&lt;/strong&gt; are also another way of doing this, but managing the files can be cumbersome&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Git / Ansible playbooks&lt;/strong&gt; a great way to deploy new systems, but can be complex to maintain and keep up to date.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Home Directory Backups&lt;/strong&gt; many times end up backing up too much and overly bloat a new system or add in unwanted settings&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;First we install Chezmoi to the /bin folder. I recommend system wide below but you can also do the install to &lt;code&gt;~/.local/bin&lt;/code&gt; if you only want to install for current user&lt;/p&gt;
&lt;p&gt;System-wide install &lt;code&gt;/bin&lt;/code&gt; &lt;em&gt;Recommended&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;su
cd /
sh -c &quot;$(curl -fsLS chezmoi.io/get)&quot;
exit
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;User install &lt;code&gt;~/.local/bin&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd ~/.local
sh -c &quot;$(curl -fsLS chezmoi.io/get)&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: Most systems have ~/.local/bin, however a few do not&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Setting up config repository&lt;/h2&gt;
&lt;p&gt;First Setup a new repository for your config files on GitHub&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/chezmoi/new-repo.webp&quot; alt=&quot;new-repo.webp&quot; /&gt;&lt;/p&gt;
&lt;p&gt;For this example, call the repository &lt;code&gt;dotfiles&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;We now simply initialize chezmoi with that new GitHub repository&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;chezmoi init https://github.com/yourusername/dotfiles
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Adding files and Applying changes&lt;/h2&gt;
&lt;p&gt;chezmoi uses a git based aliases to add files and merge them. To add something to your dotconfigs you&apos;d simply do this command as an example: &lt;code&gt;chezmoi add .bashrc&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This copies the file to the working directory ~/.local/share/chezmoi and allows it to be a part of your repository. Just like the name suggests, the working directory is where you should be doing all your edits once they are added.&lt;/p&gt;
&lt;p&gt;Once you edit your file you need to &quot;apply&quot; it back to its home so they are used with &lt;code&gt;chezmoi apply&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;What happens if you edit the &quot;original&quot; file in the home directory? simply merge that change with the working directory with &lt;code&gt;chezmoi merge filename&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Now you are done for the day and you want to submit the changes to the remote repo so you can apply these changes to your other computers. You simply change directory to chezmoi with &lt;code&gt;chezmoi cd&lt;/code&gt; or &lt;code&gt;cd ~/.local/share/chezmoi&lt;/code&gt; and &lt;code&gt;git add files&lt;/code&gt; -&amp;gt; &lt;code&gt;git commit -m &quot;initial commit&quot;&lt;/code&gt; -&amp;gt; &lt;code&gt;git push&lt;/code&gt; in the command line. However, I really like the desktop application GitHub desktop and prefer to add the ~/.local/share/chezmoi directory to it and do the add, commit, and push in that GUI GitHub Directory shown below.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/chezmoi/git-desktop.webp&quot; alt=&quot;git-desktop.webp&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>My Obsidian Setup</title><link>https://christitus.com/obsidian/</link><guid isPermaLink="true">https://christitus.com/obsidian/</guid><description>&lt;p&gt;Notes are vital to our productivity but often people either take too many notes or none at all. I sought to fix this by using a simplistic approach in the Obsidian app. I&apos;ve tried notion and a variety of other offerings that always fell flat. Let me show you how I set this app for maximum productivity.&lt;/p&gt;

&lt;h2&gt;Install Plugins&lt;/h2&gt;
&lt;p&gt;Open Obsidian Settings
&lt;img src=&quot;/images/2022/04-obsidian/plugins.webp&quot; alt=&quot;settings&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Template (Core)&lt;/li&gt;
&lt;li&gt;Kanban&lt;/li&gt;
&lt;li&gt;Dataview (Progress Bar)&lt;/li&gt;
&lt;li&gt;Homepage&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Template Core Plugin&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Make Template folder in file view&lt;/li&gt;
&lt;li&gt;Set Template Folder under Template in Obsidian settings&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Kanban Plugin&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/04-obsidian/kanban-settings.webp&quot; alt=&quot;kanban settings&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Click on settings cog for your board&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;NOT the settings for the obsidian program&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Set your default template, Note folder to put new files in, and lane width.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/04-obsidian/kanban-settings2.webp&quot; alt=&quot;kanban settings2&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: I recommend leaving 270 width for 1080p screens&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Homepage Plugin&lt;/h2&gt;
&lt;p&gt;Adds Home button and just makes it easy to always get back to your kanban to-do page. The homepage button my default will close all open notes and open the to-do or what ever note you specify. Here are my settings:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/04-obsidian/homepage.webp&quot; alt=&quot;homepage plugin&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Dataview Plugin&lt;/h2&gt;
&lt;p&gt;This is for progress bar, or if you want to do filters, tags, yaml headers, and other sorting techniques. It does WAY more than I use it for at the moment. Since I&apos;m limiting my notes to maybe 10-20 notes I don&apos;t need the other stuff, but it is there incase I expand. For now, I will use the following code in my templates to add a progress bar that tracks any checkboxes and how many are checked compared to total.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;`=&quot;![progress](https://progress-bar.dev/&quot; + round(length(filter(this.file.tasks.completed, (t) =&amp;gt; t = true)) / length(this.file.tasks.text) * 100) + &quot;/)&quot;`
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Walkthrough Video&lt;/h3&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/zGCv6aDDfP8&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 22 Apr 2022 13:32:54 GMT</pubDate><content:encoded>&lt;p&gt;Notes are vital to our productivity but often people either take too many notes or none at all. I sought to fix this by using a simplistic approach in the Obsidian app. I&apos;ve tried notion and a variety of other offerings that always fell flat. Let me show you how I set this app for maximum productivity.&lt;/p&gt;

&lt;h2&gt;Install Plugins&lt;/h2&gt;
&lt;p&gt;Open Obsidian Settings
&lt;img src=&quot;/images/2022/04-obsidian/plugins.webp&quot; alt=&quot;settings&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Template (Core)&lt;/li&gt;
&lt;li&gt;Kanban&lt;/li&gt;
&lt;li&gt;Dataview (Progress Bar)&lt;/li&gt;
&lt;li&gt;Homepage&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Template Core Plugin&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Make Template folder in file view&lt;/li&gt;
&lt;li&gt;Set Template Folder under Template in Obsidian settings&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Kanban Plugin&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/04-obsidian/kanban-settings.webp&quot; alt=&quot;kanban settings&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Click on settings cog for your board&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;NOT the settings for the obsidian program&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Set your default template, Note folder to put new files in, and lane width.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/04-obsidian/kanban-settings2.webp&quot; alt=&quot;kanban settings2&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: I recommend leaving 270 width for 1080p screens&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Homepage Plugin&lt;/h2&gt;
&lt;p&gt;Adds Home button and just makes it easy to always get back to your kanban to-do page. The homepage button my default will close all open notes and open the to-do or what ever note you specify. Here are my settings:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/04-obsidian/homepage.webp&quot; alt=&quot;homepage plugin&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Dataview Plugin&lt;/h2&gt;
&lt;p&gt;This is for progress bar, or if you want to do filters, tags, yaml headers, and other sorting techniques. It does WAY more than I use it for at the moment. Since I&apos;m limiting my notes to maybe 10-20 notes I don&apos;t need the other stuff, but it is there incase I expand. For now, I will use the following code in my templates to add a progress bar that tracks any checkboxes and how many are checked compared to total.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;`=&quot;![progress](https://progress-bar.dev/&quot; + round(length(filter(this.file.tasks.completed, (t) =&amp;gt; t = true)) / length(this.file.tasks.text) * 100) + &quot;/)&quot;`
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Walkthrough Video&lt;/h3&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/zGCv6aDDfP8&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>30 Days in ChromeOS</title><link>https://christitus.com/30days-chromeos/</link><guid isPermaLink="true">https://christitus.com/30days-chromeos/</guid><description>&lt;p&gt;This article details how I survived 30 days in ChromeOS as a poweruser. I don&apos;t use Chrome Browser and I don&apos;t enjoy using Andorid apps. This is how I used ChromeOS like a desktop instead of a mobile phone. No, I didn&apos;t enable developer mode for this.&lt;/p&gt;

&lt;h2&gt;ChromeOS Changes to Supercharge the Install&lt;/h2&gt;
&lt;p&gt;The biggest thing about ChromeOS that it has a huge amount of Pros, but is missing some things out of the box that many desktop users need. I changed the browser, photo editing software, gaming, game streaming, and many other tools using ChromeOS&apos;s built in Linux environment. The container system (crostini) is absolutely amazing and I was able to utilize all these Linux/Windows tools on my system.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Launch Settings and type in search &lt;code&gt;Linux&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;Setting up the Linux Environment&lt;/h3&gt;
&lt;p&gt;By default setting up a Linux environment in Chrome is as easy as checking a box in Settings. We just need to modify the environment ChromeOS gives us.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/04-chromeos/chromeos-linux.webp&quot; alt=&quot;linux&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Then we change the stock repositories in the linux environment so that we can easily install our programs. All the below commands are done in Terminal --&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/04-chromeos/Terminal.webp&quot; alt=&quot;terminal&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Install Text Editor&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt install nano
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Edit the download repos so we can install more&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo nano /etc/apt/sources.list
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Edit the file to look like this:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;deb https://deb.debian.org/debian sid main contrib non-free
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Save and Exit&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update system and install any packages&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt update
sudo apt install packagename
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Rename package name to be the package you need. Ex. &lt;code&gt;sudo apt install gimp&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;With the environment now setup, we can get a ton of packages into our ChromeOS that automatically add to the start menu. We can add more than this by installing deb packages, adding repositories, or building programs from source using the linux tar.gz files. The sky is the limit!&lt;/p&gt;
&lt;h3&gt;Install Your desktop programs&lt;/h3&gt;
&lt;p&gt;Getting the browser you use on your desktop is the first thing I do. Chrome is great, but not everyone uses it and I prefer Brave a bit more, where others prefer Firefox. You can simple follow the linux install instructions for your browser of choice. Here is some basic ways to install the browser from the Linux Terminal.&lt;/p&gt;
&lt;h4&gt;Firefox&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install firefox
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Brave&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install apt-transport-https curl
sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg
echo &quot;deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main&quot;|sudo tee /etc/apt/sources.list.d/brave-browser-release.list
sudo apt update
sudo apt install brave-browser
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The remaining programs can be installed using any Linux guide that is based around &quot;Debian&quot; and most can simple be installed using sudo apt install command. There were a couple programs I installed by download the .deb file. which can be installed using &lt;code&gt;sudo dpkg -i packagename.deb&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Pros and Cons of Using ChromeOS&lt;/h3&gt;
&lt;h4&gt;Pros&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;More than a web browser&lt;/li&gt;
&lt;li&gt;Installing other browsers and programs&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Brave&lt;/li&gt;
&lt;li&gt;GIMP&lt;/li&gt;
&lt;li&gt;Linux Programs&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;Performance - Good, but video can be laggy.&lt;/li&gt;
&lt;li&gt;Perfect for old or low powered equipment&lt;/li&gt;
&lt;li&gt;Amazing power management&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Cons&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;No Windows Apps&lt;/li&gt;
&lt;li&gt;3d/Video acceleration is crap&lt;/li&gt;
&lt;li&gt;Everything is Google
&lt;ol&gt;
&lt;li&gt;GApps - Sheets, Word, Etc.&lt;/li&gt;
&lt;li&gt;Google Drive&lt;/li&gt;
&lt;li&gt;Google Account is a must&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Files and System navigation is lacking - USB Drives and recognition issues with external media&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Installing on an Old Machine&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Google Extension and 8GB+ Thumbdrive
&lt;ol&gt;
&lt;li&gt;Install via Google Extension &lt;em&gt;(Required)&lt;/em&gt; &lt;a href=&quot;https://chrome.google.com/webstore/detail/chromebook-recovery-utili/pocpnlppkickgojjlmhdmidojbmbodfm&quot;&gt;https://chrome.google.com/webstore/detail/chromebook-recovery-utili/pocpnlppkickgojjlmhdmidojbmbodfm&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;ChromeOS has some amazing use cases, but is definitely not for everyone. I have a couple old low powered computers that I can repurpose with ChromeOS to bring them new life, but I will not be daily driving it on my main machine.&lt;/p&gt;
&lt;h3&gt;Walkthrough Video&lt;/h3&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/fVRZlqmGrUk&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 11 Apr 2022 13:48:13 GMT</pubDate><content:encoded>&lt;p&gt;This article details how I survived 30 days in ChromeOS as a poweruser. I don&apos;t use Chrome Browser and I don&apos;t enjoy using Andorid apps. This is how I used ChromeOS like a desktop instead of a mobile phone. No, I didn&apos;t enable developer mode for this.&lt;/p&gt;

&lt;h2&gt;ChromeOS Changes to Supercharge the Install&lt;/h2&gt;
&lt;p&gt;The biggest thing about ChromeOS that it has a huge amount of Pros, but is missing some things out of the box that many desktop users need. I changed the browser, photo editing software, gaming, game streaming, and many other tools using ChromeOS&apos;s built in Linux environment. The container system (crostini) is absolutely amazing and I was able to utilize all these Linux/Windows tools on my system.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Launch Settings and type in search &lt;code&gt;Linux&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;Setting up the Linux Environment&lt;/h3&gt;
&lt;p&gt;By default setting up a Linux environment in Chrome is as easy as checking a box in Settings. We just need to modify the environment ChromeOS gives us.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/04-chromeos/chromeos-linux.webp&quot; alt=&quot;linux&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Then we change the stock repositories in the linux environment so that we can easily install our programs. All the below commands are done in Terminal --&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/04-chromeos/Terminal.webp&quot; alt=&quot;terminal&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Install Text Editor&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt install nano
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Edit the download repos so we can install more&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo nano /etc/apt/sources.list
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Edit the file to look like this:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;deb https://deb.debian.org/debian sid main contrib non-free
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Save and Exit&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update system and install any packages&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt update
sudo apt install packagename
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Rename package name to be the package you need. Ex. &lt;code&gt;sudo apt install gimp&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;With the environment now setup, we can get a ton of packages into our ChromeOS that automatically add to the start menu. We can add more than this by installing deb packages, adding repositories, or building programs from source using the linux tar.gz files. The sky is the limit!&lt;/p&gt;
&lt;h3&gt;Install Your desktop programs&lt;/h3&gt;
&lt;p&gt;Getting the browser you use on your desktop is the first thing I do. Chrome is great, but not everyone uses it and I prefer Brave a bit more, where others prefer Firefox. You can simple follow the linux install instructions for your browser of choice. Here is some basic ways to install the browser from the Linux Terminal.&lt;/p&gt;
&lt;h4&gt;Firefox&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install firefox
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Brave&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install apt-transport-https curl
sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg
echo &quot;deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main&quot;|sudo tee /etc/apt/sources.list.d/brave-browser-release.list
sudo apt update
sudo apt install brave-browser
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The remaining programs can be installed using any Linux guide that is based around &quot;Debian&quot; and most can simple be installed using sudo apt install command. There were a couple programs I installed by download the .deb file. which can be installed using &lt;code&gt;sudo dpkg -i packagename.deb&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Pros and Cons of Using ChromeOS&lt;/h3&gt;
&lt;h4&gt;Pros&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;More than a web browser&lt;/li&gt;
&lt;li&gt;Installing other browsers and programs&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Brave&lt;/li&gt;
&lt;li&gt;GIMP&lt;/li&gt;
&lt;li&gt;Linux Programs&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;Performance - Good, but video can be laggy.&lt;/li&gt;
&lt;li&gt;Perfect for old or low powered equipment&lt;/li&gt;
&lt;li&gt;Amazing power management&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Cons&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;No Windows Apps&lt;/li&gt;
&lt;li&gt;3d/Video acceleration is crap&lt;/li&gt;
&lt;li&gt;Everything is Google
&lt;ol&gt;
&lt;li&gt;GApps - Sheets, Word, Etc.&lt;/li&gt;
&lt;li&gt;Google Drive&lt;/li&gt;
&lt;li&gt;Google Account is a must&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Files and System navigation is lacking - USB Drives and recognition issues with external media&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Installing on an Old Machine&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Google Extension and 8GB+ Thumbdrive
&lt;ol&gt;
&lt;li&gt;Install via Google Extension &lt;em&gt;(Required)&lt;/em&gt; &lt;a href=&quot;https://chrome.google.com/webstore/detail/chromebook-recovery-utili/pocpnlppkickgojjlmhdmidojbmbodfm&quot;&gt;https://chrome.google.com/webstore/detail/chromebook-recovery-utili/pocpnlppkickgojjlmhdmidojbmbodfm&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;ChromeOS has some amazing use cases, but is definitely not for everyone. I have a couple old low powered computers that I can repurpose with ChromeOS to bring them new life, but I will not be daily driving it on my main machine.&lt;/p&gt;
&lt;h3&gt;Walkthrough Video&lt;/h3&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/fVRZlqmGrUk&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Robocopy - Copying files the right way in Windows</title><link>https://christitus.com/robocopy/</link><guid isPermaLink="true">https://christitus.com/robocopy/</guid><description>&lt;p&gt;This guide shows how to copy files in windows when dealing with large volumes of files and very long file paths past 255 characters.&lt;/p&gt;

&lt;h2&gt;What is Robocopy and Why use it?&lt;/h2&gt;
&lt;p&gt;Robocopy is a build in command line program that is fantastic at copying files quickly and bypasses many of the downsides of the standard copy process of windows.&lt;/p&gt;
&lt;p&gt;The downsides of Window&apos;s standard file copy are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Has to read ALL files being copied BEFORE it will copy the first file&lt;/li&gt;
&lt;li&gt;Artificial character limit of 255 that includes the filename and filepath.&lt;/li&gt;
&lt;li&gt;GUI limitations for LARGE amounts of files.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;How to use Robocopy&lt;/h2&gt;
&lt;p&gt;Launch into the Command Prompt or Powershell by right-clicking Start Menu&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/01-robocopy/start-menu.webp&quot; alt=&quot;start-menu&quot; /&gt;&lt;/p&gt;
&lt;p&gt;From this interface you can now run Robocopy.&lt;/p&gt;
&lt;p&gt;Basic Syntax:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;C:\&amp;gt; robocopy &quot;Source Directory&quot; &quot;Destination Directory&quot; /e /w:5 /r:2 /COPY:DATSOU /DCOPY:DAT /MT
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Full syntax can be shown with &lt;code&gt;robocopy /?&lt;/code&gt; but be careful with /MIR and move style copies as this can overwrite and erase existing files in the destination directory.&lt;/p&gt;
&lt;p&gt;Notable Options with Robocopy&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;/e - Copy all folders including empty ones&lt;/li&gt;
&lt;li&gt;/r - Retry times /r:0 means no retry on failed copy&lt;/li&gt;
&lt;li&gt;/w - Wait time /w:0 means no wait between retry on failed copy&lt;/li&gt;
&lt;li&gt;/COPYALL OR /COPY:DATSOU - Copy Data, Attributes, Timestamps, Security, Owner, and Auditing Info for files&lt;/li&gt;
&lt;li&gt;/DCOPY:DAT - Copy Data,Attributes and Timestamps for Directories (Other Options are E=EAs-Extended Attributes, X=Skip alt data streams, but are almost never used)&lt;/li&gt;
&lt;li&gt;/MT:n - Multithread transfer with n threads. Example /MT:4 - Use 4 threads to copy files. If no threads set, it will default to 8.&lt;/li&gt;
&lt;li&gt;/MIR - Mirror Source to Destination - WARNING: WILL DELETE ANY FILES THAT DO NOT MATCH IN DESTINATION!&lt;/li&gt;
&lt;li&gt;/MOVE - Moves from Source to Destination - WARNING: WILL DELETE ALL FILES FROM SOURCE AFTER COPY!&lt;/li&gt;
&lt;li&gt;/LFSM:100M - Operate in Low Free Space Mode with 100 Megabytes. 10M = 10 Megabytes 1G = 1 Gigabyte&lt;/li&gt;
&lt;li&gt;/B - Backup Mode - Great for system backups if you are part of Administrator or Backup Users group - NOT RECOMMENDED - Use 3rd party backup software&lt;/li&gt;
&lt;li&gt;/ZB - Restartable Backup Mode - Tries to copy files with restartable and if it fails it restarts in backup mode - NOT RECOMMENDED - Use 3rd party backup software&lt;/li&gt;
&lt;li&gt;/RH:1700-0900 - Scheduled run between 5PM and 9AM and will pause if it is during &quot;business hours of 9AM-5PM&quot;&lt;/li&gt;
&lt;li&gt;/LOG+:C:\robocopy.log - Outputs everything to C:\robocopy.log (Note: if NOT running as admin you need to put this in your user folder C:\Users\username\robocopy.log) the + adds to the file.&lt;/li&gt;
&lt;li&gt;/TEE - If using LOG and you also want console output, put the /TEE option in.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I don&apos;t recommend using backup, restartable mode, or jobs. Jobs typically miss options and 3rd party solution like veeam are FAR better for backups than robocopy EVER will be.&lt;/p&gt;
&lt;h3&gt;Walkthrough Video&lt;/h3&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/0q3rGK_IMZg&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 19 Jan 2022 23:39:34 GMT</pubDate><content:encoded>&lt;p&gt;This guide shows how to copy files in windows when dealing with large volumes of files and very long file paths past 255 characters.&lt;/p&gt;

&lt;h2&gt;What is Robocopy and Why use it?&lt;/h2&gt;
&lt;p&gt;Robocopy is a build in command line program that is fantastic at copying files quickly and bypasses many of the downsides of the standard copy process of windows.&lt;/p&gt;
&lt;p&gt;The downsides of Window&apos;s standard file copy are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Has to read ALL files being copied BEFORE it will copy the first file&lt;/li&gt;
&lt;li&gt;Artificial character limit of 255 that includes the filename and filepath.&lt;/li&gt;
&lt;li&gt;GUI limitations for LARGE amounts of files.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;How to use Robocopy&lt;/h2&gt;
&lt;p&gt;Launch into the Command Prompt or Powershell by right-clicking Start Menu&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2022/01-robocopy/start-menu.webp&quot; alt=&quot;start-menu&quot; /&gt;&lt;/p&gt;
&lt;p&gt;From this interface you can now run Robocopy.&lt;/p&gt;
&lt;p&gt;Basic Syntax:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;C:\&amp;gt; robocopy &quot;Source Directory&quot; &quot;Destination Directory&quot; /e /w:5 /r:2 /COPY:DATSOU /DCOPY:DAT /MT
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Full syntax can be shown with &lt;code&gt;robocopy /?&lt;/code&gt; but be careful with /MIR and move style copies as this can overwrite and erase existing files in the destination directory.&lt;/p&gt;
&lt;p&gt;Notable Options with Robocopy&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;/e - Copy all folders including empty ones&lt;/li&gt;
&lt;li&gt;/r - Retry times /r:0 means no retry on failed copy&lt;/li&gt;
&lt;li&gt;/w - Wait time /w:0 means no wait between retry on failed copy&lt;/li&gt;
&lt;li&gt;/COPYALL OR /COPY:DATSOU - Copy Data, Attributes, Timestamps, Security, Owner, and Auditing Info for files&lt;/li&gt;
&lt;li&gt;/DCOPY:DAT - Copy Data,Attributes and Timestamps for Directories (Other Options are E=EAs-Extended Attributes, X=Skip alt data streams, but are almost never used)&lt;/li&gt;
&lt;li&gt;/MT:n - Multithread transfer with n threads. Example /MT:4 - Use 4 threads to copy files. If no threads set, it will default to 8.&lt;/li&gt;
&lt;li&gt;/MIR - Mirror Source to Destination - WARNING: WILL DELETE ANY FILES THAT DO NOT MATCH IN DESTINATION!&lt;/li&gt;
&lt;li&gt;/MOVE - Moves from Source to Destination - WARNING: WILL DELETE ALL FILES FROM SOURCE AFTER COPY!&lt;/li&gt;
&lt;li&gt;/LFSM:100M - Operate in Low Free Space Mode with 100 Megabytes. 10M = 10 Megabytes 1G = 1 Gigabyte&lt;/li&gt;
&lt;li&gt;/B - Backup Mode - Great for system backups if you are part of Administrator or Backup Users group - NOT RECOMMENDED - Use 3rd party backup software&lt;/li&gt;
&lt;li&gt;/ZB - Restartable Backup Mode - Tries to copy files with restartable and if it fails it restarts in backup mode - NOT RECOMMENDED - Use 3rd party backup software&lt;/li&gt;
&lt;li&gt;/RH:1700-0900 - Scheduled run between 5PM and 9AM and will pause if it is during &quot;business hours of 9AM-5PM&quot;&lt;/li&gt;
&lt;li&gt;/LOG+:C:\robocopy.log - Outputs everything to C:\robocopy.log (Note: if NOT running as admin you need to put this in your user folder C:\Users\username\robocopy.log) the + adds to the file.&lt;/li&gt;
&lt;li&gt;/TEE - If using LOG and you also want console output, put the /TEE option in.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I don&apos;t recommend using backup, restartable mode, or jobs. Jobs typically miss options and 3rd party solution like veeam are FAR better for backups than robocopy EVER will be.&lt;/p&gt;
&lt;h3&gt;Walkthrough Video&lt;/h3&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/0q3rGK_IMZg&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Install KVM, QEMU, and Virt-Manager on Linux</title><link>https://christitus.com/vm-setup-in-linux/</link><guid isPermaLink="true">https://christitus.com/vm-setup-in-linux/</guid><description>&lt;p&gt;This guide installs KVM/QEMU, libvirt, and the Virt-Manager desktop app on Debian, Arch Linux, or Fedora. Pick your distribution, copy the commands, and then complete the shared setup steps.&lt;/p&gt;

&lt;h2&gt;Before You Install&lt;/h2&gt;
&lt;p&gt;KVM needs Intel VT-x or AMD-V hardware virtualization. Check whether your CPU exposes either feature:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;grep -Eoc &apos;(vmx|svm)&apos; /proc/cpuinfo
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Any number greater than &lt;code&gt;0&lt;/code&gt; means the CPU virtualization extensions are available. If the result is &lt;code&gt;0&lt;/code&gt;, reboot into your BIOS/UEFI settings and enable &lt;strong&gt;Intel VT-x&lt;/strong&gt;, &lt;strong&gt;Intel Virtualization Technology&lt;/strong&gt;, &lt;strong&gt;AMD-V&lt;/strong&gt;, or &lt;strong&gt;SVM Mode&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;Debian&lt;/h2&gt;
&lt;p&gt;These commands install the QEMU/KVM hypervisor, libvirt, its command-line tools, and Virt-Manager:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo apt update
sudo apt install -y qemu-system-x86 qemu-utils libvirt-daemon-system libvirt-clients virt-manager
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Start libvirt now and automatically at boot:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo systemctl enable --now libvirtd.service
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Arch Linux&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;qemu-desktop&lt;/code&gt; package is the practical choice for running x86 virtual machines with a graphical desktop. &lt;code&gt;dnsmasq&lt;/code&gt; supplies DHCP and DNS for libvirt&apos;s default NAT network.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo pacman -Syu --needed qemu-desktop libvirt virt-manager dnsmasq
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Start libvirt now and automatically at boot:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo systemctl enable --now libvirtd.service
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Fedora&lt;/h2&gt;
&lt;p&gt;Fedora&apos;s virtualization package group installs QEMU/KVM, libvirt, Virt-Manager, and the default network configuration:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo dnf install -y @virtualization
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Start libvirt now and automatically at boot:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo systemctl enable --now libvirtd.service
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Allow Your User to Manage Virtual Machines&lt;/h2&gt;
&lt;p&gt;Add your current user to the &lt;code&gt;libvirt&lt;/code&gt; group:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo usermod -aG libvirt &quot;$USER&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Log out and back in so the new group membership takes effect. A reboot works too.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Membership in the &lt;code&gt;libvirt&lt;/code&gt; group grants permission to manage system virtual machines. Do not add your account to broad device-access groups such as &lt;code&gt;disk&lt;/code&gt; or &lt;code&gt;input&lt;/code&gt; for this setup.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Enable the Default Virtual Network&lt;/h2&gt;
&lt;p&gt;First, check the available libvirt networks:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo virsh net-list --all
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If &lt;code&gt;default&lt;/code&gt; is listed as inactive, start it and configure it to start at boot:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo virsh net-start default
sudo virsh net-autostart default
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Verify that &lt;code&gt;default&lt;/code&gt; now shows &lt;code&gt;active&lt;/code&gt; and &lt;code&gt;yes&lt;/code&gt; under Autostart:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo virsh net-list --all
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Verify KVM and Libvirt&lt;/h2&gt;
&lt;p&gt;Check that the KVM kernel modules are loaded. You should see &lt;code&gt;kvm_intel&lt;/code&gt; or &lt;code&gt;kvm_amd&lt;/code&gt;, plus the main &lt;code&gt;kvm&lt;/code&gt; module:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;lsmod | grep kvm
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After logging back in, verify that your user can connect to the system libvirt service:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;virsh --connect qemu:///system list --all
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;An empty virtual-machine list is normal on a new installation. If the command returns without a connection or permission error, the setup is working.&lt;/p&gt;
&lt;h2&gt;Create Your First Virtual Machine&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Download the ISO for the operating system you want to install.&lt;/li&gt;
&lt;li&gt;Open &lt;strong&gt;Virtual Machine Manager&lt;/strong&gt; from your application menu, or run &lt;code&gt;virt-manager&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Make sure the connection is &lt;strong&gt;QEMU/KVM - System&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Create a new virtual machine&lt;/strong&gt;, choose your ISO, and follow the wizard.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Virt-Manager stores system VM disk images in &lt;code&gt;/var/lib/libvirt/images/&lt;/code&gt; by default.&lt;/p&gt;
&lt;h2&gt;Troubleshooting&lt;/h2&gt;
&lt;h3&gt;The Virtualization Check Returns 0&lt;/h3&gt;
&lt;p&gt;Enable VT-x or AMD-V/SVM in BIOS/UEFI. On a VM host provided by a cloud service or another hypervisor, nested virtualization must also be enabled by that provider or parent hypervisor.&lt;/p&gt;
&lt;h3&gt;The Default Network Does Not Exist&lt;/h3&gt;
&lt;p&gt;Define it from libvirt&apos;s packaged configuration, then start it:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo virsh net-define /usr/share/libvirt/networks/default.xml
sudo virsh net-autostart default
sudo virsh net-start default
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Virt-Manager Cannot Connect&lt;/h3&gt;
&lt;p&gt;Confirm that libvirt is running:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;systemctl status libvirtd.service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then confirm that your login session has the &lt;code&gt;libvirt&lt;/code&gt; group:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;groups
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If &lt;code&gt;libvirt&lt;/code&gt; is missing, log out completely and log back in, or reboot.&lt;/p&gt;
&lt;h2&gt;Distribution Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.debian.org/doc/manuals/debian-handbook/sect.virtualization.en.html&quot;&gt;Debian Handbook: Virtualization&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://wiki.archlinux.org/title/Libvirt&quot;&gt;ArchWiki: libvirt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.fedoraproject.org/en-US/quick-docs/virtualization-getting-started/&quot;&gt;Fedora Docs: Virtualization - Getting Started&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;p&gt;The video below shows the original Debian-focused version of this setup. Package names and screens may differ from the updated commands above.&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/Kq849CpGd88&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 12 Jan 2022 21:28:59 GMT</pubDate><content:encoded>&lt;p&gt;This guide installs KVM/QEMU, libvirt, and the Virt-Manager desktop app on Debian, Arch Linux, or Fedora. Pick your distribution, copy the commands, and then complete the shared setup steps.&lt;/p&gt;

&lt;h2&gt;Before You Install&lt;/h2&gt;
&lt;p&gt;KVM needs Intel VT-x or AMD-V hardware virtualization. Check whether your CPU exposes either feature:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;grep -Eoc &apos;(vmx|svm)&apos; /proc/cpuinfo
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Any number greater than &lt;code&gt;0&lt;/code&gt; means the CPU virtualization extensions are available. If the result is &lt;code&gt;0&lt;/code&gt;, reboot into your BIOS/UEFI settings and enable &lt;strong&gt;Intel VT-x&lt;/strong&gt;, &lt;strong&gt;Intel Virtualization Technology&lt;/strong&gt;, &lt;strong&gt;AMD-V&lt;/strong&gt;, or &lt;strong&gt;SVM Mode&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;Debian&lt;/h2&gt;
&lt;p&gt;These commands install the QEMU/KVM hypervisor, libvirt, its command-line tools, and Virt-Manager:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo apt update
sudo apt install -y qemu-system-x86 qemu-utils libvirt-daemon-system libvirt-clients virt-manager
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Start libvirt now and automatically at boot:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo systemctl enable --now libvirtd.service
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Arch Linux&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;qemu-desktop&lt;/code&gt; package is the practical choice for running x86 virtual machines with a graphical desktop. &lt;code&gt;dnsmasq&lt;/code&gt; supplies DHCP and DNS for libvirt&apos;s default NAT network.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo pacman -Syu --needed qemu-desktop libvirt virt-manager dnsmasq
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Start libvirt now and automatically at boot:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo systemctl enable --now libvirtd.service
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Fedora&lt;/h2&gt;
&lt;p&gt;Fedora&apos;s virtualization package group installs QEMU/KVM, libvirt, Virt-Manager, and the default network configuration:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo dnf install -y @virtualization
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Start libvirt now and automatically at boot:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo systemctl enable --now libvirtd.service
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Allow Your User to Manage Virtual Machines&lt;/h2&gt;
&lt;p&gt;Add your current user to the &lt;code&gt;libvirt&lt;/code&gt; group:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo usermod -aG libvirt &quot;$USER&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Log out and back in so the new group membership takes effect. A reboot works too.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Membership in the &lt;code&gt;libvirt&lt;/code&gt; group grants permission to manage system virtual machines. Do not add your account to broad device-access groups such as &lt;code&gt;disk&lt;/code&gt; or &lt;code&gt;input&lt;/code&gt; for this setup.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Enable the Default Virtual Network&lt;/h2&gt;
&lt;p&gt;First, check the available libvirt networks:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo virsh net-list --all
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If &lt;code&gt;default&lt;/code&gt; is listed as inactive, start it and configure it to start at boot:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo virsh net-start default
sudo virsh net-autostart default
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Verify that &lt;code&gt;default&lt;/code&gt; now shows &lt;code&gt;active&lt;/code&gt; and &lt;code&gt;yes&lt;/code&gt; under Autostart:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo virsh net-list --all
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Verify KVM and Libvirt&lt;/h2&gt;
&lt;p&gt;Check that the KVM kernel modules are loaded. You should see &lt;code&gt;kvm_intel&lt;/code&gt; or &lt;code&gt;kvm_amd&lt;/code&gt;, plus the main &lt;code&gt;kvm&lt;/code&gt; module:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;lsmod | grep kvm
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After logging back in, verify that your user can connect to the system libvirt service:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;virsh --connect qemu:///system list --all
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;An empty virtual-machine list is normal on a new installation. If the command returns without a connection or permission error, the setup is working.&lt;/p&gt;
&lt;h2&gt;Create Your First Virtual Machine&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Download the ISO for the operating system you want to install.&lt;/li&gt;
&lt;li&gt;Open &lt;strong&gt;Virtual Machine Manager&lt;/strong&gt; from your application menu, or run &lt;code&gt;virt-manager&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Make sure the connection is &lt;strong&gt;QEMU/KVM - System&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Create a new virtual machine&lt;/strong&gt;, choose your ISO, and follow the wizard.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Virt-Manager stores system VM disk images in &lt;code&gt;/var/lib/libvirt/images/&lt;/code&gt; by default.&lt;/p&gt;
&lt;h2&gt;Troubleshooting&lt;/h2&gt;
&lt;h3&gt;The Virtualization Check Returns 0&lt;/h3&gt;
&lt;p&gt;Enable VT-x or AMD-V/SVM in BIOS/UEFI. On a VM host provided by a cloud service or another hypervisor, nested virtualization must also be enabled by that provider or parent hypervisor.&lt;/p&gt;
&lt;h3&gt;The Default Network Does Not Exist&lt;/h3&gt;
&lt;p&gt;Define it from libvirt&apos;s packaged configuration, then start it:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo virsh net-define /usr/share/libvirt/networks/default.xml
sudo virsh net-autostart default
sudo virsh net-start default
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Virt-Manager Cannot Connect&lt;/h3&gt;
&lt;p&gt;Confirm that libvirt is running:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;systemctl status libvirtd.service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then confirm that your login session has the &lt;code&gt;libvirt&lt;/code&gt; group:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;groups
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If &lt;code&gt;libvirt&lt;/code&gt; is missing, log out completely and log back in, or reboot.&lt;/p&gt;
&lt;h2&gt;Distribution Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.debian.org/doc/manuals/debian-handbook/sect.virtualization.en.html&quot;&gt;Debian Handbook: Virtualization&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://wiki.archlinux.org/title/Libvirt&quot;&gt;ArchWiki: libvirt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.fedoraproject.org/en-US/quick-docs/virtualization-getting-started/&quot;&gt;Fedora Docs: Virtualization - Getting Started&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Walkthrough Video&lt;/h2&gt;
&lt;p&gt;The video below shows the original Debian-focused version of this setup. Package names and screens may differ from the updated commands above.&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/Kq849CpGd88&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Uninstall Microsoft Edge</title><link>https://christitus.com/uninstall-edge/</link><guid isPermaLink="true">https://christitus.com/uninstall-edge/</guid><description>&lt;p&gt;This goes over Removing Microsoft Edge Chromium edition and keeping it removed.&lt;/p&gt;

&lt;h2&gt;The Problem&lt;/h2&gt;
&lt;p&gt;Microsoft Edge has taken over PDF viewer, and other default web tasks. Even when manually removing it will reinstall via windows updates.&lt;/p&gt;
&lt;h2&gt;Removing the Base Install&lt;/h2&gt;
&lt;p&gt;We first need to find the Edge install of the chromium edition in your Program Files.&lt;/p&gt;
&lt;p&gt;Location:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;C:\Program Files (x86)\Microsoft\Edge\Application\
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The setup program is what we need to uninstall edge. Go to the location above and drill down from the number and Install folder&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;C:\Program Files (x86)\Microsoft\Edge\Application\92.0.902.62\Installer
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Once you find your path you can now uninstall edge with the following command &lt;em&gt;(Note: YOURS WILL BE DIFFERENT!)&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;C:\Program Files (x86)\Microsoft\Edge\Application\92.0.902.62\Installer\setup.exe --uninstall --system-level --verbose-logging --force-uninstall
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Keep it from coming back... for now&lt;/h2&gt;
&lt;p&gt;You now need to add a registry entry. The following location &lt;code&gt;Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EdgeUpdate&lt;/code&gt; needs to be added with a DWORD called &lt;code&gt;DoNotUpdateToEdgeWithChromium&lt;/code&gt; with a value of &lt;code&gt;1&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;You can do this with a simply reg file. (&lt;code&gt;stopedge.reg&lt;/code&gt;)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EdgeUpdate]
&quot;DoNotUpdateToEdgeWithChromium&quot;=dword:00000001
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Create this file or download the file @ &lt;a href=&quot;https://christitus.com/files/stopedge.zip&quot;&gt;https://christitus.com/files/stopedge.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Run this to prevent edge reinstallation. &lt;em&gt;Note: Microsoft will kill this workaround in the future and force edge on you&lt;/em&gt;&lt;/p&gt;
</description><pubDate>Fri, 06 Aug 2021 16:55:48 GMT</pubDate><content:encoded>&lt;p&gt;This goes over Removing Microsoft Edge Chromium edition and keeping it removed.&lt;/p&gt;

&lt;h2&gt;The Problem&lt;/h2&gt;
&lt;p&gt;Microsoft Edge has taken over PDF viewer, and other default web tasks. Even when manually removing it will reinstall via windows updates.&lt;/p&gt;
&lt;h2&gt;Removing the Base Install&lt;/h2&gt;
&lt;p&gt;We first need to find the Edge install of the chromium edition in your Program Files.&lt;/p&gt;
&lt;p&gt;Location:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;C:\Program Files (x86)\Microsoft\Edge\Application\
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The setup program is what we need to uninstall edge. Go to the location above and drill down from the number and Install folder&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;C:\Program Files (x86)\Microsoft\Edge\Application\92.0.902.62\Installer
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Once you find your path you can now uninstall edge with the following command &lt;em&gt;(Note: YOURS WILL BE DIFFERENT!)&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;C:\Program Files (x86)\Microsoft\Edge\Application\92.0.902.62\Installer\setup.exe --uninstall --system-level --verbose-logging --force-uninstall
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Keep it from coming back... for now&lt;/h2&gt;
&lt;p&gt;You now need to add a registry entry. The following location &lt;code&gt;Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EdgeUpdate&lt;/code&gt; needs to be added with a DWORD called &lt;code&gt;DoNotUpdateToEdgeWithChromium&lt;/code&gt; with a value of &lt;code&gt;1&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;You can do this with a simply reg file. (&lt;code&gt;stopedge.reg&lt;/code&gt;)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EdgeUpdate]
&quot;DoNotUpdateToEdgeWithChromium&quot;=dword:00000001
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Create this file or download the file @ &lt;a href=&quot;https://christitus.com/files/stopedge.zip&quot;&gt;https://christitus.com/files/stopedge.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Run this to prevent edge reinstallation. &lt;em&gt;Note: Microsoft will kill this workaround in the future and force edge on you&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title>Bspwm on KDE</title><link>https://christitus.com/bspwm-on-KDE/</link><guid isPermaLink="true">https://christitus.com/bspwm-on-KDE/</guid><description>&lt;p&gt;This goes over switching the window manager of KDE to bspwm.&lt;/p&gt;

&lt;h2&gt;Dependency Installs&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install bspwm
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Create three files with the following contents&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mkdir -p ~/.config/bspwm
mkdir -p ~/.config/sxhkd
wget -O ~/.config/bspwm/bspwmrc https://raw.githubusercontent.com/ChrisTitusTech/BSPWM-on-KDE/main/bspwmrc
wget -O ~/.config/sxhkd/sxhkdrc https://raw.githubusercontent.com/ChrisTitusTech/BSPWM-on-KDE/main/sxhkdrc
chmod +x ~/.config/bspwm/bspwmrc
chmod +x ~/.config/sxhkd/sxhkdrc
sudo wget -O /usr/share/xsessions/plasma-bspwm.desktop https://raw.githubusercontent.com/ChrisTitusTech/BSPWM-on-KDE/main/plasma-bspwm.desktop
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Documentation&lt;/h2&gt;
&lt;p&gt;/usr/share/xsessions/plasma-bspwm.desktop&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Desktop Entry]          
Type=XSession              
Exec=env KDEWM=/usr/bin/bspwm /usr/bin/startplasma-x11
TryExec=/usr/bin/startplasma-x11
DesktopNames=KDE         
Name=Plasma bspwm 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;bspwmrc and sxhkdrc are using both the stock example files @ &lt;code&gt;/usr/share/doc/bspwm/examples&lt;/code&gt;&lt;/p&gt;
</description><pubDate>Tue, 20 Jul 2021 19:46:40 GMT</pubDate><content:encoded>&lt;p&gt;This goes over switching the window manager of KDE to bspwm.&lt;/p&gt;

&lt;h2&gt;Dependency Installs&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install bspwm
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Create three files with the following contents&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mkdir -p ~/.config/bspwm
mkdir -p ~/.config/sxhkd
wget -O ~/.config/bspwm/bspwmrc https://raw.githubusercontent.com/ChrisTitusTech/BSPWM-on-KDE/main/bspwmrc
wget -O ~/.config/sxhkd/sxhkdrc https://raw.githubusercontent.com/ChrisTitusTech/BSPWM-on-KDE/main/sxhkdrc
chmod +x ~/.config/bspwm/bspwmrc
chmod +x ~/.config/sxhkd/sxhkdrc
sudo wget -O /usr/share/xsessions/plasma-bspwm.desktop https://raw.githubusercontent.com/ChrisTitusTech/BSPWM-on-KDE/main/plasma-bspwm.desktop
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Documentation&lt;/h2&gt;
&lt;p&gt;/usr/share/xsessions/plasma-bspwm.desktop&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Desktop Entry]          
Type=XSession              
Exec=env KDEWM=/usr/bin/bspwm /usr/bin/startplasma-x11
TryExec=/usr/bin/startplasma-x11
DesktopNames=KDE         
Name=Plasma bspwm 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;bspwmrc and sxhkdrc are using both the stock example files @ &lt;code&gt;/usr/share/doc/bspwm/examples&lt;/code&gt;&lt;/p&gt;
</content:encoded></item><item><title>Update Any PC to Windows 11</title><link>https://christitus.com/update-any-pc-to-windows11/</link><guid isPermaLink="true">https://christitus.com/update-any-pc-to-windows11/</guid><description>&lt;p&gt;This is a guide going over updating any PC to Windows 11 that &quot;doesn&apos;t meet requirements&quot; or doesn&apos;t use Secure Boot or has a TPM 2.0 chip.&lt;/p&gt;

&lt;h2&gt;Methods&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Download appraiserres.dll from Windows 10 install and replace this file in the Windows 11 Sources directory (Windows 11 ISO required)&lt;/li&gt;
&lt;li&gt;Use Registry edits below to upgrade your PC in the insider channel. This will be patched out before official release. Video showing regedit: &lt;a href=&quot;https://youtu.be/fk5B-a7vZ_w&quot;&gt;https://youtu.be/fk5B-a7vZ_w&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Bypass the requirement prompt by using Command Prompt. Here is a video showing fresh install: &lt;a href=&quot;https://youtu.be/wK40EFgzmqM&quot;&gt;https://youtu.be/wK40EFgzmqM&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Upgrade Path&lt;/h2&gt;
&lt;p&gt;The path for upgrading to 11 requires you to have an activated Windows 10 PC and be subscribed to the insider builds.&lt;/p&gt;
&lt;p&gt;Insider builds can be registerd for use @ &lt;a href=&quot;https://insider.windows.com/&quot;&gt;https://insider.windows.com/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;System Modifications&lt;/h2&gt;
&lt;p&gt;Windows 11 does checks for TPM and Secure boot before it allows the upgrade process to start. However, these can be bypassed.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: It is important to understand Microsoft can at ANY TIME enforce these rules or ignore these modifications which means you would NO LONGER recieve updates&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Here is the registry edits that need to be made: (win11bypass.reg)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\Setup\LabConfig]
&quot;BypassTPMCheck&quot;=dword:00000001
&quot;BypassSecureBootCheck&quot;=dword:00000001
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Download Reg File here: &lt;a href=&quot;https://christitus.com/files/win11bypass.zip&quot;&gt;https://christitus.com/files/win11bypass.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;REBOOT AFTER MODIFICATIONS MADE&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2021/06-win11upgrade/regedit.webp&quot; alt=&quot;regedit&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Upgrade&lt;/h2&gt;
&lt;p&gt;Now you can simply finish your insider build sign up and then click update&lt;/p&gt;
&lt;p&gt;Once it finishes updating you should see a screen to update to the latest Windows 11 build (22000.52) or Greater&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2021/06-win11upgrade/winver.webp&quot; alt=&quot;winver&quot; /&gt;&lt;/p&gt;
</description><pubDate>Tue, 29 Jun 2021 16:21:54 GMT</pubDate><content:encoded>&lt;p&gt;This is a guide going over updating any PC to Windows 11 that &quot;doesn&apos;t meet requirements&quot; or doesn&apos;t use Secure Boot or has a TPM 2.0 chip.&lt;/p&gt;

&lt;h2&gt;Methods&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Download appraiserres.dll from Windows 10 install and replace this file in the Windows 11 Sources directory (Windows 11 ISO required)&lt;/li&gt;
&lt;li&gt;Use Registry edits below to upgrade your PC in the insider channel. This will be patched out before official release. Video showing regedit: &lt;a href=&quot;https://youtu.be/fk5B-a7vZ_w&quot;&gt;https://youtu.be/fk5B-a7vZ_w&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Bypass the requirement prompt by using Command Prompt. Here is a video showing fresh install: &lt;a href=&quot;https://youtu.be/wK40EFgzmqM&quot;&gt;https://youtu.be/wK40EFgzmqM&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Upgrade Path&lt;/h2&gt;
&lt;p&gt;The path for upgrading to 11 requires you to have an activated Windows 10 PC and be subscribed to the insider builds.&lt;/p&gt;
&lt;p&gt;Insider builds can be registerd for use @ &lt;a href=&quot;https://insider.windows.com/&quot;&gt;https://insider.windows.com/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;System Modifications&lt;/h2&gt;
&lt;p&gt;Windows 11 does checks for TPM and Secure boot before it allows the upgrade process to start. However, these can be bypassed.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: It is important to understand Microsoft can at ANY TIME enforce these rules or ignore these modifications which means you would NO LONGER recieve updates&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Here is the registry edits that need to be made: (win11bypass.reg)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\Setup\LabConfig]
&quot;BypassTPMCheck&quot;=dword:00000001
&quot;BypassSecureBootCheck&quot;=dword:00000001
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Download Reg File here: &lt;a href=&quot;https://christitus.com/files/win11bypass.zip&quot;&gt;https://christitus.com/files/win11bypass.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;REBOOT AFTER MODIFICATIONS MADE&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2021/06-win11upgrade/regedit.webp&quot; alt=&quot;regedit&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Upgrade&lt;/h2&gt;
&lt;p&gt;Now you can simply finish your insider build sign up and then click update&lt;/p&gt;
&lt;p&gt;Once it finishes updating you should see a screen to update to the latest Windows 11 build (22000.52) or Greater&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2021/06-win11upgrade/winver.webp&quot; alt=&quot;winver&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>Rocky Linux</title><link>https://christitus.com/rocky-linux/</link><guid isPermaLink="true">https://christitus.com/rocky-linux/</guid><description>&lt;p&gt;This guide goes over setting up KDE on Rocky Linux from a base server install with no GUI.&lt;/p&gt;

&lt;h2&gt;Download and Install Server Setup&lt;/h2&gt;
&lt;p&gt;Download the Rocky Linux ISO from: &lt;a href=&quot;https://rockylinux.org/download/&quot;&gt;https://rockylinux.org/download/&lt;/a&gt;&lt;br /&gt;
&lt;em&gt;Note: I downloaded DVD 8GB, which is offline and no downloading&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;During Setup, I recommend a dedicated drive and choosing only SERVER with NO GUI!&lt;/p&gt;
&lt;p&gt;Go ahead and walkthrough the rest of the install&lt;/p&gt;
&lt;h2&gt;Configuration&lt;/h2&gt;
&lt;h3&gt;Enable PowerTools and RPMFusion Repositories&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo dnf upgrade -y
sudo dnf install --nogpgcheck https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf install --nogpgcheck https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpm
sudo dnf config-manager --set-enabled PowerTools
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: If you can&apos;t install PowerTools with config-manager, you can manually enable it through the repo file in &lt;code&gt;/etc/yum.repos.d&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Dependencies&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo dnf update -y
sudo dnf install xorg-x11-server-Xorg xorg-x11-xauth xorg-x11-apps -y
sudo dnf install plasma-desktop kscreen sddm kde-gtk-config dolphin konsole kate -y
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Set Graphical Interface on Startup&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl set-default graphical.target
sudo systemctl enable sddm
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: If using GTK Apps, I highly recommend building and installing &lt;code&gt;Kvantum&lt;/code&gt; from &lt;code&gt;git clone https://github.com/tsujan/Kvantum.git&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;NVIDIA Cards ONLY&lt;/h4&gt;
&lt;p&gt;If you have an nvidia card it can be tricky to install so I recommend doing it before Xorg is started and you have a GUI.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;First install Dev tools below with dkms and kernel-devel&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;sudo dnf groupinstall &quot;Development Tools&quot;
sudo dnf install kernel-devel epel-release
sudo dnf install dkms
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Download NVIDIA Drivers from &lt;a href=&quot;https://www.nvidia.com/en-us/drivers/unix/&quot;&gt;https://www.nvidia.com/en-us/drivers/unix/&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Disable nouveau by editing &lt;code&gt;/etc/default/grub&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;GRUB_CMDLINE_LINUX=&quot;crashkernel=auto rhgb quiet nouveau.modeset=0&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Write out the changes (Note Choose BIOS OR EFI... NOT BOTH!)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;BIOS:
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
EFI:
$ sudo grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;(GUI Only) If you booted into KDE or GUI interface from TTY2 (Ctrl+Alt+F2) login and type &lt;code&gt;sudo systemctl isolate multi-user.target&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Now Install NVIDIA and reboot &lt;code&gt;sudo bash NVIDIA-Linux-x86_64-*&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Setup your Development Tools for Builds&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo dnf groupinstall &quot;Development Tools&quot;
sudo dnf install cmake gcc-c++ libX11-devel libXext-devel qt5-qtx11extras-devel qt5-qtbase-devel qt5-qtsvg-devel qt5-qttools-devel kf5-kwindowsystem-devel make procps-ng curl file git
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Install Homebrew&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/bin/bash -c &quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: Installer messed up and put it in &lt;code&gt;/home/linuxbrew/.linuxbrew&lt;/code&gt; I moved this to my home folder and linked the brew executable to &lt;code&gt;~/bin&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Add Homebrew to the end bash or zsh rc file&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;eval $(~/.linuxbrew/bin/brew shellenv)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Install Tools of your Choice&lt;/h3&gt;
&lt;p&gt;This is a base install so you will need a file explorer, terminal, browser, etc.&lt;/p&gt;
&lt;p&gt;Choose whatever you want!&lt;/p&gt;
&lt;p&gt;Examples:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo dnf install terminator firefox zsh
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;VSCodium on Rocky Linux&lt;/h4&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://github.com/VSCodium/vscodium&quot;&gt;https://github.com/VSCodium/vscodium&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo rpm --import https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/-/raw/master/pub.gpg
printf &quot;[gitlab.com_paulcarroty_vscodium_repo]\nname=gitlab.com_paulcarroty_vscodium_repo\nbaseurl=https://paulcarroty.gitlab.io/vscodium-deb-rpm-repo/rpms/\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/-/raw/master/pub.gpg&quot; |sudo tee -a /etc/yum.repos.d/vscodium.repo
sudo dnf install codium
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;New Packages with AppImage or Flatpak&lt;/h4&gt;
&lt;p&gt;Install flatpak with &lt;code&gt;sudo dnf install flatpak&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;See What package are availiable: &lt;a href=&quot;https://flathub.org/home&quot;&gt;https://flathub.org/home&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Install the flathub repo on Rocky Linux &lt;code&gt;flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;GIMP 2.10 &lt;code&gt;sudo flatpak install https://flathub.org/repo/appstream/org.gimp.GIMP.flatpakref&lt;/code&gt;&lt;br /&gt;
Steam &lt;code&gt;sudo flatpak install flathub com.valvesoftware.Steam&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;The Rocky Difference&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Security by default&lt;/em&gt; - Be aware this uses Enforced SELinux and Firewalld on install. This means applications will more often than not be sandboxed and will block all incoming traffic&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Stability in mind&lt;/em&gt; Yes, the packages are old by default but it means they stable&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Productivity Machine&lt;/em&gt; No constant updates, it just works...&lt;/p&gt;
</description><pubDate>Mon, 03 May 2021 17:12:16 GMT</pubDate><content:encoded>&lt;p&gt;This guide goes over setting up KDE on Rocky Linux from a base server install with no GUI.&lt;/p&gt;

&lt;h2&gt;Download and Install Server Setup&lt;/h2&gt;
&lt;p&gt;Download the Rocky Linux ISO from: &lt;a href=&quot;https://rockylinux.org/download/&quot;&gt;https://rockylinux.org/download/&lt;/a&gt;&lt;br /&gt;
&lt;em&gt;Note: I downloaded DVD 8GB, which is offline and no downloading&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;During Setup, I recommend a dedicated drive and choosing only SERVER with NO GUI!&lt;/p&gt;
&lt;p&gt;Go ahead and walkthrough the rest of the install&lt;/p&gt;
&lt;h2&gt;Configuration&lt;/h2&gt;
&lt;h3&gt;Enable PowerTools and RPMFusion Repositories&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo dnf upgrade -y
sudo dnf install --nogpgcheck https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf install --nogpgcheck https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpm
sudo dnf config-manager --set-enabled PowerTools
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: If you can&apos;t install PowerTools with config-manager, you can manually enable it through the repo file in &lt;code&gt;/etc/yum.repos.d&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Dependencies&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo dnf update -y
sudo dnf install xorg-x11-server-Xorg xorg-x11-xauth xorg-x11-apps -y
sudo dnf install plasma-desktop kscreen sddm kde-gtk-config dolphin konsole kate -y
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Set Graphical Interface on Startup&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl set-default graphical.target
sudo systemctl enable sddm
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: If using GTK Apps, I highly recommend building and installing &lt;code&gt;Kvantum&lt;/code&gt; from &lt;code&gt;git clone https://github.com/tsujan/Kvantum.git&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;NVIDIA Cards ONLY&lt;/h4&gt;
&lt;p&gt;If you have an nvidia card it can be tricky to install so I recommend doing it before Xorg is started and you have a GUI.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;First install Dev tools below with dkms and kernel-devel&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;sudo dnf groupinstall &quot;Development Tools&quot;
sudo dnf install kernel-devel epel-release
sudo dnf install dkms
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Download NVIDIA Drivers from &lt;a href=&quot;https://www.nvidia.com/en-us/drivers/unix/&quot;&gt;https://www.nvidia.com/en-us/drivers/unix/&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Disable nouveau by editing &lt;code&gt;/etc/default/grub&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;GRUB_CMDLINE_LINUX=&quot;crashkernel=auto rhgb quiet nouveau.modeset=0&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Write out the changes (Note Choose BIOS OR EFI... NOT BOTH!)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;BIOS:
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
EFI:
$ sudo grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;(GUI Only) If you booted into KDE or GUI interface from TTY2 (Ctrl+Alt+F2) login and type &lt;code&gt;sudo systemctl isolate multi-user.target&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Now Install NVIDIA and reboot &lt;code&gt;sudo bash NVIDIA-Linux-x86_64-*&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Setup your Development Tools for Builds&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo dnf groupinstall &quot;Development Tools&quot;
sudo dnf install cmake gcc-c++ libX11-devel libXext-devel qt5-qtx11extras-devel qt5-qtbase-devel qt5-qtsvg-devel qt5-qttools-devel kf5-kwindowsystem-devel make procps-ng curl file git
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Install Homebrew&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/bin/bash -c &quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: Installer messed up and put it in &lt;code&gt;/home/linuxbrew/.linuxbrew&lt;/code&gt; I moved this to my home folder and linked the brew executable to &lt;code&gt;~/bin&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Add Homebrew to the end bash or zsh rc file&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;eval $(~/.linuxbrew/bin/brew shellenv)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Install Tools of your Choice&lt;/h3&gt;
&lt;p&gt;This is a base install so you will need a file explorer, terminal, browser, etc.&lt;/p&gt;
&lt;p&gt;Choose whatever you want!&lt;/p&gt;
&lt;p&gt;Examples:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo dnf install terminator firefox zsh
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;VSCodium on Rocky Linux&lt;/h4&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://github.com/VSCodium/vscodium&quot;&gt;https://github.com/VSCodium/vscodium&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo rpm --import https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/-/raw/master/pub.gpg
printf &quot;[gitlab.com_paulcarroty_vscodium_repo]\nname=gitlab.com_paulcarroty_vscodium_repo\nbaseurl=https://paulcarroty.gitlab.io/vscodium-deb-rpm-repo/rpms/\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/-/raw/master/pub.gpg&quot; |sudo tee -a /etc/yum.repos.d/vscodium.repo
sudo dnf install codium
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;New Packages with AppImage or Flatpak&lt;/h4&gt;
&lt;p&gt;Install flatpak with &lt;code&gt;sudo dnf install flatpak&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;See What package are availiable: &lt;a href=&quot;https://flathub.org/home&quot;&gt;https://flathub.org/home&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Install the flathub repo on Rocky Linux &lt;code&gt;flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;GIMP 2.10 &lt;code&gt;sudo flatpak install https://flathub.org/repo/appstream/org.gimp.GIMP.flatpakref&lt;/code&gt;&lt;br /&gt;
Steam &lt;code&gt;sudo flatpak install flathub com.valvesoftware.Steam&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;The Rocky Difference&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Security by default&lt;/em&gt; - Be aware this uses Enforced SELinux and Firewalld on install. This means applications will more often than not be sandboxed and will block all incoming traffic&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Stability in mind&lt;/em&gt; Yes, the packages are old by default but it means they stable&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Productivity Machine&lt;/em&gt; No constant updates, it just works...&lt;/p&gt;
</content:encoded></item><item><title>Creating a Website on Raspberry Pi</title><link>https://christitus.com/pi-website/</link><guid isPermaLink="true">https://christitus.com/pi-website/</guid><description>&lt;p&gt;This is a guide on how to create a website on a Raspberry Pi. This will teach you the basics of using a LAMP stack.&lt;/p&gt;

&lt;h2&gt;Overview&lt;/h2&gt;
&lt;p&gt;This is perfect for setting up your first website and learning not only administering a wordpress site, but learning Linux. You will need a Raspberry Pi, a couple hours, and a computer to download the image on. The Raspberry Pi (RPI) is a perfect device for learning these things.&lt;/p&gt;
&lt;p&gt;Also check out the official projects site from RaspberryPi
Source: &lt;a href=&quot;https://projects.raspberrypi.org/en/projects/lamp-web-server-with-wordpress&quot;&gt;https://projects.raspberrypi.org/en/projects/lamp-web-server-with-wordpress&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Downloading the RPI Imager&lt;/h2&gt;
&lt;p&gt;Download the Imager for your operating system. This supports all three OS&apos;s (Windows, Mac, and Linux).&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.raspberrypi.org/downloads/&quot;&gt;https://www.raspberrypi.org/downloads/&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Run and Install the Imager&lt;/li&gt;
&lt;li&gt;Select Raspberry Pi OS (other) -&amp;gt; Raspberry Pi OS Lite (32-bit)
&lt;ul&gt;
&lt;li&gt;Note: This is the one with NO Desktop Environment&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Insert the SD Card into your Computer&lt;/li&gt;
&lt;li&gt;Click Write&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Install Dependencies&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get install apache2 php mariadb-server php-mysql -y
sudo service apache2 restart
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Install Wordpress&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;cd /var/www/html/
sudo rm *
sudo wget http://wordpress.org/latest.tar.gz
sudo tar xzf latest.tar.gz
sudo mv wordpress/* .
sudo rm -rf wordpress latest.tar.gz
sudo chown -R www-data: .
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Setup WordPress Database&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo mysql_secure_installation
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;You will be asked Enter current password for root (enter for none): — press Enter.&lt;/li&gt;
&lt;li&gt;Type in Y and press Enter to Set root password?.&lt;/li&gt;
&lt;li&gt;Type in a password at the New password: prompt, and press Enter. Important: remember this root password, as you will need it later to set up WordPress.&lt;/li&gt;
&lt;li&gt;Type in Y to Remove anonymous users.&lt;/li&gt;
&lt;li&gt;Type in Y to Disallow root login remotely.&lt;/li&gt;
&lt;li&gt;Type in Y to Remove test database and access to it.&lt;/li&gt;
&lt;li&gt;Type in Y to Reload privilege tables now.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;When complete, you will see the message All done! and Thanks for using MariaDB!.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Login to MySQL with &lt;code&gt;sudo mysql -uroot -p&lt;/code&gt; and enter the password you set above.&lt;/p&gt;
&lt;p&gt;You will see the terminal prompt change and you can enter the following:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;create database wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO &apos;root&apos;@&apos;localhost&apos; IDENTIFIED BY &apos;YOURPASSWORD&apos;;
FLUSH PRIVILEGES;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;IMPORTANT: Exit SQL Prompt with &lt;code&gt;Ctrl + D&lt;/code&gt; and change &lt;code&gt;YOURPASSWORD&lt;/code&gt; above to your password!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Reboot with &lt;code&gt;sudo reboot&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Wordpress Configuration&lt;/h2&gt;
&lt;p&gt;Remote Access can be done with SSH from any system. Find your Raspberry Pi IP with &lt;code&gt;ip a&lt;/code&gt;. This IP is only your Local IP and not accessible from the outside world.&lt;/p&gt;
&lt;p&gt;Initial setup can be done from any computer in the same network as the RPI. Type your pi ip address from above into your browsers address bar.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Example: &lt;a href=&quot;https://192.168.1.123&quot;&gt;https://192.168.1.123&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Remote Login after initial setup append &lt;code&gt;/wp-admin&lt;/code&gt; to the address&lt;/p&gt;
&lt;p&gt;_Example: &lt;a href=&quot;https://192.168.1.123/wp-admin_&quot;&gt;https://192.168.1.123/wp-admin_&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Recommended Server settings&lt;/h2&gt;
&lt;p&gt;Finally we need to make some quality of life improvements so you don&apos;t have weird looking addresses. This is called &quot;Friendly Permalinks&quot;.&lt;/p&gt;
&lt;p&gt;In the &lt;em&gt;WP Admin Portal&lt;/em&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Go to &lt;em&gt;Setting&lt;/em&gt;, then &lt;em&gt;Permalinks&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Select the &lt;em&gt;Post name&lt;/em&gt; option and click &lt;em&gt;Save Changes&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;From &lt;em&gt;SSH or Terminal on the RPI&lt;/em&gt; you need to enter the following:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo a2enmod rewrite
sudo nano /etc/apache2/sites-available/000-default.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;000-default.conf edits (Add this midway in the file)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;Directory &quot;/var/www/html&quot;&amp;gt;
    AllowOverride All
&amp;lt;/Directory&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Save the File by press Ctrl + O and Exit with Ctrl + X&lt;/p&gt;
&lt;p&gt;Now restart Apache Web with &lt;code&gt;sudo service apache2 restart&lt;/code&gt;&lt;/p&gt;
</description><pubDate>Tue, 20 Apr 2021 15:02:56 GMT</pubDate><content:encoded>&lt;p&gt;This is a guide on how to create a website on a Raspberry Pi. This will teach you the basics of using a LAMP stack.&lt;/p&gt;

&lt;h2&gt;Overview&lt;/h2&gt;
&lt;p&gt;This is perfect for setting up your first website and learning not only administering a wordpress site, but learning Linux. You will need a Raspberry Pi, a couple hours, and a computer to download the image on. The Raspberry Pi (RPI) is a perfect device for learning these things.&lt;/p&gt;
&lt;p&gt;Also check out the official projects site from RaspberryPi
Source: &lt;a href=&quot;https://projects.raspberrypi.org/en/projects/lamp-web-server-with-wordpress&quot;&gt;https://projects.raspberrypi.org/en/projects/lamp-web-server-with-wordpress&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Downloading the RPI Imager&lt;/h2&gt;
&lt;p&gt;Download the Imager for your operating system. This supports all three OS&apos;s (Windows, Mac, and Linux).&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.raspberrypi.org/downloads/&quot;&gt;https://www.raspberrypi.org/downloads/&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Run and Install the Imager&lt;/li&gt;
&lt;li&gt;Select Raspberry Pi OS (other) -&amp;gt; Raspberry Pi OS Lite (32-bit)
&lt;ul&gt;
&lt;li&gt;Note: This is the one with NO Desktop Environment&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Insert the SD Card into your Computer&lt;/li&gt;
&lt;li&gt;Click Write&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Install Dependencies&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get install apache2 php mariadb-server php-mysql -y
sudo service apache2 restart
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Install Wordpress&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;cd /var/www/html/
sudo rm *
sudo wget http://wordpress.org/latest.tar.gz
sudo tar xzf latest.tar.gz
sudo mv wordpress/* .
sudo rm -rf wordpress latest.tar.gz
sudo chown -R www-data: .
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Setup WordPress Database&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo mysql_secure_installation
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;You will be asked Enter current password for root (enter for none): — press Enter.&lt;/li&gt;
&lt;li&gt;Type in Y and press Enter to Set root password?.&lt;/li&gt;
&lt;li&gt;Type in a password at the New password: prompt, and press Enter. Important: remember this root password, as you will need it later to set up WordPress.&lt;/li&gt;
&lt;li&gt;Type in Y to Remove anonymous users.&lt;/li&gt;
&lt;li&gt;Type in Y to Disallow root login remotely.&lt;/li&gt;
&lt;li&gt;Type in Y to Remove test database and access to it.&lt;/li&gt;
&lt;li&gt;Type in Y to Reload privilege tables now.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;When complete, you will see the message All done! and Thanks for using MariaDB!.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Login to MySQL with &lt;code&gt;sudo mysql -uroot -p&lt;/code&gt; and enter the password you set above.&lt;/p&gt;
&lt;p&gt;You will see the terminal prompt change and you can enter the following:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;create database wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO &apos;root&apos;@&apos;localhost&apos; IDENTIFIED BY &apos;YOURPASSWORD&apos;;
FLUSH PRIVILEGES;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;IMPORTANT: Exit SQL Prompt with &lt;code&gt;Ctrl + D&lt;/code&gt; and change &lt;code&gt;YOURPASSWORD&lt;/code&gt; above to your password!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Reboot with &lt;code&gt;sudo reboot&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Wordpress Configuration&lt;/h2&gt;
&lt;p&gt;Remote Access can be done with SSH from any system. Find your Raspberry Pi IP with &lt;code&gt;ip a&lt;/code&gt;. This IP is only your Local IP and not accessible from the outside world.&lt;/p&gt;
&lt;p&gt;Initial setup can be done from any computer in the same network as the RPI. Type your pi ip address from above into your browsers address bar.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Example: &lt;a href=&quot;https://192.168.1.123&quot;&gt;https://192.168.1.123&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Remote Login after initial setup append &lt;code&gt;/wp-admin&lt;/code&gt; to the address&lt;/p&gt;
&lt;p&gt;_Example: &lt;a href=&quot;https://192.168.1.123/wp-admin_&quot;&gt;https://192.168.1.123/wp-admin_&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Recommended Server settings&lt;/h2&gt;
&lt;p&gt;Finally we need to make some quality of life improvements so you don&apos;t have weird looking addresses. This is called &quot;Friendly Permalinks&quot;.&lt;/p&gt;
&lt;p&gt;In the &lt;em&gt;WP Admin Portal&lt;/em&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Go to &lt;em&gt;Setting&lt;/em&gt;, then &lt;em&gt;Permalinks&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Select the &lt;em&gt;Post name&lt;/em&gt; option and click &lt;em&gt;Save Changes&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;From &lt;em&gt;SSH or Terminal on the RPI&lt;/em&gt; you need to enter the following:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo a2enmod rewrite
sudo nano /etc/apache2/sites-available/000-default.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;000-default.conf edits (Add this midway in the file)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;Directory &quot;/var/www/html&quot;&amp;gt;
    AllowOverride All
&amp;lt;/Directory&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Save the File by press Ctrl + O and Exit with Ctrl + X&lt;/p&gt;
&lt;p&gt;Now restart Apache Web with &lt;code&gt;sudo service apache2 restart&lt;/code&gt;&lt;/p&gt;
</content:encoded></item><item><title>GRUB Bootloader Themes</title><link>https://christitus.com/bootloader-themes/</link><guid isPermaLink="true">https://christitus.com/bootloader-themes/</guid><description>&lt;p&gt;Give the GRUB boot menu a complete visual overhaul with eight themes ranging from clean and minimal to retro games and hacker-inspired interfaces.&lt;/p&gt;

&lt;h2&gt;Quick install&lt;/h2&gt;
&lt;p&gt;This collection is for Linux systems that already use GRUB 2. You need Git, &lt;code&gt;sudo&lt;/code&gt; access, and a working internet connection.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/christitustech/bootloader-themes
cd bootloader-themes
sudo ./install.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Choose a theme from the interactive menu, let the installer rebuild the GRUB configuration, and reboot to see it. You can rerun &lt;code&gt;sudo ./install.sh&lt;/code&gt; whenever you want to switch themes.&lt;/p&gt;
&lt;p&gt;The project and current installer are available at &lt;a href=&quot;https://github.com/christitustech/bootloader-themes&quot;&gt;ChrisTitusTech/bootloader-themes&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The installer runs as root and changes bootloader configuration. Confirm that your system uses GRUB, review &lt;code&gt;install.sh&lt;/code&gt;, and keep bootable recovery media available before changing any boot configuration.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;What the installer changes&lt;/h2&gt;
&lt;p&gt;The script does more than copy a background image. It:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Creates an initial backup at &lt;code&gt;/etc/default/grub.bak&lt;/code&gt; if one does not already exist.&lt;/li&gt;
&lt;li&gt;Copies the selected theme into &lt;code&gt;/boot/grub/themes/&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Sets &lt;code&gt;GRUB_TIMEOUT_STYLE&lt;/code&gt; to &lt;code&gt;menu&lt;/code&gt; and the timeout to 60 seconds.&lt;/li&gt;
&lt;li&gt;Points &lt;code&gt;GRUB_THEME&lt;/code&gt; at the selected theme and sets &lt;code&gt;GRUB_GFXMODE&lt;/code&gt; to &lt;code&gt;auto&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Regenerates the GRUB configuration with the command available on your distribution.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The collection contains snapshots of community themes. Check each linked upstream project when you want the newest version or theme-specific customization options.&lt;/p&gt;
&lt;h2&gt;Included themes&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Theme&lt;/th&gt;
&lt;th&gt;Style&lt;/th&gt;
&lt;th&gt;Good choice when you want&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CyberRe&lt;/td&gt;
&lt;td&gt;Red and cyan futuristic HUD&lt;/td&gt;
&lt;td&gt;A bold, high-contrast boot screen&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cyberpunk&lt;/td&gt;
&lt;td&gt;Neon game-inspired interface&lt;/td&gt;
&lt;td&gt;Colorful menus with operating-system icons&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fallout&lt;/td&gt;
&lt;td&gt;Green retro terminal&lt;/td&gt;
&lt;td&gt;A Pip-Boy-style boot experience&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vimix&lt;/td&gt;
&lt;td&gt;Clean dark minimalism&lt;/td&gt;
&lt;td&gt;A polished theme that stays out of the way&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shodan&lt;/td&gt;
&lt;td&gt;Dark data-stream interface&lt;/td&gt;
&lt;td&gt;A minimal hacker and terminal aesthetic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DedSec&lt;/td&gt;
&lt;td&gt;Watch Dogs-inspired hacker UI&lt;/td&gt;
&lt;td&gt;A detailed 1080p menu and broad icon support&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Minegrub&lt;/td&gt;
&lt;td&gt;Minecraft main menu&lt;/td&gt;
&lt;td&gt;A playful, game-inspired boot screen&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BSOL&lt;/td&gt;
&lt;td&gt;Blue Screen of Life&lt;/td&gt;
&lt;td&gt;A Windows blue-screen parody with modern fonts&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;CyberRe&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2021/02-bootloader/cyberre.webp&quot; alt=&quot;CyberRe GRUB theme with a red and cyan futuristic interface&quot; /&gt;&lt;/p&gt;
&lt;p&gt;CyberRe frames the operating-system list inside a futuristic control panel. Its red highlights, cyan system details, and large selection area make it one of the most visually dramatic options in the collection.&lt;/p&gt;
&lt;p&gt;Upstream theme: &lt;a href=&quot;https://www.gnome-look.org/p/1420727/&quot;&gt;CyberRe on GNOME-Look&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Cyberpunk&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2021/02-bootloader/cyberpunk.webp&quot; alt=&quot;Cyberpunk GRUB theme with a neon operating-system menu&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Cyberpunk uses a neon yellow selection bar, a blue menu frame, and game-inspired background art. The included icon set covers many Linux distributions as well as Windows, macOS, recovery tools, and other boot entries.&lt;/p&gt;
&lt;p&gt;Upstream theme: &lt;a href=&quot;https://www.gnome-look.org/p/1429443/&quot;&gt;Cyberpunk on GNOME-Look&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Fallout&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2021/02-bootloader/fallout.webp&quot; alt=&quot;Fallout GRUB theme styled like a green monochrome terminal&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Fallout recreates the green monochrome look of a Vault-Tec terminal, complete with scan lines, a Vault Boy graphic, and distribution-specific icons. It is easy to read while still looking completely different from stock GRUB.&lt;/p&gt;
&lt;p&gt;Upstream theme: &lt;a href=&quot;https://www.gnome-look.org/p/1230882/&quot;&gt;Fallout on GNOME-Look&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Vimix&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2021/02-bootloader/vimix.webp&quot; alt=&quot;Vimix GRUB theme with a clean dark laptop interface&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Vimix is the understated option. It combines a dark centered menu, subtle geometric artwork, and recognizable operating-system icons without making the boot screen feel busy.&lt;/p&gt;
&lt;p&gt;Upstream theme: &lt;a href=&quot;https://www.gnome-look.org/p/1009236/&quot;&gt;Vimix on GNOME-Look&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Shodan&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2021/02-bootloader/shodan.webp&quot; alt=&quot;Shodan GRUB theme with a dark data-stream background&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Shodan places a compact green terminal menu over a dark data-stream background. It works well for anyone who wants a Matrix-like or cybersecurity aesthetic with a simple text-focused menu.&lt;/p&gt;
&lt;p&gt;Upstream theme: &lt;a href=&quot;https://www.gnome-look.org/p/1251112/&quot;&gt;Shodan on GNOME-Look&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;DedSec&lt;/h3&gt;
&lt;p&gt;DedSec is inspired by the fictional hacker collective from the Watch Dogs games. The bundled 1080p layout includes a dark menu, custom fonts, a progress bar, and icons for a wide range of Linux distributions and boot tools.&lt;/p&gt;
&lt;p&gt;Upstream theme: &lt;a href=&quot;https://github.com/VandalByte/dedsec-grub2-theme&quot;&gt;VandalByte/dedsec-grub2-theme&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Minegrub&lt;/h3&gt;
&lt;p&gt;Minegrub recreates the Minecraft main menu with block textures, Minecraft-style fonts, splash text, and a &quot;Joining world&quot; boot countdown. The bundled layout is tuned for four boot entries; if its bottom bar overlaps your menu, adjust the documented position in the installed &lt;code&gt;theme.txt&lt;/code&gt; file.&lt;/p&gt;
&lt;p&gt;Upstream theme: &lt;a href=&quot;https://github.com/Lxtharia/minegrub-theme&quot;&gt;Lxtharia/minegrub-theme&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;BSOL&lt;/h3&gt;
&lt;p&gt;BSOL stands for Blue Screen of Life. It turns the familiar Windows blue-screen visual language into a clean GRUB menu with Victor Mono fonts, a large countdown, and extensive operating-system icon coverage.&lt;/p&gt;
&lt;p&gt;Upstream theme: &lt;a href=&quot;https://github.com/harishnkr/bsol&quot;&gt;harishnkr/bsol&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Restore the previous GRUB configuration&lt;/h2&gt;
&lt;p&gt;If you need to undo the configuration changes, first confirm that the installer-created backup exists, then restore it:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo cp /etc/default/grub.bak /etc/default/grub
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Regenerate the boot configuration with the command for your distribution:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Debian and Ubuntu
sudo update-grub

# Arch and distributions using /boot/grub
sudo grub-mkconfig -o /boot/grub/grub.cfg

# Fedora, openSUSE, and distributions using /boot/grub2
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Reboot after the command completes successfully. If your distribution stores &lt;code&gt;grub.cfg&lt;/code&gt; somewhere else, use its documented path instead of guessing.&lt;/p&gt;
&lt;h2&gt;Video walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/BAyzHP1Cqb0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 01 Mar 2021 20:53:09 GMT</pubDate><content:encoded>&lt;p&gt;Give the GRUB boot menu a complete visual overhaul with eight themes ranging from clean and minimal to retro games and hacker-inspired interfaces.&lt;/p&gt;

&lt;h2&gt;Quick install&lt;/h2&gt;
&lt;p&gt;This collection is for Linux systems that already use GRUB 2. You need Git, &lt;code&gt;sudo&lt;/code&gt; access, and a working internet connection.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/christitustech/bootloader-themes
cd bootloader-themes
sudo ./install.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Choose a theme from the interactive menu, let the installer rebuild the GRUB configuration, and reboot to see it. You can rerun &lt;code&gt;sudo ./install.sh&lt;/code&gt; whenever you want to switch themes.&lt;/p&gt;
&lt;p&gt;The project and current installer are available at &lt;a href=&quot;https://github.com/christitustech/bootloader-themes&quot;&gt;ChrisTitusTech/bootloader-themes&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The installer runs as root and changes bootloader configuration. Confirm that your system uses GRUB, review &lt;code&gt;install.sh&lt;/code&gt;, and keep bootable recovery media available before changing any boot configuration.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;What the installer changes&lt;/h2&gt;
&lt;p&gt;The script does more than copy a background image. It:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Creates an initial backup at &lt;code&gt;/etc/default/grub.bak&lt;/code&gt; if one does not already exist.&lt;/li&gt;
&lt;li&gt;Copies the selected theme into &lt;code&gt;/boot/grub/themes/&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Sets &lt;code&gt;GRUB_TIMEOUT_STYLE&lt;/code&gt; to &lt;code&gt;menu&lt;/code&gt; and the timeout to 60 seconds.&lt;/li&gt;
&lt;li&gt;Points &lt;code&gt;GRUB_THEME&lt;/code&gt; at the selected theme and sets &lt;code&gt;GRUB_GFXMODE&lt;/code&gt; to &lt;code&gt;auto&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Regenerates the GRUB configuration with the command available on your distribution.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The collection contains snapshots of community themes. Check each linked upstream project when you want the newest version or theme-specific customization options.&lt;/p&gt;
&lt;h2&gt;Included themes&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Theme&lt;/th&gt;
&lt;th&gt;Style&lt;/th&gt;
&lt;th&gt;Good choice when you want&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CyberRe&lt;/td&gt;
&lt;td&gt;Red and cyan futuristic HUD&lt;/td&gt;
&lt;td&gt;A bold, high-contrast boot screen&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cyberpunk&lt;/td&gt;
&lt;td&gt;Neon game-inspired interface&lt;/td&gt;
&lt;td&gt;Colorful menus with operating-system icons&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fallout&lt;/td&gt;
&lt;td&gt;Green retro terminal&lt;/td&gt;
&lt;td&gt;A Pip-Boy-style boot experience&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vimix&lt;/td&gt;
&lt;td&gt;Clean dark minimalism&lt;/td&gt;
&lt;td&gt;A polished theme that stays out of the way&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shodan&lt;/td&gt;
&lt;td&gt;Dark data-stream interface&lt;/td&gt;
&lt;td&gt;A minimal hacker and terminal aesthetic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DedSec&lt;/td&gt;
&lt;td&gt;Watch Dogs-inspired hacker UI&lt;/td&gt;
&lt;td&gt;A detailed 1080p menu and broad icon support&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Minegrub&lt;/td&gt;
&lt;td&gt;Minecraft main menu&lt;/td&gt;
&lt;td&gt;A playful, game-inspired boot screen&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BSOL&lt;/td&gt;
&lt;td&gt;Blue Screen of Life&lt;/td&gt;
&lt;td&gt;A Windows blue-screen parody with modern fonts&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;CyberRe&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2021/02-bootloader/cyberre.webp&quot; alt=&quot;CyberRe GRUB theme with a red and cyan futuristic interface&quot; /&gt;&lt;/p&gt;
&lt;p&gt;CyberRe frames the operating-system list inside a futuristic control panel. Its red highlights, cyan system details, and large selection area make it one of the most visually dramatic options in the collection.&lt;/p&gt;
&lt;p&gt;Upstream theme: &lt;a href=&quot;https://www.gnome-look.org/p/1420727/&quot;&gt;CyberRe on GNOME-Look&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Cyberpunk&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2021/02-bootloader/cyberpunk.webp&quot; alt=&quot;Cyberpunk GRUB theme with a neon operating-system menu&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Cyberpunk uses a neon yellow selection bar, a blue menu frame, and game-inspired background art. The included icon set covers many Linux distributions as well as Windows, macOS, recovery tools, and other boot entries.&lt;/p&gt;
&lt;p&gt;Upstream theme: &lt;a href=&quot;https://www.gnome-look.org/p/1429443/&quot;&gt;Cyberpunk on GNOME-Look&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Fallout&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2021/02-bootloader/fallout.webp&quot; alt=&quot;Fallout GRUB theme styled like a green monochrome terminal&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Fallout recreates the green monochrome look of a Vault-Tec terminal, complete with scan lines, a Vault Boy graphic, and distribution-specific icons. It is easy to read while still looking completely different from stock GRUB.&lt;/p&gt;
&lt;p&gt;Upstream theme: &lt;a href=&quot;https://www.gnome-look.org/p/1230882/&quot;&gt;Fallout on GNOME-Look&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Vimix&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2021/02-bootloader/vimix.webp&quot; alt=&quot;Vimix GRUB theme with a clean dark laptop interface&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Vimix is the understated option. It combines a dark centered menu, subtle geometric artwork, and recognizable operating-system icons without making the boot screen feel busy.&lt;/p&gt;
&lt;p&gt;Upstream theme: &lt;a href=&quot;https://www.gnome-look.org/p/1009236/&quot;&gt;Vimix on GNOME-Look&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Shodan&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2021/02-bootloader/shodan.webp&quot; alt=&quot;Shodan GRUB theme with a dark data-stream background&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Shodan places a compact green terminal menu over a dark data-stream background. It works well for anyone who wants a Matrix-like or cybersecurity aesthetic with a simple text-focused menu.&lt;/p&gt;
&lt;p&gt;Upstream theme: &lt;a href=&quot;https://www.gnome-look.org/p/1251112/&quot;&gt;Shodan on GNOME-Look&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;DedSec&lt;/h3&gt;
&lt;p&gt;DedSec is inspired by the fictional hacker collective from the Watch Dogs games. The bundled 1080p layout includes a dark menu, custom fonts, a progress bar, and icons for a wide range of Linux distributions and boot tools.&lt;/p&gt;
&lt;p&gt;Upstream theme: &lt;a href=&quot;https://github.com/VandalByte/dedsec-grub2-theme&quot;&gt;VandalByte/dedsec-grub2-theme&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Minegrub&lt;/h3&gt;
&lt;p&gt;Minegrub recreates the Minecraft main menu with block textures, Minecraft-style fonts, splash text, and a &quot;Joining world&quot; boot countdown. The bundled layout is tuned for four boot entries; if its bottom bar overlaps your menu, adjust the documented position in the installed &lt;code&gt;theme.txt&lt;/code&gt; file.&lt;/p&gt;
&lt;p&gt;Upstream theme: &lt;a href=&quot;https://github.com/Lxtharia/minegrub-theme&quot;&gt;Lxtharia/minegrub-theme&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;BSOL&lt;/h3&gt;
&lt;p&gt;BSOL stands for Blue Screen of Life. It turns the familiar Windows blue-screen visual language into a clean GRUB menu with Victor Mono fonts, a large countdown, and extensive operating-system icon coverage.&lt;/p&gt;
&lt;p&gt;Upstream theme: &lt;a href=&quot;https://github.com/harishnkr/bsol&quot;&gt;harishnkr/bsol&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Restore the previous GRUB configuration&lt;/h2&gt;
&lt;p&gt;If you need to undo the configuration changes, first confirm that the installer-created backup exists, then restore it:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo cp /etc/default/grub.bak /etc/default/grub
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Regenerate the boot configuration with the command for your distribution:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Debian and Ubuntu
sudo update-grub

# Arch and distributions using /boot/grub
sudo grub-mkconfig -o /boot/grub/grub.cfg

# Fedora, openSUSE, and distributions using /boot/grub2
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Reboot after the command completes successfully. If your distribution stores &lt;code&gt;grub.cfg&lt;/code&gt; somewhere else, use its documented path instead of guessing.&lt;/p&gt;
&lt;h2&gt;Video walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/BAyzHP1Cqb0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Ultimate Windows 10 Install ISO</title><link>https://christitus.com/Ultimate-Windows-10-Install-ISO/</link><guid isPermaLink="true">https://christitus.com/Ultimate-Windows-10-Install-ISO/</guid><description>&lt;p&gt;This goes over creating the best installation media possible for a fresh Windows 10&lt;/p&gt;

&lt;h2&gt;Downloading Windows 10 ISO&lt;/h2&gt;
&lt;p&gt;I only use official Microsoft sources for Windows installation. At the time of the writing the following link is where I&apos;d download either the ISO directly or the media creation tool that you select ISO on.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/software-download/windows10&quot;&gt;https://www.microsoft.com/en-us/software-download/windows10&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Mounting and Modifying the ISO&lt;/h2&gt;
&lt;h3&gt;Using MSMG Toolkit&lt;/h3&gt;
&lt;p&gt;Download MSMG Toolkit from their website.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://msmgtoolkit.in/download.html&quot;&gt;https://msmgtoolkit.in/download.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2021/01-win10iso/msmg.webp&quot; alt=&quot;msmg&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Expand and Mount Windows&lt;/h3&gt;
&lt;p&gt;From the Source menu select expand and then mount in MSMG Toolkit. Below is a full video where I use MSMG toolkit to remove many components in Win10.&lt;/p&gt;
&lt;p&gt;How to Make a Custom Windows 10 ISO with &lt;em&gt;MSMG Toolkit&lt;/em&gt; Video&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/R6XPff38iSc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h3&gt;Install Drivers&lt;/h3&gt;
&lt;p&gt;Download and extract your drivers with the following Powershell command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;DISM.exe /Online /Export-Driver /Destination:%HOMEDRIVE%%HOMEPATH%\Downloads\Drivers
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can install ANY inf files to the below directories. &lt;em&gt;EXE and Setup files DO NOT WORK!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;If you want to install EVERY DRIVER IN EXISTENCE... download the offline files using &lt;a href=&quot;https://sdi-tool.org/&quot;&gt;https://sdi-tool.org/&lt;/a&gt; and go into the drivers directory and extract all of the 7z files. This will be time intensive and require about 60 GB or more for the install media&lt;/p&gt;
&lt;p&gt;Put the inf and driver x64 files here: &lt;code&gt;ToolKit_Directory\Drivers\Install\w10\x64&lt;/code&gt;&lt;br /&gt;
Put the inf and driver x86 files here: &lt;code&gt;ToolKit_Directory\Drivers\Install\w10\x86&lt;/code&gt; &lt;em&gt;Note: Most people don&apos;t do 32-bit installs and can skip this&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Other notable tools: 3DP Chip Network Drivers &lt;a href=&quot;https://www.3dpchip.com/3dpchip/3dp/net_down_en.php&quot;&gt;https://www.3dpchip.com/3dpchip/3dp/net_down_en.php&lt;/a&gt; - This installs pretty much any network driver on the fly.&lt;/p&gt;
&lt;h3&gt;Install Updates&lt;/h3&gt;
&lt;p&gt;Download the Windows updates from the Official Microsoft Catalog. We need two specific updates that cover most of the big updates missing from our ISO download.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Servicing Stack Update &lt;a href=&quot;https://www.catalog.update.microsoft.com/Search.aspx?q=Servicing%20Stack%20Update%20Windows%2010&quot;&gt;https://www.catalog.update.microsoft.com/Search.aspx?q=Servicing Stack Update Windows 10&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Cumulative Update &lt;a href=&quot;https://www.catalog.update.microsoft.com/Search.aspx?q=Cumulative%20Update%20Windows%2010&quot;&gt;https://www.catalog.update.microsoft.com/Search.aspx?q=Cumulative Update Windows 10&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Note: Be sure and download your version 20H2, 2009, 1909, etc. and x64 architecture for most computers&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Put these in &lt;code&gt;ToolKit_Directory\Updates\w10\x64&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Create the ISO&lt;/h2&gt;
&lt;h3&gt;Make Autounattend.xml&lt;/h3&gt;
&lt;p&gt;Now let&apos;s make it so we will automatically install Windows 10 without answering a bunch of questions. I use a cheatsheet where it just makes it for me from: &lt;a href=&quot;https://www.windowsafg.com/win10x86_x64.html&quot;&gt;https://www.windowsafg.com/win10x86_x64.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Fill out the form and then click download at the bottom of the page.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2021/01-win10iso/autounattend.webp&quot; alt=&quot;autounattend&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Apply Changes and Exit MSMG Toolkit&lt;/h3&gt;
&lt;p&gt;Select the Apply Changes option and exit MSMG Toolkit. We aren&apos;t done as we need to implement the autounattend.xml file into the ISO and add any extra tools we want. This can be the Network Driver EXE or any other executable you want. Another good example would be the nVidia Geforce Experience.&lt;/p&gt;
&lt;h3&gt;Mount ISO and Copy Files&lt;/h3&gt;
&lt;p&gt;Mount the completed ISO file. (&lt;em&gt;Right-Click the Windows10.ISO file and select mount&lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2021/01-win10iso/mount.webp&quot; alt=&quot;mount&quot; /&gt;&lt;/p&gt;
</description><pubDate>Wed, 20 Jan 2021 16:23:43 GMT</pubDate><content:encoded>&lt;p&gt;This goes over creating the best installation media possible for a fresh Windows 10&lt;/p&gt;

&lt;h2&gt;Downloading Windows 10 ISO&lt;/h2&gt;
&lt;p&gt;I only use official Microsoft sources for Windows installation. At the time of the writing the following link is where I&apos;d download either the ISO directly or the media creation tool that you select ISO on.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/software-download/windows10&quot;&gt;https://www.microsoft.com/en-us/software-download/windows10&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Mounting and Modifying the ISO&lt;/h2&gt;
&lt;h3&gt;Using MSMG Toolkit&lt;/h3&gt;
&lt;p&gt;Download MSMG Toolkit from their website.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://msmgtoolkit.in/download.html&quot;&gt;https://msmgtoolkit.in/download.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2021/01-win10iso/msmg.webp&quot; alt=&quot;msmg&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Expand and Mount Windows&lt;/h3&gt;
&lt;p&gt;From the Source menu select expand and then mount in MSMG Toolkit. Below is a full video where I use MSMG toolkit to remove many components in Win10.&lt;/p&gt;
&lt;p&gt;How to Make a Custom Windows 10 ISO with &lt;em&gt;MSMG Toolkit&lt;/em&gt; Video&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/R6XPff38iSc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h3&gt;Install Drivers&lt;/h3&gt;
&lt;p&gt;Download and extract your drivers with the following Powershell command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;DISM.exe /Online /Export-Driver /Destination:%HOMEDRIVE%%HOMEPATH%\Downloads\Drivers
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can install ANY inf files to the below directories. &lt;em&gt;EXE and Setup files DO NOT WORK!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;If you want to install EVERY DRIVER IN EXISTENCE... download the offline files using &lt;a href=&quot;https://sdi-tool.org/&quot;&gt;https://sdi-tool.org/&lt;/a&gt; and go into the drivers directory and extract all of the 7z files. This will be time intensive and require about 60 GB or more for the install media&lt;/p&gt;
&lt;p&gt;Put the inf and driver x64 files here: &lt;code&gt;ToolKit_Directory\Drivers\Install\w10\x64&lt;/code&gt;&lt;br /&gt;
Put the inf and driver x86 files here: &lt;code&gt;ToolKit_Directory\Drivers\Install\w10\x86&lt;/code&gt; &lt;em&gt;Note: Most people don&apos;t do 32-bit installs and can skip this&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Other notable tools: 3DP Chip Network Drivers &lt;a href=&quot;https://www.3dpchip.com/3dpchip/3dp/net_down_en.php&quot;&gt;https://www.3dpchip.com/3dpchip/3dp/net_down_en.php&lt;/a&gt; - This installs pretty much any network driver on the fly.&lt;/p&gt;
&lt;h3&gt;Install Updates&lt;/h3&gt;
&lt;p&gt;Download the Windows updates from the Official Microsoft Catalog. We need two specific updates that cover most of the big updates missing from our ISO download.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Servicing Stack Update &lt;a href=&quot;https://www.catalog.update.microsoft.com/Search.aspx?q=Servicing%20Stack%20Update%20Windows%2010&quot;&gt;https://www.catalog.update.microsoft.com/Search.aspx?q=Servicing Stack Update Windows 10&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Cumulative Update &lt;a href=&quot;https://www.catalog.update.microsoft.com/Search.aspx?q=Cumulative%20Update%20Windows%2010&quot;&gt;https://www.catalog.update.microsoft.com/Search.aspx?q=Cumulative Update Windows 10&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Note: Be sure and download your version 20H2, 2009, 1909, etc. and x64 architecture for most computers&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Put these in &lt;code&gt;ToolKit_Directory\Updates\w10\x64&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Create the ISO&lt;/h2&gt;
&lt;h3&gt;Make Autounattend.xml&lt;/h3&gt;
&lt;p&gt;Now let&apos;s make it so we will automatically install Windows 10 without answering a bunch of questions. I use a cheatsheet where it just makes it for me from: &lt;a href=&quot;https://www.windowsafg.com/win10x86_x64.html&quot;&gt;https://www.windowsafg.com/win10x86_x64.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Fill out the form and then click download at the bottom of the page.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2021/01-win10iso/autounattend.webp&quot; alt=&quot;autounattend&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Apply Changes and Exit MSMG Toolkit&lt;/h3&gt;
&lt;p&gt;Select the Apply Changes option and exit MSMG Toolkit. We aren&apos;t done as we need to implement the autounattend.xml file into the ISO and add any extra tools we want. This can be the Network Driver EXE or any other executable you want. Another good example would be the nVidia Geforce Experience.&lt;/p&gt;
&lt;h3&gt;Mount ISO and Copy Files&lt;/h3&gt;
&lt;p&gt;Mount the completed ISO file. (&lt;em&gt;Right-Click the Windows10.ISO file and select mount&lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2021/01-win10iso/mount.webp&quot; alt=&quot;mount&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>Windows 10 Optimization Guide</title><link>https://christitus.com/Windows-10-Optimization-Guide/</link><guid isPermaLink="true">https://christitus.com/Windows-10-Optimization-Guide/</guid><description>&lt;p&gt;This guide goes over using a Custom ISO, Removing Windows 10 Components, and Optimizing Windows 10 Settings.&lt;/p&gt;

&lt;h2&gt;Custom ISO&lt;/h2&gt;
&lt;p&gt;The whole purpose of a custom ISO is to make the initial install as slim as possible. You don&apos;t have to uninstall bloat if it never gets installed to begin with!&lt;/p&gt;
&lt;p&gt;Easiest Method &lt;em&gt;NTLite&lt;/em&gt; ($30) - &lt;a href=&quot;https://www.ntlite.com/&quot;&gt;https://www.ntlite.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Free Method &lt;em&gt;MSMG Toolkit&lt;/em&gt; - &lt;a href=&quot;https://msmgtoolkit.in/&quot;&gt;https://msmgtoolkit.in/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;How to Make a Custom Windows 10 ISO with &lt;em&gt;MSMG Toolkit&lt;/em&gt; Video&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/R6XPff38iSc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h3&gt;Microsoft Method for Custom ISO (Advanced Users Only)&lt;/h3&gt;
&lt;p&gt;Downloading in Installing ADK (Microsoft Image Tools) &lt;a href=&quot;https://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install&quot;&gt;https://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install&lt;/a&gt;
Using sysprep from Microsoft &lt;a href=&quot;https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/sysprep--generalize--a-windows-installation&quot;&gt;https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/sysprep--generalize--a-windows-installation&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I highly recommend a video by Craft Computing going over Windows Deployment Services if you are interested in this method - &lt;a href=&quot;https://youtu.be/PdKMiFKGQuc&quot;&gt;https://youtu.be/PdKMiFKGQuc&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Installing Windows 10 and Removing Components&lt;/h2&gt;
&lt;p&gt;The Full AME Experience. Most people will NOT want to do this as it will remove functionality from Windows 10, that you CAN NOT put back in. Some of the components can be taken out in the Custom ISO phase, but this takes it to another level.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: I do NOT recommend this for MOST machines&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Components Removed&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows Update&lt;/li&gt;
&lt;li&gt;Windows Store&lt;/li&gt;
&lt;li&gt;Media Player Functions&lt;/li&gt;
&lt;li&gt;Telemetry&lt;/li&gt;
&lt;li&gt;Windows Activation (YOU MUST Activate Windows Before this Tweak!) &lt;em&gt;If you fail to do this, you will have a watermark you can&apos;t get rid of&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;DirectX 12&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The AME project now lives at &lt;a href=&quot;https://amelabs.net/&quot;&gt;https://amelabs.net/&lt;/a&gt;. The old GitHub mirror has been retired.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2021/01-win10/ame.webp&quot; alt=&quot;ame&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Installation Overview&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Install Windows 10 (Stock or Custom ISO)&lt;/li&gt;
&lt;li&gt;Activate Windows 10 and Disconnect from Internet afterwards&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;amelioration_2004.bat&lt;/code&gt; as Admin and Pre-Amelioration&lt;/li&gt;
&lt;li&gt;Reboot to Linux (I recommend Linux Mint)&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;sudo ./ameliorate_2004.sh&lt;/code&gt; in Terminal on Live Linux USB&lt;/li&gt;
&lt;li&gt;Reboot back to Windows&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;amelioration_2004.bat&lt;/code&gt; as Admin and Post-Amelioration&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Driver Installation&lt;/h3&gt;
&lt;p&gt;Recommend using the Offline Snappy Driver Installer &lt;a href=&quot;https://sdi-tool.org/&quot;&gt;https://sdi-tool.org/&lt;/a&gt;. This is about 50 GB, but has every driver you need.&lt;/p&gt;
&lt;h3&gt;AME Step-by-Step Documentation&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://docs.ameliorated.io/&quot;&gt;https://docs.ameliorated.io/&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Running Updates&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Download Latest Servicing Stack Update (&lt;em&gt;Check Month - Windows verison- Architecture x64&lt;/em&gt;) &lt;a href=&quot;https://www.catalog.update.microsoft.com/Search.aspx?q=Servicing%20Stack%20Update%20Windows%2010&quot;&gt;https://www.catalog.update.microsoft.com/Search.aspx?q=Servicing Stack Update Windows 10&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Download Cumulative Update (&lt;em&gt;Check Month/Version/Arch AND Run After rebooting above&lt;/em&gt;) &lt;a href=&quot;https://www.catalog.update.microsoft.com/Search.aspx?q=Cumulative%20Update%20Windows%2010&quot;&gt;https://www.catalog.update.microsoft.com/Search.aspx?q=Cumulative Update Windows 10&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Extract Updates&lt;br /&gt;
&lt;code&gt;expand -F:* .\Windows10SSU.msu C:\Update1&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;dism /online /add-package /packagepath=C:\1\Windows10.0-SSU.cab&lt;/code&gt;&lt;br /&gt;
Reboot&lt;br /&gt;
&lt;code&gt;expand -F:* .\Windows10Cumulative.msu C:\Update2&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;dism /online /add-package /packagepath=C:\2\Windows10.0-Cumulative.cab&lt;/code&gt;&lt;br /&gt;
Reboot and Run&lt;br /&gt;
&lt;code&gt;dism /online /Cleanup-Image /StartComponentCleanup&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: File Names change and will be different from above!&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Optimizing Windows 10 Settings&lt;/h2&gt;
&lt;p&gt;To finish things off we do some custom tweaks with the Official CTT Windows 10 Toolbox. This is something I have been customizing for years and refining every single month to work on any Windows 10 Installation.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;iex ((New-Object System.Net.WebClient).DownloadString(&apos;https://git.io/JJ8R4&apos;))
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;What this script can do&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Installs Chocolatey, Notepad++, Irfanview, VLC, Java, and asks if you want Adobe Reader or Brave.&lt;/li&gt;
&lt;li&gt;Removes all Windows Store Apps EXCEPT office, xbox, and WSL.&lt;/li&gt;
&lt;li&gt;Removed Telemetry&lt;/li&gt;
&lt;li&gt;Disables Cortana&lt;/li&gt;
&lt;li&gt;Deletes various schedules tasks that rebloat the system&lt;/li&gt;
&lt;li&gt;Removes Other Bloatware (Candy Crush, etc.)&lt;/li&gt;
&lt;li&gt;Fixes problems that other scripts causes (lock screen and personalization options restricted)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Based on User feedback, this no longer uninstalls OneDrive or Office.&lt;/p&gt;
&lt;h3&gt;Toolbox Walkthrough Video&lt;/h3&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/V27McA7ch6w&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h3&gt;Windows Services to Disable&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Windows Defender &amp;amp; Firewall&lt;/li&gt;
&lt;li&gt;Windows Mobile Hotspot Service&lt;/li&gt;
&lt;li&gt;Bluetooth Support Service&lt;/li&gt;
&lt;li&gt;Print Spooler (Required for Printing)&lt;/li&gt;
&lt;li&gt;Fax&lt;/li&gt;
&lt;li&gt;Remote Desktop Configuration and Remote Desktop Services&lt;/li&gt;
&lt;li&gt;Windows Insider Service&lt;/li&gt;
&lt;li&gt;Secondary Logon&lt;/li&gt;
&lt;li&gt;Downloaded Maps Manager&lt;/li&gt;
&lt;li&gt;Touch Keyboard and Handwriting Panel Service&lt;/li&gt;
&lt;li&gt;Offline Files&lt;/li&gt;
&lt;li&gt;Windows Connect Now&lt;/li&gt;
&lt;li&gt;Remote Registry&lt;/li&gt;
&lt;li&gt;Application Layer Gateway Service&lt;/li&gt;
&lt;li&gt;Smart Card&lt;/li&gt;
&lt;li&gt;Windows Image Acquisition&lt;/li&gt;
&lt;li&gt;Security Center&lt;/li&gt;
&lt;li&gt;Connected User Experiences and Telemetry&lt;/li&gt;
&lt;li&gt;Retail Demo Service&lt;/li&gt;
&lt;li&gt;Windows Media Player Network Sharing Service&lt;/li&gt;
&lt;li&gt;AllJoyn Router Service&lt;/li&gt;
&lt;li&gt;Geolocation Service&lt;/li&gt;
&lt;li&gt;Windows Biometric Service (Required for Fingerprint logon)&lt;/li&gt;
&lt;li&gt;Program Compatibility Assistant Service&lt;/li&gt;
&lt;li&gt;Enterprise App Management Service&lt;/li&gt;
&lt;/ol&gt;
</description><pubDate>Wed, 30 Dec 2020 20:34:52 GMT</pubDate><content:encoded>&lt;p&gt;This guide goes over using a Custom ISO, Removing Windows 10 Components, and Optimizing Windows 10 Settings.&lt;/p&gt;

&lt;h2&gt;Custom ISO&lt;/h2&gt;
&lt;p&gt;The whole purpose of a custom ISO is to make the initial install as slim as possible. You don&apos;t have to uninstall bloat if it never gets installed to begin with!&lt;/p&gt;
&lt;p&gt;Easiest Method &lt;em&gt;NTLite&lt;/em&gt; ($30) - &lt;a href=&quot;https://www.ntlite.com/&quot;&gt;https://www.ntlite.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Free Method &lt;em&gt;MSMG Toolkit&lt;/em&gt; - &lt;a href=&quot;https://msmgtoolkit.in/&quot;&gt;https://msmgtoolkit.in/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;How to Make a Custom Windows 10 ISO with &lt;em&gt;MSMG Toolkit&lt;/em&gt; Video&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/R6XPff38iSc&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h3&gt;Microsoft Method for Custom ISO (Advanced Users Only)&lt;/h3&gt;
&lt;p&gt;Downloading in Installing ADK (Microsoft Image Tools) &lt;a href=&quot;https://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install&quot;&gt;https://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install&lt;/a&gt;
Using sysprep from Microsoft &lt;a href=&quot;https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/sysprep--generalize--a-windows-installation&quot;&gt;https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/sysprep--generalize--a-windows-installation&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I highly recommend a video by Craft Computing going over Windows Deployment Services if you are interested in this method - &lt;a href=&quot;https://youtu.be/PdKMiFKGQuc&quot;&gt;https://youtu.be/PdKMiFKGQuc&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Installing Windows 10 and Removing Components&lt;/h2&gt;
&lt;p&gt;The Full AME Experience. Most people will NOT want to do this as it will remove functionality from Windows 10, that you CAN NOT put back in. Some of the components can be taken out in the Custom ISO phase, but this takes it to another level.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: I do NOT recommend this for MOST machines&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Components Removed&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows Update&lt;/li&gt;
&lt;li&gt;Windows Store&lt;/li&gt;
&lt;li&gt;Media Player Functions&lt;/li&gt;
&lt;li&gt;Telemetry&lt;/li&gt;
&lt;li&gt;Windows Activation (YOU MUST Activate Windows Before this Tweak!) &lt;em&gt;If you fail to do this, you will have a watermark you can&apos;t get rid of&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;DirectX 12&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The AME project now lives at &lt;a href=&quot;https://amelabs.net/&quot;&gt;https://amelabs.net/&lt;/a&gt;. The old GitHub mirror has been retired.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2021/01-win10/ame.webp&quot; alt=&quot;ame&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Installation Overview&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Install Windows 10 (Stock or Custom ISO)&lt;/li&gt;
&lt;li&gt;Activate Windows 10 and Disconnect from Internet afterwards&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;amelioration_2004.bat&lt;/code&gt; as Admin and Pre-Amelioration&lt;/li&gt;
&lt;li&gt;Reboot to Linux (I recommend Linux Mint)&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;sudo ./ameliorate_2004.sh&lt;/code&gt; in Terminal on Live Linux USB&lt;/li&gt;
&lt;li&gt;Reboot back to Windows&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;amelioration_2004.bat&lt;/code&gt; as Admin and Post-Amelioration&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Driver Installation&lt;/h3&gt;
&lt;p&gt;Recommend using the Offline Snappy Driver Installer &lt;a href=&quot;https://sdi-tool.org/&quot;&gt;https://sdi-tool.org/&lt;/a&gt;. This is about 50 GB, but has every driver you need.&lt;/p&gt;
&lt;h3&gt;AME Step-by-Step Documentation&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://docs.ameliorated.io/&quot;&gt;https://docs.ameliorated.io/&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Running Updates&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Download Latest Servicing Stack Update (&lt;em&gt;Check Month - Windows verison- Architecture x64&lt;/em&gt;) &lt;a href=&quot;https://www.catalog.update.microsoft.com/Search.aspx?q=Servicing%20Stack%20Update%20Windows%2010&quot;&gt;https://www.catalog.update.microsoft.com/Search.aspx?q=Servicing Stack Update Windows 10&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Download Cumulative Update (&lt;em&gt;Check Month/Version/Arch AND Run After rebooting above&lt;/em&gt;) &lt;a href=&quot;https://www.catalog.update.microsoft.com/Search.aspx?q=Cumulative%20Update%20Windows%2010&quot;&gt;https://www.catalog.update.microsoft.com/Search.aspx?q=Cumulative Update Windows 10&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Extract Updates&lt;br /&gt;
&lt;code&gt;expand -F:* .\Windows10SSU.msu C:\Update1&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;dism /online /add-package /packagepath=C:\1\Windows10.0-SSU.cab&lt;/code&gt;&lt;br /&gt;
Reboot&lt;br /&gt;
&lt;code&gt;expand -F:* .\Windows10Cumulative.msu C:\Update2&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;dism /online /add-package /packagepath=C:\2\Windows10.0-Cumulative.cab&lt;/code&gt;&lt;br /&gt;
Reboot and Run&lt;br /&gt;
&lt;code&gt;dism /online /Cleanup-Image /StartComponentCleanup&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: File Names change and will be different from above!&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Optimizing Windows 10 Settings&lt;/h2&gt;
&lt;p&gt;To finish things off we do some custom tweaks with the Official CTT Windows 10 Toolbox. This is something I have been customizing for years and refining every single month to work on any Windows 10 Installation.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;iex ((New-Object System.Net.WebClient).DownloadString(&apos;https://git.io/JJ8R4&apos;))
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;What this script can do&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Installs Chocolatey, Notepad++, Irfanview, VLC, Java, and asks if you want Adobe Reader or Brave.&lt;/li&gt;
&lt;li&gt;Removes all Windows Store Apps EXCEPT office, xbox, and WSL.&lt;/li&gt;
&lt;li&gt;Removed Telemetry&lt;/li&gt;
&lt;li&gt;Disables Cortana&lt;/li&gt;
&lt;li&gt;Deletes various schedules tasks that rebloat the system&lt;/li&gt;
&lt;li&gt;Removes Other Bloatware (Candy Crush, etc.)&lt;/li&gt;
&lt;li&gt;Fixes problems that other scripts causes (lock screen and personalization options restricted)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Based on User feedback, this no longer uninstalls OneDrive or Office.&lt;/p&gt;
&lt;h3&gt;Toolbox Walkthrough Video&lt;/h3&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/V27McA7ch6w&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h3&gt;Windows Services to Disable&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Windows Defender &amp;amp; Firewall&lt;/li&gt;
&lt;li&gt;Windows Mobile Hotspot Service&lt;/li&gt;
&lt;li&gt;Bluetooth Support Service&lt;/li&gt;
&lt;li&gt;Print Spooler (Required for Printing)&lt;/li&gt;
&lt;li&gt;Fax&lt;/li&gt;
&lt;li&gt;Remote Desktop Configuration and Remote Desktop Services&lt;/li&gt;
&lt;li&gt;Windows Insider Service&lt;/li&gt;
&lt;li&gt;Secondary Logon&lt;/li&gt;
&lt;li&gt;Downloaded Maps Manager&lt;/li&gt;
&lt;li&gt;Touch Keyboard and Handwriting Panel Service&lt;/li&gt;
&lt;li&gt;Offline Files&lt;/li&gt;
&lt;li&gt;Windows Connect Now&lt;/li&gt;
&lt;li&gt;Remote Registry&lt;/li&gt;
&lt;li&gt;Application Layer Gateway Service&lt;/li&gt;
&lt;li&gt;Smart Card&lt;/li&gt;
&lt;li&gt;Windows Image Acquisition&lt;/li&gt;
&lt;li&gt;Security Center&lt;/li&gt;
&lt;li&gt;Connected User Experiences and Telemetry&lt;/li&gt;
&lt;li&gt;Retail Demo Service&lt;/li&gt;
&lt;li&gt;Windows Media Player Network Sharing Service&lt;/li&gt;
&lt;li&gt;AllJoyn Router Service&lt;/li&gt;
&lt;li&gt;Geolocation Service&lt;/li&gt;
&lt;li&gt;Windows Biometric Service (Required for Fingerprint logon)&lt;/li&gt;
&lt;li&gt;Program Compatibility Assistant Service&lt;/li&gt;
&lt;li&gt;Enterprise App Management Service&lt;/li&gt;
&lt;/ol&gt;
</content:encoded></item><item><title>Macos Sysadmin Tips</title><link>https://christitus.com/macos-sysadmin-tips/</link><guid isPermaLink="true">https://christitus.com/macos-sysadmin-tips/</guid><description>&lt;p&gt;This comes from a reader that was a Sysadmin and transitioned from Linux to MacOS because of a visual impairment. He choose macOS because of it&apos;s screen reader and shared all these tips, which I found extremely valuable. Thank you Nik for sharing! It felt only right to share his thoughtful email with a lot of explanations that are hard to find on the net.&lt;/p&gt;
&lt;h2&gt;launchd&lt;/h2&gt;
&lt;p&gt;Launchd is Darwin/MacOS’s init system. The init portion of systemd is heavily modeled after launchd, but unlike systemd, launchd isn’t a monolithic system manager but only an init system. It&apos;s a relatively simple design that follows the unix philosophy. Any further functionality is implemented by daemons that can be disabled with a launchd override plist.&lt;/p&gt;
&lt;p&gt;For info how to use launchd, check the man pages and read this document from the documentation archive: &lt;a href=&quot;https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/Introduction.html&quot;&gt;https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/Introduction.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You might also want to take a look at the launchd source code for a deeper understanding.&lt;/p&gt;
&lt;p&gt;I use Xcode’s graphical plist editor to configure daemons because I find it less annoying than editing XML with vim, but there are also light weight plist editors that don&apos;t require you to start big ol Xcode every time you want to change something in a daemon.&lt;/p&gt;
&lt;p&gt;Job scheduling can be done either with launchd&apos;s native tools or with cron.&lt;/p&gt;
&lt;h2&gt;XNU&lt;/h2&gt;
&lt;p&gt;XNU is Darwin’s kernel. It has a fascinating design and I highly recommend reading the source code. It’s a hybrid kernel that uses the Mach microkernel as its foundation and adds a BSD layer derived from FreeBSD and NetBSD on top to provide UNIX functionality. They are slowly turning XNU into more of a microkernel by moving drivers into the userland.&lt;/p&gt;
&lt;p&gt;The nvram utility can set bootflags. I generally run all my systems with verbose boot, and on some, I also tweak Mach scheduling. I also run a special bootflag on my (jailbroken) iPhone to keep kernel memory usage down so I can assign more memory to my phone’s needlessly complex launchd setup. You can find lists of bootflags with google, but might have to read kernel source code for the more obscure ones.&lt;/p&gt;
&lt;p&gt;Kernel sources for macOS 11 have not been released yet, so I assume it is currently not possible to compile a custom kernel for the M1 due to lack of drivers, but I haven’t tried it. The documentation archive contains a detailed overview of the kernel, but some of the information is outdated by now: &lt;a href=&quot;https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KernelProgramming/About/About.html&quot;&gt;https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KernelProgramming/About/About.html&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Smart Folders&lt;/h2&gt;
&lt;p&gt;You can save Finder searches as a so called smart folder, where the found files will be symlinked into the folder. This is useful for a lot of things, such as symlinking all files of a certain file format to the same folder, so you can have a Photos folder that will contain symlinks of all .webp files on the system. The symlinks refresh automatically, so when ever you add a new .webp somewhere to the filesystem, it would get symlinked to this folder.&lt;/p&gt;
&lt;h2&gt;Automator and Folder Actions&lt;/h2&gt;
&lt;p&gt;You can create custom automation routines with automator. Automator also supports a variety of shell scripting languages such as Python or Bash. Automator actions can be used in a number of ways, such as an icon in your dock that runs the action on any file you drag onto it, or as a right click menu entry, or as a folder action. Folder actions bind automator scripts to folders and execute them on any file you put in the folder. You can for example combine the Bash support of Automator with ImageMagick or FFMPEG to automatically add watermarks to any photo or video you save to a specific folder.&lt;/p&gt;
&lt;p&gt;Automator also supports AppleScript, which is kind of a weird and arcane language, but offers many UI automization capabilities, that I frequently bind to voice commands for disability accommodation. It also integrates voiceover&apos;s text-to-speech which I find incredibly useful to build notification systems for blind people. AppleScript functions can be called from Bash, so I usually just use Bash scripts and access AppleScript when I need it.&lt;/p&gt;
&lt;p&gt;There is also a paid third party automization tool called Keyboard Maestro, that is supposedly better than Automator, but I don’t have any experience with it.&lt;/p&gt;
&lt;h2&gt;Package Management&lt;/h2&gt;
&lt;p&gt;Pkgutil is Darwin’s native package manager. It does not support dependency resolution, and requires manual package removal, so it should only be used for things that you don’t want to uninstall like custom kernel extensions or patches. Darwin comes with the pkgbuild utility to create installable .pkg files from a root file structure, and can even build a customizable gui installer for them.&lt;/p&gt;
&lt;p&gt;My package management workflow is as follows:&lt;/p&gt;
&lt;p&gt;I use macports (an implementation of the BSD Ports System) for applications that have too many dependencies to build them manually.&lt;/p&gt;
&lt;p&gt;I use xbps (from void linux) to build and manage packages of unix utilities that I want to use across multiple systems. This is the one I use most. I used to use pacman, but xbps integrates git nicely, so I can just run a git server as my personal binary package repo, and pacman was too much of a headache to compile for mac, frankly. I will probably eventually transition to using macports for custom packages too, but xbps just makes it incredibly easy to build packages, and I’m already experienced with it because of void linux.&lt;/p&gt;
&lt;p&gt;I use pkgutil to build packages for kexts, launchd daemons and system tweaks that I want to use across multiple systems.&lt;/p&gt;
&lt;p&gt;I use a program’s included makefile for utilities that I only want to use on the system that I’m compiling them on.&lt;/p&gt;
&lt;p&gt;I’ve been considering building a custom binary package manager with Swift and plists to replace this workflow, but I don’t know if I’m actually gonna do that.&lt;/p&gt;
&lt;h2&gt;Directory Structure&lt;/h2&gt;
&lt;p&gt;The system partition is mounted as read-only in more recent versions of macOS, but if you want to tweak lower level stuff, you can either temporarily mount the partition with write privs with the standard mount command while in recovery mode, or run ‘csrutil disable’ in the recovery mode terminal to disable read-only mounting entirely. But make sure you keep timeshift backups around if you’re gonna mess with the system partition. I do not recommend that you ‘debloat’ macOS, and instead use launchd overrides to disable things like Find My Mac. Deleted system apps will just be reinstalled during updates, and they aren’t wasting resources while they aren’t loaded, so you don’t have much to gain except a few more megabytes of ssd space.&lt;/p&gt;
&lt;p&gt;Enable hidden files with command + shift + . and explore the file structure.&lt;/p&gt;
&lt;p&gt;User-installed unix utilities belong in /usr/local/bin.&lt;/p&gt;
&lt;p&gt;/usr/bin contains the default tools. FreeBSD’s cpuctl is included and works with the M1. This can be useful to disable all CPU cores except one of the power saving cores, as a custom ultra-low power mode on MacBooks, but there is also a boot flag to disable CPU cores. Another useful one is firmwarepasswd to password lock the bootloader. I use that + full drive encryption on devices that I take through airports. You might also want to check out diskutil and its manpage for command line partition management.&lt;/p&gt;
&lt;p&gt;/Applications contains your gui apps. You can drag this folder into your dock to get a much better grid view than launchpad, or right click on it to change it to a list view, which gives you something like the Windows 98 start menu. Applications are folders that you can explore by right clicking on them in finder or with the cd command. Applications don’t need to be in the /Applications directory to be run, so you can put them on an external drive. They will not show up in launchpad or the applications list in your dock if you place them somewhere else, but you can just symlink them from an external drive to /Applications. Spotlight will still be able to find apps even if they aren’t symlinked to /Applications. The Mac version of QuickTime is pretty great btw. The windows version has nothing in common with it except the name, so give it a chance if you were put off by your experience with it on windows.&lt;/p&gt;
&lt;p&gt;/Library contains settings plists and libraries. A lot can be customized here so I recommend digging around. There is also a Library folder in /System for deeper configuration, and one in your home directory for user-specific tweaks.&lt;/p&gt;
&lt;h2&gt;Window Management&lt;/h2&gt;
&lt;p&gt;I only ever use splitview for a terminal + safari combo, so I don&apos;t mind that it doesn&apos;t offer more complex tiling functionality, but there are a number of tiling window management plugins such as Yabai, amethyst or chunkwm. I don&apos;t have any experience with those because I was a CWM user on the *BSDs.&lt;/p&gt;
&lt;p&gt;If you have a mouse with thumb buttons, I highly recommend going into System Preferences -&amp;gt; Mission Control and binding Mission Control to Mouse 4 and Application Windows to Mouse 5. All non-mini macs ship with either a touch pad or a mouse that has a touch surface, so where you would use gestures to control window management, but since you don&apos;t have that, it would be good to bind it to buttons instead. Mouse 5 will show you all windows of the currently active application, and mouse 4 will show you all windows and virtual desktops. You can also set up hot corners to emulate Gnome and KDE&apos;s window management.&lt;/p&gt;
&lt;h2&gt;Safari Adblocking&lt;/h2&gt;
&lt;p&gt;I need to use Safari because it&apos;s the only browser with proper screen reader support. I like it over all for its performance, memory and battery efficiency, but an annoying issue is that there are no good adblockers for it because it restricts the level of access that extensions have to your traffic. AdGuard (not on the App Store) is a pretty decent alternative that works not only on MacOS but also Android and iOS and blocks ads systemwide, but a pihole would work too. I also run Little Snitch (also not on the App Store) for traffic monitoring.&lt;/p&gt;
</description><pubDate>Mon, 14 Dec 2020 23:25:22 GMT</pubDate><content:encoded>&lt;p&gt;This comes from a reader that was a Sysadmin and transitioned from Linux to MacOS because of a visual impairment. He choose macOS because of it&apos;s screen reader and shared all these tips, which I found extremely valuable. Thank you Nik for sharing! It felt only right to share his thoughtful email with a lot of explanations that are hard to find on the net.&lt;/p&gt;
&lt;h2&gt;launchd&lt;/h2&gt;
&lt;p&gt;Launchd is Darwin/MacOS’s init system. The init portion of systemd is heavily modeled after launchd, but unlike systemd, launchd isn’t a monolithic system manager but only an init system. It&apos;s a relatively simple design that follows the unix philosophy. Any further functionality is implemented by daemons that can be disabled with a launchd override plist.&lt;/p&gt;
&lt;p&gt;For info how to use launchd, check the man pages and read this document from the documentation archive: &lt;a href=&quot;https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/Introduction.html&quot;&gt;https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/Introduction.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You might also want to take a look at the launchd source code for a deeper understanding.&lt;/p&gt;
&lt;p&gt;I use Xcode’s graphical plist editor to configure daemons because I find it less annoying than editing XML with vim, but there are also light weight plist editors that don&apos;t require you to start big ol Xcode every time you want to change something in a daemon.&lt;/p&gt;
&lt;p&gt;Job scheduling can be done either with launchd&apos;s native tools or with cron.&lt;/p&gt;
&lt;h2&gt;XNU&lt;/h2&gt;
&lt;p&gt;XNU is Darwin’s kernel. It has a fascinating design and I highly recommend reading the source code. It’s a hybrid kernel that uses the Mach microkernel as its foundation and adds a BSD layer derived from FreeBSD and NetBSD on top to provide UNIX functionality. They are slowly turning XNU into more of a microkernel by moving drivers into the userland.&lt;/p&gt;
&lt;p&gt;The nvram utility can set bootflags. I generally run all my systems with verbose boot, and on some, I also tweak Mach scheduling. I also run a special bootflag on my (jailbroken) iPhone to keep kernel memory usage down so I can assign more memory to my phone’s needlessly complex launchd setup. You can find lists of bootflags with google, but might have to read kernel source code for the more obscure ones.&lt;/p&gt;
&lt;p&gt;Kernel sources for macOS 11 have not been released yet, so I assume it is currently not possible to compile a custom kernel for the M1 due to lack of drivers, but I haven’t tried it. The documentation archive contains a detailed overview of the kernel, but some of the information is outdated by now: &lt;a href=&quot;https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KernelProgramming/About/About.html&quot;&gt;https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KernelProgramming/About/About.html&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Smart Folders&lt;/h2&gt;
&lt;p&gt;You can save Finder searches as a so called smart folder, where the found files will be symlinked into the folder. This is useful for a lot of things, such as symlinking all files of a certain file format to the same folder, so you can have a Photos folder that will contain symlinks of all .webp files on the system. The symlinks refresh automatically, so when ever you add a new .webp somewhere to the filesystem, it would get symlinked to this folder.&lt;/p&gt;
&lt;h2&gt;Automator and Folder Actions&lt;/h2&gt;
&lt;p&gt;You can create custom automation routines with automator. Automator also supports a variety of shell scripting languages such as Python or Bash. Automator actions can be used in a number of ways, such as an icon in your dock that runs the action on any file you drag onto it, or as a right click menu entry, or as a folder action. Folder actions bind automator scripts to folders and execute them on any file you put in the folder. You can for example combine the Bash support of Automator with ImageMagick or FFMPEG to automatically add watermarks to any photo or video you save to a specific folder.&lt;/p&gt;
&lt;p&gt;Automator also supports AppleScript, which is kind of a weird and arcane language, but offers many UI automization capabilities, that I frequently bind to voice commands for disability accommodation. It also integrates voiceover&apos;s text-to-speech which I find incredibly useful to build notification systems for blind people. AppleScript functions can be called from Bash, so I usually just use Bash scripts and access AppleScript when I need it.&lt;/p&gt;
&lt;p&gt;There is also a paid third party automization tool called Keyboard Maestro, that is supposedly better than Automator, but I don’t have any experience with it.&lt;/p&gt;
&lt;h2&gt;Package Management&lt;/h2&gt;
&lt;p&gt;Pkgutil is Darwin’s native package manager. It does not support dependency resolution, and requires manual package removal, so it should only be used for things that you don’t want to uninstall like custom kernel extensions or patches. Darwin comes with the pkgbuild utility to create installable .pkg files from a root file structure, and can even build a customizable gui installer for them.&lt;/p&gt;
&lt;p&gt;My package management workflow is as follows:&lt;/p&gt;
&lt;p&gt;I use macports (an implementation of the BSD Ports System) for applications that have too many dependencies to build them manually.&lt;/p&gt;
&lt;p&gt;I use xbps (from void linux) to build and manage packages of unix utilities that I want to use across multiple systems. This is the one I use most. I used to use pacman, but xbps integrates git nicely, so I can just run a git server as my personal binary package repo, and pacman was too much of a headache to compile for mac, frankly. I will probably eventually transition to using macports for custom packages too, but xbps just makes it incredibly easy to build packages, and I’m already experienced with it because of void linux.&lt;/p&gt;
&lt;p&gt;I use pkgutil to build packages for kexts, launchd daemons and system tweaks that I want to use across multiple systems.&lt;/p&gt;
&lt;p&gt;I use a program’s included makefile for utilities that I only want to use on the system that I’m compiling them on.&lt;/p&gt;
&lt;p&gt;I’ve been considering building a custom binary package manager with Swift and plists to replace this workflow, but I don’t know if I’m actually gonna do that.&lt;/p&gt;
&lt;h2&gt;Directory Structure&lt;/h2&gt;
&lt;p&gt;The system partition is mounted as read-only in more recent versions of macOS, but if you want to tweak lower level stuff, you can either temporarily mount the partition with write privs with the standard mount command while in recovery mode, or run ‘csrutil disable’ in the recovery mode terminal to disable read-only mounting entirely. But make sure you keep timeshift backups around if you’re gonna mess with the system partition. I do not recommend that you ‘debloat’ macOS, and instead use launchd overrides to disable things like Find My Mac. Deleted system apps will just be reinstalled during updates, and they aren’t wasting resources while they aren’t loaded, so you don’t have much to gain except a few more megabytes of ssd space.&lt;/p&gt;
&lt;p&gt;Enable hidden files with command + shift + . and explore the file structure.&lt;/p&gt;
&lt;p&gt;User-installed unix utilities belong in /usr/local/bin.&lt;/p&gt;
&lt;p&gt;/usr/bin contains the default tools. FreeBSD’s cpuctl is included and works with the M1. This can be useful to disable all CPU cores except one of the power saving cores, as a custom ultra-low power mode on MacBooks, but there is also a boot flag to disable CPU cores. Another useful one is firmwarepasswd to password lock the bootloader. I use that + full drive encryption on devices that I take through airports. You might also want to check out diskutil and its manpage for command line partition management.&lt;/p&gt;
&lt;p&gt;/Applications contains your gui apps. You can drag this folder into your dock to get a much better grid view than launchpad, or right click on it to change it to a list view, which gives you something like the Windows 98 start menu. Applications are folders that you can explore by right clicking on them in finder or with the cd command. Applications don’t need to be in the /Applications directory to be run, so you can put them on an external drive. They will not show up in launchpad or the applications list in your dock if you place them somewhere else, but you can just symlink them from an external drive to /Applications. Spotlight will still be able to find apps even if they aren’t symlinked to /Applications. The Mac version of QuickTime is pretty great btw. The windows version has nothing in common with it except the name, so give it a chance if you were put off by your experience with it on windows.&lt;/p&gt;
&lt;p&gt;/Library contains settings plists and libraries. A lot can be customized here so I recommend digging around. There is also a Library folder in /System for deeper configuration, and one in your home directory for user-specific tweaks.&lt;/p&gt;
&lt;h2&gt;Window Management&lt;/h2&gt;
&lt;p&gt;I only ever use splitview for a terminal + safari combo, so I don&apos;t mind that it doesn&apos;t offer more complex tiling functionality, but there are a number of tiling window management plugins such as Yabai, amethyst or chunkwm. I don&apos;t have any experience with those because I was a CWM user on the *BSDs.&lt;/p&gt;
&lt;p&gt;If you have a mouse with thumb buttons, I highly recommend going into System Preferences -&amp;gt; Mission Control and binding Mission Control to Mouse 4 and Application Windows to Mouse 5. All non-mini macs ship with either a touch pad or a mouse that has a touch surface, so where you would use gestures to control window management, but since you don&apos;t have that, it would be good to bind it to buttons instead. Mouse 5 will show you all windows of the currently active application, and mouse 4 will show you all windows and virtual desktops. You can also set up hot corners to emulate Gnome and KDE&apos;s window management.&lt;/p&gt;
&lt;h2&gt;Safari Adblocking&lt;/h2&gt;
&lt;p&gt;I need to use Safari because it&apos;s the only browser with proper screen reader support. I like it over all for its performance, memory and battery efficiency, but an annoying issue is that there are no good adblockers for it because it restricts the level of access that extensions have to your traffic. AdGuard (not on the App Store) is a pretty decent alternative that works not only on MacOS but also Android and iOS and blocks ads systemwide, but a pihole would work too. I also run Little Snitch (also not on the App Store) for traffic monitoring.&lt;/p&gt;
</content:encoded></item><item><title>2020 Buyers Guide</title><link>https://christitus.com/2020-buyers-guide/</link><guid isPermaLink="true">https://christitus.com/2020-buyers-guide/</guid><description>&lt;p&gt;Looking for a Tech Gift this holiday season? Here are the things I have my eye on and are worth considering.&lt;/p&gt;

&lt;h2&gt;Amazon Fire Tablet&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;7&quot; &lt;a href=&quot;https://amzn.to/2UzZZ8T&quot;&gt;https://amzn.to/2UzZZ8T&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;10&quot; &lt;a href=&quot;https://amzn.to/35H7Yax&quot;&gt;https://amzn.to/35H7Yax&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/buyers-guide/debloat-fire.webp&quot; alt=&quot;Debloat-Fire&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Video Overview on how to debloat: &lt;a href=&quot;https://youtu.be/yLoymK65dJE&quot;&gt;https://youtu.be/yLoymK65dJE&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Cell Phones&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/buyers-guide/cellphones.webp&quot; alt=&quot;Cellphones&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Google 4a - $350 - &lt;a href=&quot;https://amzn.to/2IKfTLr&quot;&gt;https://amzn.to/2IKfTLr&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;PinePhone - $200 - &lt;a href=&quot;https://www.pine64.org/pinephone/&quot;&gt;https://www.pine64.org/pinephone/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;XDA Pro1-X - $639 - &lt;a href=&quot;https://www.indiegogo.com/projects/pro1-x-smartphone-functionality-choice-control&quot;&gt;https://www.indiegogo.com/projects/pro1-x-smartphone-functionality-choice-control&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Both PinePhone and XDA Pro1-X are Linux phones and may not be practical for everyday use unless you load Lineage or a solid mobile OS on it, but man are they fun to play with.&lt;/p&gt;
&lt;p&gt;Google 4a is the practical choice and is a rock solid phone that comes unlocked to where you can wipe out Google and move to Lineage for those security and privacy oriented folks. This is the best value in my opinion.&lt;/p&gt;
&lt;h2&gt;Monitors&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/buyers-guide/monitors.webp&quot; alt=&quot;Monitors&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cheap Spectre Monitors - &lt;a href=&quot;https://amzn.to/3pxmv0l&quot;&gt;https://amzn.to/3pxmv0l&lt;/a&gt; - &lt;em&gt;Prices range from $80 to $250&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;BenQ High-End Monitors - &lt;a href=&quot;https://amzn.to/2K9wxV0&quot;&gt;https://amzn.to/2K9wxV0&lt;/a&gt; - &lt;em&gt;Prices range from $300 to $450&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Current Gaming Monitor Pick - BenQ ZOWIE 24&quot; 144Hz - $199 - &lt;a href=&quot;https://amzn.to/32VJ05h&quot;&gt;https://amzn.to/32VJ05h&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Peripherals&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/buyers-guide/razer.webp&quot; alt=&quot;Razer&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Razer Cynosa Lite - $40 - &lt;a href=&quot;https://amzn.to/3f6ZfS1&quot;&gt;https://amzn.to/3f6ZfS1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Razer DeathAdder Essential Mouse - $30 - &lt;a href=&quot;https://amzn.to/3lGFAe9&quot;&gt;https://amzn.to/3lGFAe9&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Why Razer? Did they pay me or something? &lt;em&gt;Nope!&lt;/em&gt;&lt;br /&gt;
Razer has a bunch of cool features, but also has a great open source project called OpenRazer &lt;a href=&quot;https://openrazer.github.io/&quot;&gt;https://openrazer.github.io/&lt;/a&gt; for any operating system. You can do all kinds of fun macros with them and I picked these two above because they are rather quiet and I hate noise. Most people would prefer a full mechanical and if you are interested in this check out the project above and pick a compatible device for your needs!&lt;/p&gt;
&lt;h3&gt;Logitech Options&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;MK545 Keyboard and Mouse Combo from Logitech - $50 - &lt;a href=&quot;https://amzn.to/3pEPSxO&quot;&gt;https://amzn.to/3pEPSxO&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;3 Device Switching Keyboard and Mouse&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;M720 Logitech M720 Wireless Triathlon Mouse $30 - &lt;a href=&quot;https://amzn.to/3fseOUu&quot;&gt;https://amzn.to/3fseOUu&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Logitech K780 Multi-Device Wireless Keyboard $100 - &lt;a href=&quot;https://amzn.to/33bKBUO&quot;&gt;https://amzn.to/33bKBUO&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;TitusPi&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/wyvS1FxR4ic&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;ul&gt;
&lt;li&gt;Raspberry Pi 4 8GB Kit - $105 - &lt;a href=&quot;https://amzn.to/2K7CuBR&quot;&gt;https://amzn.to/2K7CuBR&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Raspberry Pi 4 Image - Build it yourself with
&lt;a href=&quot;https://github.com/ChrisTitusTech/TitusPi&quot;&gt;https://github.com/ChrisTitusTech/TitusPi&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Audio/Video Production Stuff&lt;/h2&gt;
&lt;p&gt;Here is Equipment I use for A/V and recommend to others. Below is a video going over my entire studio setup, but I left out the impractical gear that many wouldn&apos;t want.&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/cuBay8QzYH4&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;ul&gt;
&lt;li&gt;Camera - M200 - $550 - &lt;a href=&quot;https://amzn.to/32T9qEU&quot;&gt;https://amzn.to/32T9qEU&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Camera Lens - Canon 22M 2.0 - $200 - &lt;a href=&quot;https://amzn.to/3pzW0r0&quot;&gt;https://amzn.to/3pzW0r0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Microphone - Rode VideoMicro - $60 - &lt;a href=&quot;https://amzn.to/2IBn093&quot;&gt;https://amzn.to/2IBn093&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Capture Card - Magewell - $900 - &lt;a href=&quot;https://amzn.to/3pFZiZJ&quot;&gt;https://amzn.to/3pFZiZJ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;StreamDeck - Button Macros - $150
&lt;ul&gt;
&lt;li&gt;Streamdeck_ui Open Source Project &lt;a href=&quot;https://timothycrosley.github.io/streamdeck-ui/&quot;&gt;https://timothycrosley.github.io/streamdeck-ui/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Microphone Standalone - Shure MV7 - $250 - &lt;a href=&quot;https://amzn.to/3kGstbi&quot;&gt;https://amzn.to/3kGstbi&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Computers and Graphics Cards&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/buyers-guide/outofstock.webp&quot; alt=&quot;OutofStock&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Good Luck! All the stock out there is way out of date and any of the new hotness is Out of Stock. Wait til 2021!&lt;/p&gt;
&lt;p&gt;But... If you want to see something cool for a laptop in 2020, check out this &quot;little&quot; machine. &lt;a href=&quot;https://kfocus.org/&quot;&gt;https://kfocus.org/&lt;/a&gt; #NotSponsored&lt;/p&gt;
</description><pubDate>Fri, 20 Nov 2020 19:46:56 GMT</pubDate><content:encoded>&lt;p&gt;Looking for a Tech Gift this holiday season? Here are the things I have my eye on and are worth considering.&lt;/p&gt;

&lt;h2&gt;Amazon Fire Tablet&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;7&quot; &lt;a href=&quot;https://amzn.to/2UzZZ8T&quot;&gt;https://amzn.to/2UzZZ8T&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;10&quot; &lt;a href=&quot;https://amzn.to/35H7Yax&quot;&gt;https://amzn.to/35H7Yax&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/buyers-guide/debloat-fire.webp&quot; alt=&quot;Debloat-Fire&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Video Overview on how to debloat: &lt;a href=&quot;https://youtu.be/yLoymK65dJE&quot;&gt;https://youtu.be/yLoymK65dJE&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Cell Phones&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/buyers-guide/cellphones.webp&quot; alt=&quot;Cellphones&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Google 4a - $350 - &lt;a href=&quot;https://amzn.to/2IKfTLr&quot;&gt;https://amzn.to/2IKfTLr&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;PinePhone - $200 - &lt;a href=&quot;https://www.pine64.org/pinephone/&quot;&gt;https://www.pine64.org/pinephone/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;XDA Pro1-X - $639 - &lt;a href=&quot;https://www.indiegogo.com/projects/pro1-x-smartphone-functionality-choice-control&quot;&gt;https://www.indiegogo.com/projects/pro1-x-smartphone-functionality-choice-control&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Both PinePhone and XDA Pro1-X are Linux phones and may not be practical for everyday use unless you load Lineage or a solid mobile OS on it, but man are they fun to play with.&lt;/p&gt;
&lt;p&gt;Google 4a is the practical choice and is a rock solid phone that comes unlocked to where you can wipe out Google and move to Lineage for those security and privacy oriented folks. This is the best value in my opinion.&lt;/p&gt;
&lt;h2&gt;Monitors&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/buyers-guide/monitors.webp&quot; alt=&quot;Monitors&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cheap Spectre Monitors - &lt;a href=&quot;https://amzn.to/3pxmv0l&quot;&gt;https://amzn.to/3pxmv0l&lt;/a&gt; - &lt;em&gt;Prices range from $80 to $250&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;BenQ High-End Monitors - &lt;a href=&quot;https://amzn.to/2K9wxV0&quot;&gt;https://amzn.to/2K9wxV0&lt;/a&gt; - &lt;em&gt;Prices range from $300 to $450&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Current Gaming Monitor Pick - BenQ ZOWIE 24&quot; 144Hz - $199 - &lt;a href=&quot;https://amzn.to/32VJ05h&quot;&gt;https://amzn.to/32VJ05h&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Peripherals&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/buyers-guide/razer.webp&quot; alt=&quot;Razer&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Razer Cynosa Lite - $40 - &lt;a href=&quot;https://amzn.to/3f6ZfS1&quot;&gt;https://amzn.to/3f6ZfS1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Razer DeathAdder Essential Mouse - $30 - &lt;a href=&quot;https://amzn.to/3lGFAe9&quot;&gt;https://amzn.to/3lGFAe9&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Why Razer? Did they pay me or something? &lt;em&gt;Nope!&lt;/em&gt;&lt;br /&gt;
Razer has a bunch of cool features, but also has a great open source project called OpenRazer &lt;a href=&quot;https://openrazer.github.io/&quot;&gt;https://openrazer.github.io/&lt;/a&gt; for any operating system. You can do all kinds of fun macros with them and I picked these two above because they are rather quiet and I hate noise. Most people would prefer a full mechanical and if you are interested in this check out the project above and pick a compatible device for your needs!&lt;/p&gt;
&lt;h3&gt;Logitech Options&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;MK545 Keyboard and Mouse Combo from Logitech - $50 - &lt;a href=&quot;https://amzn.to/3pEPSxO&quot;&gt;https://amzn.to/3pEPSxO&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;3 Device Switching Keyboard and Mouse&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;M720 Logitech M720 Wireless Triathlon Mouse $30 - &lt;a href=&quot;https://amzn.to/3fseOUu&quot;&gt;https://amzn.to/3fseOUu&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Logitech K780 Multi-Device Wireless Keyboard $100 - &lt;a href=&quot;https://amzn.to/33bKBUO&quot;&gt;https://amzn.to/33bKBUO&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;TitusPi&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/wyvS1FxR4ic&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;ul&gt;
&lt;li&gt;Raspberry Pi 4 8GB Kit - $105 - &lt;a href=&quot;https://amzn.to/2K7CuBR&quot;&gt;https://amzn.to/2K7CuBR&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Raspberry Pi 4 Image - Build it yourself with
&lt;a href=&quot;https://github.com/ChrisTitusTech/TitusPi&quot;&gt;https://github.com/ChrisTitusTech/TitusPi&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Audio/Video Production Stuff&lt;/h2&gt;
&lt;p&gt;Here is Equipment I use for A/V and recommend to others. Below is a video going over my entire studio setup, but I left out the impractical gear that many wouldn&apos;t want.&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/cuBay8QzYH4&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;ul&gt;
&lt;li&gt;Camera - M200 - $550 - &lt;a href=&quot;https://amzn.to/32T9qEU&quot;&gt;https://amzn.to/32T9qEU&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Camera Lens - Canon 22M 2.0 - $200 - &lt;a href=&quot;https://amzn.to/3pzW0r0&quot;&gt;https://amzn.to/3pzW0r0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Microphone - Rode VideoMicro - $60 - &lt;a href=&quot;https://amzn.to/2IBn093&quot;&gt;https://amzn.to/2IBn093&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Capture Card - Magewell - $900 - &lt;a href=&quot;https://amzn.to/3pFZiZJ&quot;&gt;https://amzn.to/3pFZiZJ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;StreamDeck - Button Macros - $150
&lt;ul&gt;
&lt;li&gt;Streamdeck_ui Open Source Project &lt;a href=&quot;https://timothycrosley.github.io/streamdeck-ui/&quot;&gt;https://timothycrosley.github.io/streamdeck-ui/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Microphone Standalone - Shure MV7 - $250 - &lt;a href=&quot;https://amzn.to/3kGstbi&quot;&gt;https://amzn.to/3kGstbi&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Computers and Graphics Cards&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/buyers-guide/outofstock.webp&quot; alt=&quot;OutofStock&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Good Luck! All the stock out there is way out of date and any of the new hotness is Out of Stock. Wait til 2021!&lt;/p&gt;
&lt;p&gt;But... If you want to see something cool for a laptop in 2020, check out this &quot;little&quot; machine. &lt;a href=&quot;https://kfocus.org/&quot;&gt;https://kfocus.org/&lt;/a&gt; #NotSponsored&lt;/p&gt;
</content:encoded></item><item><title>Linux MacOS</title><link>https://christitus.com/linux-macos/</link><guid isPermaLink="true">https://christitus.com/linux-macos/</guid><description>&lt;p&gt;This Project is to make Ubuntu and other derivative distributions (Mint, PopOS, etc.) look like MacOS. &lt;em&gt;Version 20+ is required&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Source Files in this project&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.gnome-look.org/p/1148692/&quot;&gt;https://www.gnome-look.org/p/1148692/&lt;/a&gt; - Capitine Cursors&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.pling.com/p/1403328/&quot;&gt;https://www.pling.com/p/1403328/&lt;/a&gt; - WhiteSur GTK Theme&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.pling.com/p/1399044/&quot;&gt;https://www.pling.com/p/1399044/&lt;/a&gt; - BigSur Icon Theme&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://albertlauncher.github.io/installation/&quot;&gt;https://albertlauncher.github.io/installation/&lt;/a&gt; - Albert&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.pling.com/p/1401527/&quot;&gt;https://www.pling.com/p/1401527/&lt;/a&gt; - Cairo Dock&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;h3&gt;Dependency Installs&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install git gnome-shell-extensions chrome-gnome-shell gnome-tweak-tool -y
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;git clone https://github.com/ChrisTitusTech/Linux-MacOS-GNOME.git ~/MacOS
mkdir ~/.themes
mkdir ~/.icons
mv ~/MacOS/themes/* ~/.themes
mv ~/MacOS/icons/* ~/.icons
sudo mv ~/MacOS/walls/* /usr/share/backgrounds/
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Gnome Tweaks&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;gsettings set org.gnome.mutter center-new-windows &apos;true&apos;
gsettings set org.gnome.desktop.wm.preferences button-layout &apos;close,minimize,maximize:&apos;
gsettings set org.gnome.desktop.interface gtk-theme &quot;WhiteSur-dark&quot;
gsettings set org.gnome.desktop.wm.preferences theme &quot;WhiteSur-dark&quot;
gsettings set org.gnome.desktop.interface icon-theme &apos;BigSur&apos;
gsettings set org.gnome.desktop.interface cursor-theme &apos;capitaine-cursors-light&apos;
gsettings set org.gnome.desktop.background picture-uri &apos;file:///usr/share/backgrounds/macOS-BS3.webp&apos;
gsettings get org.gnome.desktop.screensaver picture-uri &apos;file:///usr/share/backgrounds/macOS-BS1.webp&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Albert Search and Cairo Dock&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;curl https://build.opensuse.org/projects/home:manuelschneid3r/public_key | sudo apt-key add -
echo &apos;deb http://download.opensuse.org/repositories/home:/manuelschneid3r/xUbuntu_20.04/ /&apos; | sudo tee /etc/apt/sources.list.d/home:manuelschneid3r.list
sudo wget -nv https://download.opensuse.org/repositories/home:manuelschneid3r/xUbuntu_20.04/Release.key -O &quot;/etc/apt/trusted.gpg.d/home:manuelschneid3r.asc&quot;
sudo apt update
sudo apt install albert cairo-dock cairo-dock-plug-ins -y
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Launch Albert&lt;/li&gt;
&lt;li&gt;Set Hotkey - Meta + F&lt;/li&gt;
&lt;li&gt;Set Theme Arc Dark Blue&lt;/li&gt;
&lt;li&gt;Enable Albert Extensions&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Gnome Extensions&lt;/h3&gt;
&lt;p&gt;Enable Extensions by visiting &lt;a href=&quot;https://extensions.gnome.org/&quot;&gt;https://extensions.gnome.org/&lt;/a&gt; install add-on and reload browser&lt;/p&gt;
&lt;p&gt;Install the Following Extensions&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;User Themes - &lt;a href=&quot;https://extensions.gnome.org/extension/19/user-themes/&quot;&gt;https://extensions.gnome.org/extension/19/user-themes/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Frippery Move Clock - &lt;a href=&quot;https://extensions.gnome.org/extension/2/move-clock/&quot;&gt;https://extensions.gnome.org/extension/2/move-clock/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Dynamic Panel Transparency - &lt;a href=&quot;https://extensions.gnome.org/extension/1011/dynamic-panel-transparency/&quot;&gt;https://extensions.gnome.org/extension/1011/dynamic-panel-transparency/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Panel OSD - &lt;a href=&quot;https://extensions.gnome.org/extension/708/panel-osd/&quot;&gt;https://extensions.gnome.org/extension/708/panel-osd/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Manual Extension Configurations&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Panel OSD - Change Horizontal and Vertical to 98&lt;/li&gt;
&lt;li&gt;Cairo Dock - Set to Startup Applications&lt;/li&gt;
&lt;li&gt;Cairo Dock Themes - Import all gz files to Cairo configure in ~/MacOS/cairo&lt;/li&gt;
&lt;li&gt;Cairo Dock Configure - Turn of Icon effects and animations and hide dock when overlapping windows&lt;/li&gt;
&lt;li&gt;Cairo Dock Launchpad - Add Custom Launchpad Shortcut &lt;code&gt;dbus-send --session --type=method_call --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:&apos;Main.shellDBusService.ShowApplications();&apos;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Disable Ubuntu Dock (Not Needed on PopOS)&lt;/li&gt;
&lt;li&gt;Dynamic Panel Transparency - Background Tab - Max Opacity 100 - Min Opacity 50&lt;/li&gt;
&lt;/ul&gt;
</description><pubDate>Mon, 05 Oct 2020 18:03:31 GMT</pubDate><content:encoded>&lt;p&gt;This Project is to make Ubuntu and other derivative distributions (Mint, PopOS, etc.) look like MacOS. &lt;em&gt;Version 20+ is required&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Source Files in this project&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.gnome-look.org/p/1148692/&quot;&gt;https://www.gnome-look.org/p/1148692/&lt;/a&gt; - Capitine Cursors&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.pling.com/p/1403328/&quot;&gt;https://www.pling.com/p/1403328/&lt;/a&gt; - WhiteSur GTK Theme&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.pling.com/p/1399044/&quot;&gt;https://www.pling.com/p/1399044/&lt;/a&gt; - BigSur Icon Theme&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://albertlauncher.github.io/installation/&quot;&gt;https://albertlauncher.github.io/installation/&lt;/a&gt; - Albert&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.pling.com/p/1401527/&quot;&gt;https://www.pling.com/p/1401527/&lt;/a&gt; - Cairo Dock&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;h3&gt;Dependency Installs&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install git gnome-shell-extensions chrome-gnome-shell gnome-tweak-tool -y
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;git clone https://github.com/ChrisTitusTech/Linux-MacOS-GNOME.git ~/MacOS
mkdir ~/.themes
mkdir ~/.icons
mv ~/MacOS/themes/* ~/.themes
mv ~/MacOS/icons/* ~/.icons
sudo mv ~/MacOS/walls/* /usr/share/backgrounds/
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Gnome Tweaks&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;gsettings set org.gnome.mutter center-new-windows &apos;true&apos;
gsettings set org.gnome.desktop.wm.preferences button-layout &apos;close,minimize,maximize:&apos;
gsettings set org.gnome.desktop.interface gtk-theme &quot;WhiteSur-dark&quot;
gsettings set org.gnome.desktop.wm.preferences theme &quot;WhiteSur-dark&quot;
gsettings set org.gnome.desktop.interface icon-theme &apos;BigSur&apos;
gsettings set org.gnome.desktop.interface cursor-theme &apos;capitaine-cursors-light&apos;
gsettings set org.gnome.desktop.background picture-uri &apos;file:///usr/share/backgrounds/macOS-BS3.webp&apos;
gsettings get org.gnome.desktop.screensaver picture-uri &apos;file:///usr/share/backgrounds/macOS-BS1.webp&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Albert Search and Cairo Dock&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;curl https://build.opensuse.org/projects/home:manuelschneid3r/public_key | sudo apt-key add -
echo &apos;deb http://download.opensuse.org/repositories/home:/manuelschneid3r/xUbuntu_20.04/ /&apos; | sudo tee /etc/apt/sources.list.d/home:manuelschneid3r.list
sudo wget -nv https://download.opensuse.org/repositories/home:manuelschneid3r/xUbuntu_20.04/Release.key -O &quot;/etc/apt/trusted.gpg.d/home:manuelschneid3r.asc&quot;
sudo apt update
sudo apt install albert cairo-dock cairo-dock-plug-ins -y
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Launch Albert&lt;/li&gt;
&lt;li&gt;Set Hotkey - Meta + F&lt;/li&gt;
&lt;li&gt;Set Theme Arc Dark Blue&lt;/li&gt;
&lt;li&gt;Enable Albert Extensions&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Gnome Extensions&lt;/h3&gt;
&lt;p&gt;Enable Extensions by visiting &lt;a href=&quot;https://extensions.gnome.org/&quot;&gt;https://extensions.gnome.org/&lt;/a&gt; install add-on and reload browser&lt;/p&gt;
&lt;p&gt;Install the Following Extensions&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;User Themes - &lt;a href=&quot;https://extensions.gnome.org/extension/19/user-themes/&quot;&gt;https://extensions.gnome.org/extension/19/user-themes/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Frippery Move Clock - &lt;a href=&quot;https://extensions.gnome.org/extension/2/move-clock/&quot;&gt;https://extensions.gnome.org/extension/2/move-clock/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Dynamic Panel Transparency - &lt;a href=&quot;https://extensions.gnome.org/extension/1011/dynamic-panel-transparency/&quot;&gt;https://extensions.gnome.org/extension/1011/dynamic-panel-transparency/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Panel OSD - &lt;a href=&quot;https://extensions.gnome.org/extension/708/panel-osd/&quot;&gt;https://extensions.gnome.org/extension/708/panel-osd/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Manual Extension Configurations&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Panel OSD - Change Horizontal and Vertical to 98&lt;/li&gt;
&lt;li&gt;Cairo Dock - Set to Startup Applications&lt;/li&gt;
&lt;li&gt;Cairo Dock Themes - Import all gz files to Cairo configure in ~/MacOS/cairo&lt;/li&gt;
&lt;li&gt;Cairo Dock Configure - Turn of Icon effects and animations and hide dock when overlapping windows&lt;/li&gt;
&lt;li&gt;Cairo Dock Launchpad - Add Custom Launchpad Shortcut &lt;code&gt;dbus-send --session --type=method_call --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:&apos;Main.shellDBusService.ShowApplications();&apos;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Disable Ubuntu Dock (Not Needed on PopOS)&lt;/li&gt;
&lt;li&gt;Dynamic Panel Transparency - Background Tab - Max Opacity 100 - Min Opacity 50&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Disable Snaps</title><link>https://christitus.com/disable-snaps/</link><guid isPermaLink="true">https://christitus.com/disable-snaps/</guid><description>&lt;p&gt;This goes over how to Disable Snaps and making sure it doesn&apos;t automatically reinstall.&lt;/p&gt;

&lt;h2&gt;List and Uninstall Snaps&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;snap list # This shows you what snaps are installed
sudo snap remove program # Fill in all snaps listed above
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Purge Snaps and Block Reinstall&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo apt purge snapd
sudo apt-mark hold snapd
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Verify Uninstall&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;apt list --install | grep snap
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Check your Output for any snap packages&lt;/p&gt;
</description><pubDate>Tue, 08 Sep 2020 18:44:58 GMT</pubDate><content:encoded>&lt;p&gt;This goes over how to Disable Snaps and making sure it doesn&apos;t automatically reinstall.&lt;/p&gt;

&lt;h2&gt;List and Uninstall Snaps&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;snap list # This shows you what snaps are installed
sudo snap remove program # Fill in all snaps listed above
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Purge Snaps and Block Reinstall&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo apt purge snapd
sudo apt-mark hold snapd
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Verify Uninstall&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;apt list --install | grep snap
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Check your Output for any snap packages&lt;/p&gt;
</content:encoded></item><item><title>How to Use SSH with Github</title><link>https://christitus.com/ssh-github/</link><guid isPermaLink="true">https://christitus.com/ssh-github/</guid><description>&lt;p&gt;Setting Up SSH Authentication with GitHub for Secure Access with 2FA GitHub Accounts&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/ssh.webp&quot; alt=&quot;ssh&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Creating SSH Keys&lt;/h2&gt;
&lt;p&gt;Type this in to create GitHub Keys for your computer&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ssh-keygen -t rsa -b 4096 -C &quot;your_email@example.com&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Notes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I typically save this in ~/.ssh/github&lt;/li&gt;
&lt;li&gt;You don&apos;t have to put a password if you aren&apos;t worried about security&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Adding the New Key to GitHub and Local SSH-Agent&lt;/h2&gt;
&lt;p&gt;Type the following on the local machine to add your key to the agent.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;eval &quot;$(ssh-agent -s)&quot;
ssh-add ~/.ssh/github
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Copy the contents of &lt;code&gt;~/.ssh/github.pub&lt;/code&gt; to the new key field in GitHub. If you have xclip installed type this &lt;code&gt;cat ~/.ssh/github.pub | xclip -sel clip&lt;/code&gt; to copy the contents.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/github-ssh.webp&quot; alt=&quot;github-pub&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Test GitHub SSH Access&lt;/h2&gt;
&lt;p&gt;Type the following to verify you have completed the setup properly&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ssh -T git@github.com
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;SSH GitHub Clone Syntax and Updating Repositories&lt;/h2&gt;
&lt;p&gt;Here is how to clone new repositories instead of using https://&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone git@github.com:USERNAME/Repo.git
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Update existing repositories to use SSH instead of https&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git remote set-url origin git@github.com:USERNAME/Repo.git
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This is the best way to clone and push updates to repositories if you have 2-Factor enabled on your GitHub account.&lt;/p&gt;
</description><pubDate>Thu, 03 Sep 2020 15:57:46 GMT</pubDate><content:encoded>&lt;p&gt;Setting Up SSH Authentication with GitHub for Secure Access with 2FA GitHub Accounts&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/ssh.webp&quot; alt=&quot;ssh&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Creating SSH Keys&lt;/h2&gt;
&lt;p&gt;Type this in to create GitHub Keys for your computer&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ssh-keygen -t rsa -b 4096 -C &quot;your_email@example.com&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Notes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I typically save this in ~/.ssh/github&lt;/li&gt;
&lt;li&gt;You don&apos;t have to put a password if you aren&apos;t worried about security&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Adding the New Key to GitHub and Local SSH-Agent&lt;/h2&gt;
&lt;p&gt;Type the following on the local machine to add your key to the agent.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;eval &quot;$(ssh-agent -s)&quot;
ssh-add ~/.ssh/github
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Copy the contents of &lt;code&gt;~/.ssh/github.pub&lt;/code&gt; to the new key field in GitHub. If you have xclip installed type this &lt;code&gt;cat ~/.ssh/github.pub | xclip -sel clip&lt;/code&gt; to copy the contents.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/github-ssh.webp&quot; alt=&quot;github-pub&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Test GitHub SSH Access&lt;/h2&gt;
&lt;p&gt;Type the following to verify you have completed the setup properly&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ssh -T git@github.com
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;SSH GitHub Clone Syntax and Updating Repositories&lt;/h2&gt;
&lt;p&gt;Here is how to clone new repositories instead of using https://&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone git@github.com:USERNAME/Repo.git
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Update existing repositories to use SSH instead of https&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git remote set-url origin git@github.com:USERNAME/Repo.git
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This is the best way to clone and push updates to repositories if you have 2-Factor enabled on your GitHub account.&lt;/p&gt;
</content:encoded></item><item><title>Common Computer Issues</title><link>https://christitus.com/common-computer-issues/</link><guid isPermaLink="true">https://christitus.com/common-computer-issues/</guid><description>&lt;p&gt;These are all the issues we discussed on a live stream. I took all the community questions and made this webpage for them.&lt;/p&gt;

&lt;h2&gt;Windows 10 - Automated Tasks&lt;/h2&gt;
&lt;p&gt;Q: How can I make a YouTube video sit there paused on someone&apos;s screen in Windows 10 and instantly start playing aloud upon unlocking the screen/waking from sleep?&lt;/p&gt;
&lt;p&gt;A: Task Scheduler can do all sorts of tasks and you can set the triggers to be on login or at certain times of the day.&lt;/p&gt;
&lt;h2&gt;Linux - Display Issues&lt;/h2&gt;
&lt;p&gt;Solution for Display constantly resetting or getting incorrectly configured&lt;/p&gt;
&lt;p&gt;3 Solutions (All will work)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Xorg Custom Settings
&lt;ul&gt;
&lt;li&gt;When display render is launched it will automatically configure each display to these specification from &lt;code&gt;/etc/X11/xorg.conf.d/10-monitor.conf&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;# /etc/X11/xorg.conf.d/10-monitor.conf
Section &quot;Monitor&quot;
### Monitor Identity - Typically HDMI-0 or DisplayPort-0
    Identifier    &quot;HDMI1&quot; 
    Option        &quot;PreferredMode&quot; &quot;1920x1080&quot;
    Option        &quot;TargetRefresh&quot; &quot;60&quot;

### Positioning the Monitor
## Basic
    Option &quot;LeftOf or RightOf or Above or Below&quot; &quot;DisplayPort-0&quot;    
## Advanced
    Option        &quot;Position&quot; &quot;1680 0&quot; #Note you can always set both to 0 0 to mirror
## Disable a Monitor
     Option        &quot;Disable&quot; &quot;true&quot;
EndSection 
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Autorandr - Automatic monitor settings
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/phillipberndt/autorandr&quot;&gt;https://github.com/phillipberndt/autorandr&lt;/a&gt; - This automatically selects a display configuration based on connected devices&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Xrandr Script
&lt;ul&gt;
&lt;li&gt;Make a custom bash script and set with login manager, cron job, or set in &lt;code&gt;~/.xinitrc&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sample xrandr script:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash
xrandr --output HDMI-1 --off --output HDMI-2 --auto
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: You can use the tool &lt;em&gt;arandr&lt;/em&gt; to grab the proper display script&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Windows/Linux/MacOS - Flashing Images to SD-Card or USB&lt;/h2&gt;
&lt;p&gt;There are so many solutions for this one:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows - Rufus (&lt;a href=&quot;https://rufus.ie&quot;&gt;https://rufus.ie&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Windows/Linux/Mac - Etcher (&lt;a href=&quot;https://www.balena.io/etcher/&quot;&gt;https://www.balena.io/etcher/&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Linux/Mac - &lt;code&gt;dd&lt;/code&gt; terminal command
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;dd if=~/Downloads/image.iso of=/dev/sdx bs=1M&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;if = input file/device | of= output file/device | bs= block size&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Windows - Win32 Disk Imager &lt;a href=&quot;https://sourceforge.net/projects/win32diskimager/&quot;&gt;https://sourceforge.net/projects/win32diskimager/&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;for images that aren&apos;t working or using special media like sd cards&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Linux - Boot Time High for KDE&lt;/h2&gt;
&lt;p&gt;Analyze systemd and figure out why... (&lt;code&gt;systemd-analyze&lt;/code&gt;)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;systemd-analyze blame
             10.667s apt-daily.service
              1.127s apt-daily-upgrade.service
              1.053s dev-mapper-neon\x2d\x2dvg\x2droot.device
               793ms lvm2-pvscan@8:3.service
               622ms boot.mount
               613ms snapd.service
               267ms minidlna.service
               217ms NetworkManager.service
               200ms nvidia-persistenced.service
               196ms upower.service
               189ms systemd-logind.service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: Also try &lt;code&gt;systemd-analyze critical-chain&lt;/code&gt; or &lt;code&gt;systemd-analyze plot &amp;gt; boot.svg&lt;/code&gt; as this shows the chain of the startup&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Linux - USB Port stops working&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Check to see if device shows on &lt;code&gt;lsusb&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Check dmesg for errors &lt;code&gt;dmesg | grep -i USB&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;usb-devices&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Disable Auto Suspend
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cat /sys/module/usbcore/parameters/autosuspend&lt;/code&gt; result should be &lt;code&gt;2&lt;/code&gt; which means enabled&lt;/li&gt;
&lt;li&gt;Modify Grub or bootloader to disable auto suspend (for grub modify &lt;code&gt;/etc/default/grub&lt;/code&gt;)
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GRUB_CMDLINE_LINUX_DEFAULT=&quot;quiet splash usbcore.autosuspend=-1&quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sudo update-grub&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Verify by running cat command again&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Linux - Fixing No Display Drivers or Black Screen or Missing Desktop Environment&lt;/h2&gt;
&lt;p&gt;Ctrl + Alt + F1 or F2&lt;/p&gt;
&lt;p&gt;This drops you to TTY and no display drivers are needed. From this console you can fix things by installing display drivers or missing packages you need.&lt;/p&gt;
&lt;h2&gt;All Computers - Can&apos;t Get into BIOS&lt;/h2&gt;
&lt;p&gt;Open it up and remove the CMOS Battery. Press the power button without it plugged in to fully discharge. Then wait 60 seconds and put CMOS battery back in.&lt;/p&gt;
&lt;h2&gt;General PC Maintenance - Updates &amp;amp; Shuting them down&lt;/h2&gt;
&lt;p&gt;Updates should be done weekly with security only one applied. Feature Updates should be delayed at least 1 year. This is universal across all operating systems. I also recommend shutting down your PC every day and not using suspend/hibernate. If you want to schedule the updates you can leave your PC once a week overnight.&lt;/p&gt;
&lt;h2&gt;Windows/Linux - Time Maintenance&lt;/h2&gt;
&lt;p&gt;You should use UTC time everywhere. Windows uses local time and it is terrible. Change this with a registry setting&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Disable Internet Time on Windows 10
&lt;ul&gt;
&lt;li&gt;Head to Settings &amp;gt; Time &amp;amp; language and disable “Set time automatically”.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Modify Windows Registry to use UTC
&lt;ul&gt;
&lt;li&gt;Start - Run - &lt;code&gt;regedit&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Navigate to &lt;code&gt;HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Create new DWORD (32-bit) Value &lt;code&gt;RealTimeIsUniversal&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Set Value to &lt;code&gt;1&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;MacOS - OpenCore and Safety&lt;/h2&gt;
&lt;p&gt;Opencore is a completely open project and is safe. Here is the github of OpenCore where they expose all their code for review &lt;a href=&quot;https://github.com/acidanthera/OpenCorePkg&quot;&gt;https://github.com/acidanthera/OpenCorePkg&lt;/a&gt; and the complete install guide is here &lt;a href=&quot;https://dortania.github.io/OpenCore-Install-Guide/&quot;&gt;https://dortania.github.io/OpenCore-Install-Guide/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Linux Battery Life and Laptop Heat&lt;/h2&gt;
&lt;p&gt;There are a variety of packages you can use, but highly suggest two:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;tlp&lt;/li&gt;
&lt;li&gt;xfce4-power-manager&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;TLP will throttle your CPU and use less power and XFCE power manager will take care of brightness, suspend, and other power saving features as a standalone package even if you aren&apos;t using XFCE as a desktop environment.&lt;/p&gt;
&lt;h2&gt;MacOS - OpenCore Audio Issues&lt;/h2&gt;
&lt;p&gt;This typically comes from using two codecs or the wrong one. &lt;em&gt;Use ONLY ONE!&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AppleALC - &lt;a href=&quot;https://github.com/acidanthera/AppleALC&quot;&gt;https://github.com/acidanthera/AppleALC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;VoodooHDA - &lt;a href=&quot;https://sourceforge.net/projects/voodoohda/&quot;&gt;https://sourceforge.net/projects/voodoohda/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Linux - App won&apos;t launch it just disappears&lt;/h2&gt;
&lt;p&gt;Run Application in Terminal and look at the errors. Chances are it is missing a dependency.&lt;/p&gt;
&lt;h2&gt;Windows - &quot;these settings are managed by your organization&quot;&lt;/h2&gt;
&lt;p&gt;Chances are you ran a powershell script (maybe mine...) and you are now locked out of changing the lock screen on your Windows Box. Run this command in powershell to gain control of your lock screen again:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Remove-ItemProperty -Path &quot;HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization&quot; -Name &quot;NoLockScreen&quot; -ErrorAction SilentlyContinue
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;OR&lt;/p&gt;
&lt;p&gt;You can also open up Start - Run - &lt;code&gt;gpedit.msc&lt;/code&gt; and then go to All Settings and look for enabled features and set them to &lt;em&gt;Not Configured&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Windows - Reinstall OneDrive&lt;/h2&gt;
&lt;p&gt;Open Up PowerShell Admin (Right Click Start Button)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;%systemroot%\SysWOW64\OneDriveSetup.exe
&lt;/code&gt;&lt;/pre&gt;
</description><pubDate>Fri, 28 Aug 2020 10:42:25 GMT</pubDate><content:encoded>&lt;p&gt;These are all the issues we discussed on a live stream. I took all the community questions and made this webpage for them.&lt;/p&gt;

&lt;h2&gt;Windows 10 - Automated Tasks&lt;/h2&gt;
&lt;p&gt;Q: How can I make a YouTube video sit there paused on someone&apos;s screen in Windows 10 and instantly start playing aloud upon unlocking the screen/waking from sleep?&lt;/p&gt;
&lt;p&gt;A: Task Scheduler can do all sorts of tasks and you can set the triggers to be on login or at certain times of the day.&lt;/p&gt;
&lt;h2&gt;Linux - Display Issues&lt;/h2&gt;
&lt;p&gt;Solution for Display constantly resetting or getting incorrectly configured&lt;/p&gt;
&lt;p&gt;3 Solutions (All will work)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Xorg Custom Settings
&lt;ul&gt;
&lt;li&gt;When display render is launched it will automatically configure each display to these specification from &lt;code&gt;/etc/X11/xorg.conf.d/10-monitor.conf&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;# /etc/X11/xorg.conf.d/10-monitor.conf
Section &quot;Monitor&quot;
### Monitor Identity - Typically HDMI-0 or DisplayPort-0
    Identifier    &quot;HDMI1&quot; 
    Option        &quot;PreferredMode&quot; &quot;1920x1080&quot;
    Option        &quot;TargetRefresh&quot; &quot;60&quot;

### Positioning the Monitor
## Basic
    Option &quot;LeftOf or RightOf or Above or Below&quot; &quot;DisplayPort-0&quot;    
## Advanced
    Option        &quot;Position&quot; &quot;1680 0&quot; #Note you can always set both to 0 0 to mirror
## Disable a Monitor
     Option        &quot;Disable&quot; &quot;true&quot;
EndSection 
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Autorandr - Automatic monitor settings
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/phillipberndt/autorandr&quot;&gt;https://github.com/phillipberndt/autorandr&lt;/a&gt; - This automatically selects a display configuration based on connected devices&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Xrandr Script
&lt;ul&gt;
&lt;li&gt;Make a custom bash script and set with login manager, cron job, or set in &lt;code&gt;~/.xinitrc&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sample xrandr script:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash
xrandr --output HDMI-1 --off --output HDMI-2 --auto
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: You can use the tool &lt;em&gt;arandr&lt;/em&gt; to grab the proper display script&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Windows/Linux/MacOS - Flashing Images to SD-Card or USB&lt;/h2&gt;
&lt;p&gt;There are so many solutions for this one:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows - Rufus (&lt;a href=&quot;https://rufus.ie&quot;&gt;https://rufus.ie&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Windows/Linux/Mac - Etcher (&lt;a href=&quot;https://www.balena.io/etcher/&quot;&gt;https://www.balena.io/etcher/&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Linux/Mac - &lt;code&gt;dd&lt;/code&gt; terminal command
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;dd if=~/Downloads/image.iso of=/dev/sdx bs=1M&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;if = input file/device | of= output file/device | bs= block size&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Windows - Win32 Disk Imager &lt;a href=&quot;https://sourceforge.net/projects/win32diskimager/&quot;&gt;https://sourceforge.net/projects/win32diskimager/&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;for images that aren&apos;t working or using special media like sd cards&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Linux - Boot Time High for KDE&lt;/h2&gt;
&lt;p&gt;Analyze systemd and figure out why... (&lt;code&gt;systemd-analyze&lt;/code&gt;)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;systemd-analyze blame
             10.667s apt-daily.service
              1.127s apt-daily-upgrade.service
              1.053s dev-mapper-neon\x2d\x2dvg\x2droot.device
               793ms lvm2-pvscan@8:3.service
               622ms boot.mount
               613ms snapd.service
               267ms minidlna.service
               217ms NetworkManager.service
               200ms nvidia-persistenced.service
               196ms upower.service
               189ms systemd-logind.service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: Also try &lt;code&gt;systemd-analyze critical-chain&lt;/code&gt; or &lt;code&gt;systemd-analyze plot &amp;gt; boot.svg&lt;/code&gt; as this shows the chain of the startup&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Linux - USB Port stops working&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Check to see if device shows on &lt;code&gt;lsusb&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Check dmesg for errors &lt;code&gt;dmesg | grep -i USB&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;usb-devices&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Disable Auto Suspend
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cat /sys/module/usbcore/parameters/autosuspend&lt;/code&gt; result should be &lt;code&gt;2&lt;/code&gt; which means enabled&lt;/li&gt;
&lt;li&gt;Modify Grub or bootloader to disable auto suspend (for grub modify &lt;code&gt;/etc/default/grub&lt;/code&gt;)
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GRUB_CMDLINE_LINUX_DEFAULT=&quot;quiet splash usbcore.autosuspend=-1&quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sudo update-grub&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Verify by running cat command again&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Linux - Fixing No Display Drivers or Black Screen or Missing Desktop Environment&lt;/h2&gt;
&lt;p&gt;Ctrl + Alt + F1 or F2&lt;/p&gt;
&lt;p&gt;This drops you to TTY and no display drivers are needed. From this console you can fix things by installing display drivers or missing packages you need.&lt;/p&gt;
&lt;h2&gt;All Computers - Can&apos;t Get into BIOS&lt;/h2&gt;
&lt;p&gt;Open it up and remove the CMOS Battery. Press the power button without it plugged in to fully discharge. Then wait 60 seconds and put CMOS battery back in.&lt;/p&gt;
&lt;h2&gt;General PC Maintenance - Updates &amp;amp; Shuting them down&lt;/h2&gt;
&lt;p&gt;Updates should be done weekly with security only one applied. Feature Updates should be delayed at least 1 year. This is universal across all operating systems. I also recommend shutting down your PC every day and not using suspend/hibernate. If you want to schedule the updates you can leave your PC once a week overnight.&lt;/p&gt;
&lt;h2&gt;Windows/Linux - Time Maintenance&lt;/h2&gt;
&lt;p&gt;You should use UTC time everywhere. Windows uses local time and it is terrible. Change this with a registry setting&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Disable Internet Time on Windows 10
&lt;ul&gt;
&lt;li&gt;Head to Settings &amp;gt; Time &amp;amp; language and disable “Set time automatically”.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Modify Windows Registry to use UTC
&lt;ul&gt;
&lt;li&gt;Start - Run - &lt;code&gt;regedit&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Navigate to &lt;code&gt;HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Create new DWORD (32-bit) Value &lt;code&gt;RealTimeIsUniversal&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Set Value to &lt;code&gt;1&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;MacOS - OpenCore and Safety&lt;/h2&gt;
&lt;p&gt;Opencore is a completely open project and is safe. Here is the github of OpenCore where they expose all their code for review &lt;a href=&quot;https://github.com/acidanthera/OpenCorePkg&quot;&gt;https://github.com/acidanthera/OpenCorePkg&lt;/a&gt; and the complete install guide is here &lt;a href=&quot;https://dortania.github.io/OpenCore-Install-Guide/&quot;&gt;https://dortania.github.io/OpenCore-Install-Guide/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Linux Battery Life and Laptop Heat&lt;/h2&gt;
&lt;p&gt;There are a variety of packages you can use, but highly suggest two:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;tlp&lt;/li&gt;
&lt;li&gt;xfce4-power-manager&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;TLP will throttle your CPU and use less power and XFCE power manager will take care of brightness, suspend, and other power saving features as a standalone package even if you aren&apos;t using XFCE as a desktop environment.&lt;/p&gt;
&lt;h2&gt;MacOS - OpenCore Audio Issues&lt;/h2&gt;
&lt;p&gt;This typically comes from using two codecs or the wrong one. &lt;em&gt;Use ONLY ONE!&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AppleALC - &lt;a href=&quot;https://github.com/acidanthera/AppleALC&quot;&gt;https://github.com/acidanthera/AppleALC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;VoodooHDA - &lt;a href=&quot;https://sourceforge.net/projects/voodoohda/&quot;&gt;https://sourceforge.net/projects/voodoohda/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Linux - App won&apos;t launch it just disappears&lt;/h2&gt;
&lt;p&gt;Run Application in Terminal and look at the errors. Chances are it is missing a dependency.&lt;/p&gt;
&lt;h2&gt;Windows - &quot;these settings are managed by your organization&quot;&lt;/h2&gt;
&lt;p&gt;Chances are you ran a powershell script (maybe mine...) and you are now locked out of changing the lock screen on your Windows Box. Run this command in powershell to gain control of your lock screen again:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Remove-ItemProperty -Path &quot;HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization&quot; -Name &quot;NoLockScreen&quot; -ErrorAction SilentlyContinue
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;OR&lt;/p&gt;
&lt;p&gt;You can also open up Start - Run - &lt;code&gt;gpedit.msc&lt;/code&gt; and then go to All Settings and look for enabled features and set them to &lt;em&gt;Not Configured&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Windows - Reinstall OneDrive&lt;/h2&gt;
&lt;p&gt;Open Up PowerShell Admin (Right Click Start Button)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;%systemroot%\SysWOW64\OneDriveSetup.exe
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Fix Ticwatch Lag</title><link>https://christitus.com/fix-ticwatch-lag/</link><guid isPermaLink="true">https://christitus.com/fix-ticwatch-lag/</guid><description>&lt;p&gt;Lets fix the lag on the TicWatch. There is tons of bloat that needs to be removed to get a responsive interface.&lt;/p&gt;

&lt;h2&gt;Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Install ADB Tools&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows - &lt;a href=&quot;https://dl.google.com/android/repository/platform-tools-latest-windows.zip&quot;&gt;https://dl.google.com/android/repository/platform-tools-latest-windows.zip&lt;/a&gt; or &lt;code&gt;choco install adb&lt;/code&gt; &lt;em&gt;Chocolatey Users Only&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Linux - &lt;a href=&quot;https://dl.google.com/android/repository/platform-tools-latest-linux.zip&quot;&gt;https://dl.google.com/android/repository/platform-tools-latest-linux.zip&lt;/a&gt; or &lt;code&gt;sudo apt install adb&lt;/code&gt; Debian or &lt;code&gt;yay -S adb&lt;/code&gt; Arch&lt;/li&gt;
&lt;li&gt;MacOS - &lt;a href=&quot;https://dl.google.com/android/repository/platform-tools-latest-darwin.zip&quot;&gt;https://dl.google.com/android/repository/platform-tools-latest-darwin.zip&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enable Developer Tools on TicWatch&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Under settings - Click About&lt;/li&gt;
&lt;li&gt;Click the Build number 7 times to enable developer tools&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enable Wi-fi Debugging in Developer Tools&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Under settings - Click Developer Tools
&lt;ul&gt;
&lt;li&gt;Enable ADB Debugging&lt;/li&gt;
&lt;li&gt;Enable ADB Debugging Wi-fi&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Note: Ensure both the Watch and Computer are on the same Wifi network&lt;/h3&gt;
&lt;h2&gt;Removing TicWatch Bloat&lt;/h2&gt;
&lt;p&gt;This removes all the mobvoi crap that is junking up your watch.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Connect to your watch
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;adb connect IP_ADDRESS:5555&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Check Devices
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;adb devices&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Verify you see your watch!&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Run the following commands to remove all the bloat:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;adb shell
pm uninstall -k --user 0 com.mobvoi.wear.account.aw
pm uninstall -k --user 0 com.mobvoi.companion.aw
pm uninstall -k --user 0 com.mobvoi.ticwatch.cmodel.c2.male
pm uninstall -k --user 0 com.mobvoi.wear.appsservice
pm uninstall -k --user 0 com.mobvoi.wear.fitness.aw
pm uninstall -k --user 0 com.mobvoi.wear.health.aw
pm uninstall -k --user 0 com.mobvoi.wear.privacy.aw
pm uninstall -k --user 0 com.mobvoi.wear.system.aw
pm uninstall -k --user 0 com.mobvoi.wear.watchface.aw
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Screenshot&lt;br /&gt;
&lt;img src=&quot;/images/2020/ticwatch.webp&quot; alt=&quot;ticwatch&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Using Google Fit and other WearOS Apps&lt;/h2&gt;
&lt;p&gt;Now with all the garbage gone you can use all the other apps that are well maintained and optimized. You will notice that your watch is no longer lagging and it runs just like any other good wearable.&lt;/p&gt;
</description><pubDate>Thu, 27 Aug 2020 14:49:33 GMT</pubDate><content:encoded>&lt;p&gt;Lets fix the lag on the TicWatch. There is tons of bloat that needs to be removed to get a responsive interface.&lt;/p&gt;

&lt;h2&gt;Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Install ADB Tools&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows - &lt;a href=&quot;https://dl.google.com/android/repository/platform-tools-latest-windows.zip&quot;&gt;https://dl.google.com/android/repository/platform-tools-latest-windows.zip&lt;/a&gt; or &lt;code&gt;choco install adb&lt;/code&gt; &lt;em&gt;Chocolatey Users Only&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Linux - &lt;a href=&quot;https://dl.google.com/android/repository/platform-tools-latest-linux.zip&quot;&gt;https://dl.google.com/android/repository/platform-tools-latest-linux.zip&lt;/a&gt; or &lt;code&gt;sudo apt install adb&lt;/code&gt; Debian or &lt;code&gt;yay -S adb&lt;/code&gt; Arch&lt;/li&gt;
&lt;li&gt;MacOS - &lt;a href=&quot;https://dl.google.com/android/repository/platform-tools-latest-darwin.zip&quot;&gt;https://dl.google.com/android/repository/platform-tools-latest-darwin.zip&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enable Developer Tools on TicWatch&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Under settings - Click About&lt;/li&gt;
&lt;li&gt;Click the Build number 7 times to enable developer tools&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enable Wi-fi Debugging in Developer Tools&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Under settings - Click Developer Tools
&lt;ul&gt;
&lt;li&gt;Enable ADB Debugging&lt;/li&gt;
&lt;li&gt;Enable ADB Debugging Wi-fi&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Note: Ensure both the Watch and Computer are on the same Wifi network&lt;/h3&gt;
&lt;h2&gt;Removing TicWatch Bloat&lt;/h2&gt;
&lt;p&gt;This removes all the mobvoi crap that is junking up your watch.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Connect to your watch
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;adb connect IP_ADDRESS:5555&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Check Devices
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;adb devices&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Verify you see your watch!&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Run the following commands to remove all the bloat:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;adb shell
pm uninstall -k --user 0 com.mobvoi.wear.account.aw
pm uninstall -k --user 0 com.mobvoi.companion.aw
pm uninstall -k --user 0 com.mobvoi.ticwatch.cmodel.c2.male
pm uninstall -k --user 0 com.mobvoi.wear.appsservice
pm uninstall -k --user 0 com.mobvoi.wear.fitness.aw
pm uninstall -k --user 0 com.mobvoi.wear.health.aw
pm uninstall -k --user 0 com.mobvoi.wear.privacy.aw
pm uninstall -k --user 0 com.mobvoi.wear.system.aw
pm uninstall -k --user 0 com.mobvoi.wear.watchface.aw
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Screenshot&lt;br /&gt;
&lt;img src=&quot;/images/2020/ticwatch.webp&quot; alt=&quot;ticwatch&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Using Google Fit and other WearOS Apps&lt;/h2&gt;
&lt;p&gt;Now with all the garbage gone you can use all the other apps that are well maintained and optimized. You will notice that your watch is no longer lagging and it runs just like any other good wearable.&lt;/p&gt;
</content:encoded></item><item><title>Geforce Now Linux</title><link>https://christitus.com/geforce-now-linux/</link><guid isPermaLink="true">https://christitus.com/geforce-now-linux/</guid><description>&lt;p&gt;You can now use Geforce Now on your Linux machine with this quick little trick.&lt;/p&gt;

&lt;h2&gt;Install User Agent Switcher Extension&lt;/h2&gt;
&lt;p&gt;Install the &lt;a href=&quot;https://chrome.google.com/webstore/detail/user-agent-switcher-for-c/djflhoibgkdhkhhcedjiklpkjnoahfmg?hl=en-US&quot;&gt;User Agent Switcher extension&lt;/a&gt; for any Chromium-based browser. I used this on Brave and it worked perfectly.&lt;/p&gt;
&lt;p&gt;Install this Extension and launch options!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/geforcenow/options.webp&quot; alt=&quot;options.webp&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Add Chrome OS User Agent&lt;/h2&gt;
&lt;p&gt;Add the User Agent String:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Mozilla/5.0 (X11; CrOS x86_64 13099.85.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.110 Safari/537.36
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/geforcenow/agentid.webp&quot; alt=&quot;agentid.webp&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Switch Agent and Launch&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Click on the Extension icon and select COS or whatever flag you made.&lt;/li&gt;
&lt;li&gt;Then Launch &lt;a href=&quot;https://play.geforcenow.com/&quot;&gt;https://play.geforcenow.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description><pubDate>Fri, 21 Aug 2020 19:45:41 GMT</pubDate><content:encoded>&lt;p&gt;You can now use Geforce Now on your Linux machine with this quick little trick.&lt;/p&gt;

&lt;h2&gt;Install User Agent Switcher Extension&lt;/h2&gt;
&lt;p&gt;Install the &lt;a href=&quot;https://chrome.google.com/webstore/detail/user-agent-switcher-for-c/djflhoibgkdhkhhcedjiklpkjnoahfmg?hl=en-US&quot;&gt;User Agent Switcher extension&lt;/a&gt; for any Chromium-based browser. I used this on Brave and it worked perfectly.&lt;/p&gt;
&lt;p&gt;Install this Extension and launch options!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/geforcenow/options.webp&quot; alt=&quot;options.webp&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Add Chrome OS User Agent&lt;/h2&gt;
&lt;p&gt;Add the User Agent String:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Mozilla/5.0 (X11; CrOS x86_64 13099.85.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.110 Safari/537.36
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/geforcenow/agentid.webp&quot; alt=&quot;agentid.webp&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Switch Agent and Launch&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Click on the Extension icon and select COS or whatever flag you made.&lt;/li&gt;
&lt;li&gt;Then Launch &lt;a href=&quot;https://play.geforcenow.com/&quot;&gt;https://play.geforcenow.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Secure Linux</title><link>https://christitus.com/secure-linux/</link><guid isPermaLink="true">https://christitus.com/secure-linux/</guid><description>&lt;p&gt;This article covers basic security and settings I do with every Linux installation.&lt;/p&gt;

&lt;h2&gt;Check for Drovorub Malware&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/drovorub/drovorub.webp&quot; alt=&quot;drovorub&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;touch testfile
echo “ASDFZXCV:hf:testfile” &amp;gt; /dev/zero
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;If the testfile disappears... you are infected&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Check for unsigned kernel modules&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;for mod in $(lsmod | tail -n +2 | cut -d&apos; &apos; -f1); do modinfo ${mod} | grep -q &quot;signature&quot; || echo &quot;no signature for module: ${mod}&quot; ; done
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;If you see vbox or nvidia modules, these are for VirtualBox and NVidia Drivers respectively&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Secure Boot&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/drovorub/secure-boot.webp&quot; alt=&quot;secure-boot&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Secure Boot forces checks for kernel module signatures and is good not only for blocking Drovorub-style malware, but also prevents Evil Maid attacks as well. However, it can be complex and also make using bootable USB drives difficult. &lt;em&gt;Note: UEFI Boot Required... No Legacy/CSM.&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Easy Way to Install&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo mokutil --enable-validation # Remember the password!
sudo mokutil --sb-state # Checks if Secure Boot is enabled
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;*Note: I used the enable validation on Debian based systems and it worked right out of the box&lt;/p&gt;
&lt;h3&gt;Hard Way to Install&lt;/h3&gt;
&lt;p&gt;Hard way involves signing packages that aren&apos;t stock which you might need on your system or if you dual boot. Check out the following guide from the ArchWiki: &lt;a href=&quot;https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface/Secure_Boot&quot;&gt;https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface/Secure_Boot&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Security Settings for All Linux Installs&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/github.webp&quot; alt=&quot;github&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I created a github script to make this easier but I wanted to break down what this script does. Secure-Linux Project &lt;a href=&quot;https://github.com/ChrisTitusTech/secure-linux/blob/master/secure.sh&quot;&gt;https://github.com/ChrisTitusTech/secure-linux/blob/master/secure.sh&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Before running this script install ufw and fail2ban packages&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This script is broken into 3 parts: ufw, sysctl.conf modifications, and fail2ban. Ufw stands for Uncomplicated Firewall and is fantastic for adding to every install. This script opens http and https, while limiting SSH to only a couple connections per second. The sysctl modifications helps harden your system by preventing spoofing and man in the middle attacks. Fail2ban is the final piece and possibly my favorite. This package see any traffic that is failing authentication attempts repeatedly or is malicious in nature (DDoS) and records the IP then blocks it for a period of time.&lt;/p&gt;
&lt;p&gt;Other things I&apos;d recommend not mentioned... SELinux! Look it up because it is amazing. You can also use this on debian if you&apos;d like, but a smaller package called AppArmor is generally used on those types of distributions.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This is not a all inclusive guide on securing your Linux system, but it is a good starting point that I do on pretty much every computer. I highly recommend you take these instructions and expand them to suit your needs.&lt;/p&gt;
</description><pubDate>Tue, 18 Aug 2020 18:02:25 GMT</pubDate><content:encoded>&lt;p&gt;This article covers basic security and settings I do with every Linux installation.&lt;/p&gt;

&lt;h2&gt;Check for Drovorub Malware&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/drovorub/drovorub.webp&quot; alt=&quot;drovorub&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;touch testfile
echo “ASDFZXCV:hf:testfile” &amp;gt; /dev/zero
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;If the testfile disappears... you are infected&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Check for unsigned kernel modules&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;for mod in $(lsmod | tail -n +2 | cut -d&apos; &apos; -f1); do modinfo ${mod} | grep -q &quot;signature&quot; || echo &quot;no signature for module: ${mod}&quot; ; done
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;If you see vbox or nvidia modules, these are for VirtualBox and NVidia Drivers respectively&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Secure Boot&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/drovorub/secure-boot.webp&quot; alt=&quot;secure-boot&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Secure Boot forces checks for kernel module signatures and is good not only for blocking Drovorub-style malware, but also prevents Evil Maid attacks as well. However, it can be complex and also make using bootable USB drives difficult. &lt;em&gt;Note: UEFI Boot Required... No Legacy/CSM.&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Easy Way to Install&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo mokutil --enable-validation # Remember the password!
sudo mokutil --sb-state # Checks if Secure Boot is enabled
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;*Note: I used the enable validation on Debian based systems and it worked right out of the box&lt;/p&gt;
&lt;h3&gt;Hard Way to Install&lt;/h3&gt;
&lt;p&gt;Hard way involves signing packages that aren&apos;t stock which you might need on your system or if you dual boot. Check out the following guide from the ArchWiki: &lt;a href=&quot;https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface/Secure_Boot&quot;&gt;https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface/Secure_Boot&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Security Settings for All Linux Installs&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/github.webp&quot; alt=&quot;github&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I created a github script to make this easier but I wanted to break down what this script does. Secure-Linux Project &lt;a href=&quot;https://github.com/ChrisTitusTech/secure-linux/blob/master/secure.sh&quot;&gt;https://github.com/ChrisTitusTech/secure-linux/blob/master/secure.sh&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Before running this script install ufw and fail2ban packages&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This script is broken into 3 parts: ufw, sysctl.conf modifications, and fail2ban. Ufw stands for Uncomplicated Firewall and is fantastic for adding to every install. This script opens http and https, while limiting SSH to only a couple connections per second. The sysctl modifications helps harden your system by preventing spoofing and man in the middle attacks. Fail2ban is the final piece and possibly my favorite. This package see any traffic that is failing authentication attempts repeatedly or is malicious in nature (DDoS) and records the IP then blocks it for a period of time.&lt;/p&gt;
&lt;p&gt;Other things I&apos;d recommend not mentioned... SELinux! Look it up because it is amazing. You can also use this on debian if you&apos;d like, but a smaller package called AppArmor is generally used on those types of distributions.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This is not a all inclusive guide on securing your Linux system, but it is a good starting point that I do on pretty much every computer. I highly recommend you take these instructions and expand them to suit your needs.&lt;/p&gt;
</content:encoded></item><item><title>Windows 10 Scripts</title><link>https://christitus.com/windows-10-scripts/</link><guid isPermaLink="true">https://christitus.com/windows-10-scripts/</guid><description>&lt;p&gt;Three Windows 10 Scripts&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/onecommand.webp&quot; alt=&quot;OneCommand&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Regular (No OneDrive, Indexing, and Defender)&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;powershell -nop -c &quot;iex(New-Object Net.WebClient).DownloadString(&apos;https://git.io/JJ8R4&apos;)&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h2&gt;Minimal (Only Targets Bloatware/Telemetry)&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;powershell -nop -c &quot;iex(New-Object Net.WebClient).DownloadString(&apos;https://git.io/JJ5qc&apos;)&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h2&gt;LTSC Style Debloat&lt;/h2&gt;
&lt;p&gt;(&lt;em&gt;WARNING: WILL UNINSTALL LOTS OF STUFF&lt;/em&gt;)&lt;br /&gt;
The old LTSC debloat script has been retired. Use &lt;a href=&quot;https://github.com/ChrisTitusTech/winutil&quot;&gt;WinUtil&lt;/a&gt; for the current Windows utility.&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/2R28u7o9mls&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 14 Aug 2020 16:43:17 GMT</pubDate><content:encoded>&lt;p&gt;Three Windows 10 Scripts&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/onecommand.webp&quot; alt=&quot;OneCommand&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Regular (No OneDrive, Indexing, and Defender)&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;powershell -nop -c &quot;iex(New-Object Net.WebClient).DownloadString(&apos;https://git.io/JJ8R4&apos;)&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h2&gt;Minimal (Only Targets Bloatware/Telemetry)&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;powershell -nop -c &quot;iex(New-Object Net.WebClient).DownloadString(&apos;https://git.io/JJ5qc&apos;)&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h2&gt;LTSC Style Debloat&lt;/h2&gt;
&lt;p&gt;(&lt;em&gt;WARNING: WILL UNINSTALL LOTS OF STUFF&lt;/em&gt;)&lt;br /&gt;
The old LTSC debloat script has been retired. Use &lt;a href=&quot;https://github.com/ChrisTitusTech/winutil&quot;&gt;WinUtil&lt;/a&gt; for the current Windows utility.&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/2R28u7o9mls&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Raspberry Pi Laptop</title><link>https://christitus.com/raspberry-pi-laptop/</link><guid isPermaLink="true">https://christitus.com/raspberry-pi-laptop/</guid><description>&lt;p&gt;This post goes over the CrowPi 2 Laptop. This is a modular laptop for the raspberry pi that is simply amazing and showcases all that you can do with the pi.&lt;/p&gt;

&lt;h2&gt;Using Elecrow CrowPi Image&lt;/h2&gt;
&lt;p&gt;The original custom Raspbian image that CrowPi used is no longer available from Elecrow.&lt;/p&gt;
&lt;h2&gt;Programming Lessons&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/crowpi/learning.webp&quot; alt=&quot;learning&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The interface for learning both Python and Scratch operate portions of the CrowPi such as making a sound or turning on one of the LEDs. While you can load the CrowPi 2 image on regular pi&apos;s without the laptop a lot of lessons would not be meaningful. That said the Minecraft section was fantastic no matter if you were using the CrowPi or not.&lt;/p&gt;
&lt;p&gt;Other interfaces such as Arduino or Microbit do require that component which isn&apos;t included. Since both these products can operating pretty much anything you can think up in the real world, it makes sense that you&apos;d want to purchase these parts separately as they will vary widely from project to project. I mentioned in my YouTube I wanted to do automated door locks in a future project which I&apos;d use Arduino parts to accomplish.&lt;/p&gt;
&lt;p&gt;As far as starting to learn and understand python, I thought this wasn&apos;t the best starting spot. If you or your student has never touched or seen python, I&apos;d highly recommend intro lessons from &lt;a href=&quot;https://codecombat.com/&quot;&gt;https://codecombat.com/&lt;/a&gt; which are free and a great way to get your feet wet with Python before trying something like CrowPi 2 Python lessons.&lt;/p&gt;
&lt;h2&gt;Retro Gaming&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/crowpi/retro.webp&quot; alt=&quot;retro&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The retro gaming aspect is something that is very familiar to the pi. I went ahead and did a custom RetroPie install only compiling SNES with Emulation Station and put that directly on the crow pi. If I were going to play a LOT of games on this, I&apos;d highly recommend using a dedicated SD card for Retro pi so you can get maximum performance as running the crow pi desktop and applications along with the emulators will take away from some of the performance when emulating newer hardware like N64 / PS1 games. However, If you are just doing old school games like NES and SNES you won&apos;t need to. The one thing I noticed was that it wasn&apos;t already integrated and if you aren&apos;t already familiar with RetroPi this can be a challenging thing to add if you don&apos;t know Linux.&lt;/p&gt;
&lt;p&gt;Learn more about RetroPie here: &lt;a href=&quot;https://retropie.org.uk/&quot;&gt;https://retropie.org.uk/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Overall Impressions&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/crowpi/crowpi2.webp&quot; alt=&quot;crowpi2&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I love this laptop and am looking forward to making some lesson plans for the upcoming school year to teach my kids about it. This is the perfect product to experiment and learn about a variety of things in technology. Ever since the Raspberry Pi came out, I have been looking for this type of laptop to fill this need of showcasing all that the pi is capable of and the Crow Pi 2 exceeded all my expectations.&lt;/p&gt;
&lt;p&gt;Learn more about the CrowPi 2 here: &lt;a href=&quot;https://www.kickstarter.com/projects/elecrow/crowpi2-steam-education-platformand-raspberry-pi-laptop&quot;&gt;Kickstarter Page&lt;/a&gt; and &lt;a href=&quot;https://www.elecrow.com/development-kit.html&quot;&gt;Official Site&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/uZmiWQbOBDw&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 12 Aug 2020 15:19:20 GMT</pubDate><content:encoded>&lt;p&gt;This post goes over the CrowPi 2 Laptop. This is a modular laptop for the raspberry pi that is simply amazing and showcases all that you can do with the pi.&lt;/p&gt;

&lt;h2&gt;Using Elecrow CrowPi Image&lt;/h2&gt;
&lt;p&gt;The original custom Raspbian image that CrowPi used is no longer available from Elecrow.&lt;/p&gt;
&lt;h2&gt;Programming Lessons&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/crowpi/learning.webp&quot; alt=&quot;learning&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The interface for learning both Python and Scratch operate portions of the CrowPi such as making a sound or turning on one of the LEDs. While you can load the CrowPi 2 image on regular pi&apos;s without the laptop a lot of lessons would not be meaningful. That said the Minecraft section was fantastic no matter if you were using the CrowPi or not.&lt;/p&gt;
&lt;p&gt;Other interfaces such as Arduino or Microbit do require that component which isn&apos;t included. Since both these products can operating pretty much anything you can think up in the real world, it makes sense that you&apos;d want to purchase these parts separately as they will vary widely from project to project. I mentioned in my YouTube I wanted to do automated door locks in a future project which I&apos;d use Arduino parts to accomplish.&lt;/p&gt;
&lt;p&gt;As far as starting to learn and understand python, I thought this wasn&apos;t the best starting spot. If you or your student has never touched or seen python, I&apos;d highly recommend intro lessons from &lt;a href=&quot;https://codecombat.com/&quot;&gt;https://codecombat.com/&lt;/a&gt; which are free and a great way to get your feet wet with Python before trying something like CrowPi 2 Python lessons.&lt;/p&gt;
&lt;h2&gt;Retro Gaming&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/crowpi/retro.webp&quot; alt=&quot;retro&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The retro gaming aspect is something that is very familiar to the pi. I went ahead and did a custom RetroPie install only compiling SNES with Emulation Station and put that directly on the crow pi. If I were going to play a LOT of games on this, I&apos;d highly recommend using a dedicated SD card for Retro pi so you can get maximum performance as running the crow pi desktop and applications along with the emulators will take away from some of the performance when emulating newer hardware like N64 / PS1 games. However, If you are just doing old school games like NES and SNES you won&apos;t need to. The one thing I noticed was that it wasn&apos;t already integrated and if you aren&apos;t already familiar with RetroPi this can be a challenging thing to add if you don&apos;t know Linux.&lt;/p&gt;
&lt;p&gt;Learn more about RetroPie here: &lt;a href=&quot;https://retropie.org.uk/&quot;&gt;https://retropie.org.uk/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Overall Impressions&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/crowpi/crowpi2.webp&quot; alt=&quot;crowpi2&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I love this laptop and am looking forward to making some lesson plans for the upcoming school year to teach my kids about it. This is the perfect product to experiment and learn about a variety of things in technology. Ever since the Raspberry Pi came out, I have been looking for this type of laptop to fill this need of showcasing all that the pi is capable of and the Crow Pi 2 exceeded all my expectations.&lt;/p&gt;
&lt;p&gt;Learn more about the CrowPi 2 here: &lt;a href=&quot;https://www.kickstarter.com/projects/elecrow/crowpi2-steam-education-platformand-raspberry-pi-laptop&quot;&gt;Kickstarter Page&lt;/a&gt; and &lt;a href=&quot;https://www.elecrow.com/development-kit.html&quot;&gt;Official Site&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/uZmiWQbOBDw&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Ultimate Windows Setup Guide</title><link>https://christitus.com/ultimate-windows-setup-guide/</link><guid isPermaLink="true">https://christitus.com/ultimate-windows-setup-guide/</guid><description>&lt;p&gt;This guide will walk you through a fresh Windows installation and debloat the services, tasks, and apps that are running in the background.&lt;/p&gt;

&lt;h2&gt;One Command to Do Everything&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/onecommand.webp&quot; alt=&quot;OneCommand&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;powershell -nop -c &quot;iex(New-Object Net.WebClient).DownloadString(&apos;https://git.io/JJ8R4&apos;)&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;GitHub Project for Debloating, Optimization, and Installing Programs&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/github.webp&quot; alt=&quot;github&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/ChrisTitusTech/win10script/tree/master&quot;&gt;https://github.com/ChrisTitusTech/win10script/tree/master&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This project was using many of the aspects of other debloat scripts, but I combined system admin scripts with it that I use to configure workstations at businesses. I also added Chocolatey package manager to the script for easy program installations.&lt;/p&gt;
&lt;p&gt;The script will remove scheduled tasks, windows applications, install common applications (adobe reader, notepad++, java, and more), while also disabling services, and removing windows components like Cortana that are performance hogs.&lt;/p&gt;
&lt;h2&gt;What this script does&lt;/h2&gt;
&lt;h3&gt;Main Programs and Tweaks&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Installs Chocolatey (Package Manager for Windows)&lt;/li&gt;
&lt;li&gt;Installs O&amp;amp;O Shutup 10 and Runs Recommended Settings&lt;/li&gt;
&lt;li&gt;Misc 3rd Party program installs (Adobe, 7-Zip, Notepad++, and Media Player Classic-HC)&lt;/li&gt;
&lt;li&gt;Removals all Bloatware in MS Store (Leaves Office, Snip Tool, Xbox and other Apps used for Gaming)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Privacy Tweaks&lt;/h3&gt;
&lt;p&gt;Disabled Services and Tasks&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Telemetry&lt;/li&gt;
&lt;li&gt;Wifi Sense&lt;/li&gt;
&lt;li&gt;Smart Screen and Web Search&lt;/li&gt;
&lt;li&gt;App Suggestions and Activity History&lt;/li&gt;
&lt;li&gt;Location Tracking and Maps&lt;/li&gt;
&lt;li&gt;Feedback and Tailored Experiences&lt;/li&gt;
&lt;li&gt;Error Reporting&lt;/li&gt;
&lt;li&gt;Cortana&lt;/li&gt;
&lt;li&gt;Advertising ID.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Security Tweaks&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;UAC Set to Low&lt;/li&gt;
&lt;li&gt;Disable SMB version 1&lt;/li&gt;
&lt;li&gt;Set Network to Private&lt;/li&gt;
&lt;li&gt;Disable Controlled Folder Access&lt;/li&gt;
&lt;li&gt;Disable Microsoft Defender (Check customization if not using another AV)&lt;/li&gt;
&lt;li&gt;Disable Meltdown Flag (Big performance boost for Intel Users)&lt;/li&gt;
&lt;li&gt;Enables F8 Boot Menu&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Service Tweaks&lt;/h3&gt;
&lt;p&gt;Services Disabled:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Malware Removal Tool&lt;/li&gt;
&lt;li&gt;Driver Updates&lt;/li&gt;
&lt;li&gt;Home Groups&lt;/li&gt;
&lt;li&gt;Shared Experiences&lt;/li&gt;
&lt;li&gt;Remote Assistance&lt;/li&gt;
&lt;li&gt;Autoplay&lt;/li&gt;
&lt;li&gt;Storage Sense&lt;/li&gt;
&lt;li&gt;DeFragmentation&lt;/li&gt;
&lt;li&gt;Superfetch&lt;/li&gt;
&lt;li&gt;Indexing&lt;/li&gt;
&lt;li&gt;Hibernation&lt;/li&gt;
&lt;li&gt;Sleep Timeout&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;UI Tweaks&lt;/h3&gt;
&lt;p&gt;Windows 10&apos;s user interface is a mess and has too many notifications. This removes the Action Center, LockScreen, Sticky Keys, Task View, Expands File Transfer details by default, Show all tray icons, and various other tweaks.&lt;/p&gt;
&lt;h3&gt;Application Tweaks&lt;/h3&gt;
&lt;p&gt;This script will keep the core of Microsoft Office, but most other Microsoft products that are sideloaded are removed. OneDrive is a big one that some use, so if you want that functionality check the customization section. Most other features removed aren&apos;t used, like Internet Explorer and Work Folders.&lt;/p&gt;
&lt;h2&gt;Customization&lt;/h2&gt;
&lt;p&gt;I encourage people to fork this project and comment out things they don&apos;t like! Here are a list of normal things people change:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Uninstalling OneDrive (This is on in my script)&lt;/li&gt;
&lt;li&gt;Installing Adobe, Chocolatey, Notepad++, MPC-HC, and 7-Zip&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Comment any thing you don&apos;t want out... Example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;########## NOTE THE # SIGNS! These disable lines This example shows UACLow being set and Disabling SMB1
### Security Tweaks ###
&quot;SetUACLow&quot;,                  # &quot;SetUACHigh&quot;,
&quot;DisableSMB1&quot;,                # &quot;EnableSMB1&quot;,

########## NOW LETS SWAP THESE VALUES AND ENABLE SMB1 and Set UAC to HIGH
### Security Tweaks ###
&quot;SetUACHigh&quot;,
&quot;EnableSMB1&quot;,
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/Tfd7BXCo9Xk&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This script will be great for most users out there without losing much if any functionality. I typically run this on every system I setup, but I encourage you to fork this project and make the customizations that you need. Anything is possible, and everything can be automated. Save yourself hours of time and learn how to use not only this script, but using PowerShell.&lt;/p&gt;
</description><pubDate>Mon, 27 Jul 2020 19:26:59 GMT</pubDate><content:encoded>&lt;p&gt;This guide will walk you through a fresh Windows installation and debloat the services, tasks, and apps that are running in the background.&lt;/p&gt;

&lt;h2&gt;One Command to Do Everything&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/onecommand.webp&quot; alt=&quot;OneCommand&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;powershell -nop -c &quot;iex(New-Object Net.WebClient).DownloadString(&apos;https://git.io/JJ8R4&apos;)&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;GitHub Project for Debloating, Optimization, and Installing Programs&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/github.webp&quot; alt=&quot;github&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/ChrisTitusTech/win10script/tree/master&quot;&gt;https://github.com/ChrisTitusTech/win10script/tree/master&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This project was using many of the aspects of other debloat scripts, but I combined system admin scripts with it that I use to configure workstations at businesses. I also added Chocolatey package manager to the script for easy program installations.&lt;/p&gt;
&lt;p&gt;The script will remove scheduled tasks, windows applications, install common applications (adobe reader, notepad++, java, and more), while also disabling services, and removing windows components like Cortana that are performance hogs.&lt;/p&gt;
&lt;h2&gt;What this script does&lt;/h2&gt;
&lt;h3&gt;Main Programs and Tweaks&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Installs Chocolatey (Package Manager for Windows)&lt;/li&gt;
&lt;li&gt;Installs O&amp;amp;O Shutup 10 and Runs Recommended Settings&lt;/li&gt;
&lt;li&gt;Misc 3rd Party program installs (Adobe, 7-Zip, Notepad++, and Media Player Classic-HC)&lt;/li&gt;
&lt;li&gt;Removals all Bloatware in MS Store (Leaves Office, Snip Tool, Xbox and other Apps used for Gaming)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Privacy Tweaks&lt;/h3&gt;
&lt;p&gt;Disabled Services and Tasks&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Telemetry&lt;/li&gt;
&lt;li&gt;Wifi Sense&lt;/li&gt;
&lt;li&gt;Smart Screen and Web Search&lt;/li&gt;
&lt;li&gt;App Suggestions and Activity History&lt;/li&gt;
&lt;li&gt;Location Tracking and Maps&lt;/li&gt;
&lt;li&gt;Feedback and Tailored Experiences&lt;/li&gt;
&lt;li&gt;Error Reporting&lt;/li&gt;
&lt;li&gt;Cortana&lt;/li&gt;
&lt;li&gt;Advertising ID.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Security Tweaks&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;UAC Set to Low&lt;/li&gt;
&lt;li&gt;Disable SMB version 1&lt;/li&gt;
&lt;li&gt;Set Network to Private&lt;/li&gt;
&lt;li&gt;Disable Controlled Folder Access&lt;/li&gt;
&lt;li&gt;Disable Microsoft Defender (Check customization if not using another AV)&lt;/li&gt;
&lt;li&gt;Disable Meltdown Flag (Big performance boost for Intel Users)&lt;/li&gt;
&lt;li&gt;Enables F8 Boot Menu&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Service Tweaks&lt;/h3&gt;
&lt;p&gt;Services Disabled:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Malware Removal Tool&lt;/li&gt;
&lt;li&gt;Driver Updates&lt;/li&gt;
&lt;li&gt;Home Groups&lt;/li&gt;
&lt;li&gt;Shared Experiences&lt;/li&gt;
&lt;li&gt;Remote Assistance&lt;/li&gt;
&lt;li&gt;Autoplay&lt;/li&gt;
&lt;li&gt;Storage Sense&lt;/li&gt;
&lt;li&gt;DeFragmentation&lt;/li&gt;
&lt;li&gt;Superfetch&lt;/li&gt;
&lt;li&gt;Indexing&lt;/li&gt;
&lt;li&gt;Hibernation&lt;/li&gt;
&lt;li&gt;Sleep Timeout&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;UI Tweaks&lt;/h3&gt;
&lt;p&gt;Windows 10&apos;s user interface is a mess and has too many notifications. This removes the Action Center, LockScreen, Sticky Keys, Task View, Expands File Transfer details by default, Show all tray icons, and various other tweaks.&lt;/p&gt;
&lt;h3&gt;Application Tweaks&lt;/h3&gt;
&lt;p&gt;This script will keep the core of Microsoft Office, but most other Microsoft products that are sideloaded are removed. OneDrive is a big one that some use, so if you want that functionality check the customization section. Most other features removed aren&apos;t used, like Internet Explorer and Work Folders.&lt;/p&gt;
&lt;h2&gt;Customization&lt;/h2&gt;
&lt;p&gt;I encourage people to fork this project and comment out things they don&apos;t like! Here are a list of normal things people change:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Uninstalling OneDrive (This is on in my script)&lt;/li&gt;
&lt;li&gt;Installing Adobe, Chocolatey, Notepad++, MPC-HC, and 7-Zip&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Comment any thing you don&apos;t want out... Example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;########## NOTE THE # SIGNS! These disable lines This example shows UACLow being set and Disabling SMB1
### Security Tweaks ###
&quot;SetUACLow&quot;,                  # &quot;SetUACHigh&quot;,
&quot;DisableSMB1&quot;,                # &quot;EnableSMB1&quot;,

########## NOW LETS SWAP THESE VALUES AND ENABLE SMB1 and Set UAC to HIGH
### Security Tweaks ###
&quot;SetUACHigh&quot;,
&quot;EnableSMB1&quot;,
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/Tfd7BXCo9Xk&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This script will be great for most users out there without losing much if any functionality. I typically run this on every system I setup, but I encourage you to fork this project and make the customizations that you need. Anything is possible, and everything can be automated. Save yourself hours of time and learn how to use not only this script, but using PowerShell.&lt;/p&gt;
</content:encoded></item><item><title>How to Speed Up Your Amazon Fire Tablet</title><link>https://christitus.com/amazon-fire-debloat/</link><guid isPermaLink="true">https://christitus.com/amazon-fire-debloat/</guid><description>&lt;p&gt;This Guide goes over over debloating amazon fire tablets and getting Google Store and regular tablet functionality out of them.&lt;/p&gt;

&lt;h2&gt;Tools and Sources Used&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Debloat Amazon Fire (XDA Developers): &lt;a href=&quot;https://forum.xda-developers.com/hd8-hd10/development/official-amazon-fire-toolbox-v1-0-t3889604&quot;&gt;Amazon Fire Toolbox&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Screenshare Any Android Device (GitHub Project): &lt;a href=&quot;https://github.com/Genymobile/scrcpy&quot;&gt;scrcpy&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;YouTube Video Link for scrcpy: &lt;a href=&quot;https://youtu.be/VMQfH2Qkuss&quot;&gt;https://youtu.be/VMQfH2Qkuss&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;No Root Required&lt;/li&gt;
&lt;li&gt;Developer Mode Unlocked&lt;/li&gt;
&lt;li&gt;USB Debugging Enabled in Developer Tools&lt;/li&gt;
&lt;li&gt;Compatibility:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;Amazon Fire 8/8+ (2020)
Amazon Fire 10 (2019)
Amazon Fire 7 (2019)
Amazon Fire 8 (2018)
Amazon Fire 10 (2017)
Amazon Fire 8 (2017)
Amazon Fire 7 (2017)
Amazon Fire HD8 (2016)
Amazon Fire HD10 (2015)
Amazon Fire HD8 (2015)
Amazon Fire HD7 (2015)
Amazon Fire HD7 (2014)
Amazon Fire HD6 (2014)
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Enabling Developer Mode&lt;/h2&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/debloat-amazon/dev-tools.webp&quot; alt=&quot;Dev Tools&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;ul&gt;
&lt;li&gt;Settings &amp;gt; Device Options &amp;gt; About Fire Tablet and tap on the Serial Number until you unlock Developer Options&lt;/li&gt;
&lt;li&gt;Settings &amp;gt; Device Options &amp;gt; Developer Tools and enable USB Debugging&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;After doing this plug your tablet in to your computer and tap authorize device. If you don&apos;t see authorization prompt, change USB mode to file transfer or it may already be authorized from a past attempt. Check the Toolbox app in the next step to verify.&lt;/p&gt;
&lt;h2&gt;Amazon Fire Toolbox Usage&lt;/h2&gt;
&lt;h3&gt;Main Menu&lt;/h3&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/debloat-amazon/toolbox.webp&quot; alt=&quot;Toolbox&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h4&gt;Options you need&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Manage Everything Amazon
&lt;ul&gt;
&lt;li&gt;Disable all amazon apps&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Custom Launcher
&lt;ul&gt;
&lt;li&gt;Change to Nova Launcher from Amazon&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Google Services (Manage)
&lt;ul&gt;
&lt;li&gt;Install Google Play and Google Sign-In&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;Optional Features on Main Menu&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;ADB Shell
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Command Line for ADB&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Hybrid Apps
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Installing Netflix or Disney- Not needed when using Google Store&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Lockscreen Wallpaper
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Doesn&apos;t remove ads - Done with another package&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Density Modifier
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Changes DPI&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Google Assistant
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Uses Google Assistant instead of Alexa&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Modify System Settings
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Disable automatic system/app updates, and turn off Over the Air updates&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Power Options
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Power Off, Reboot, Bootloader Selection&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Second Menu&lt;/h3&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/debloat-amazon/toolbox2.webp&quot; alt=&quot;Toolbox2&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h4&gt;Recommended Options&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Remove Lockscreen Ads&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;This setups an automation sequence that constantly scans and removes amazon ads. Here are the detailed instructions:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click Remove Lockscreen Ads in Amazon Fire Toolbox&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Launch Automate Settings&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Check &quot;Run on system startup&quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Import Adblocker script into Automate&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;To import: Click Import from 3 dots on right, Select SD Card and click &quot;Amazon Lockscreen Ads Remover V4.5&quot; from root&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Return to Home screen of Automate and click the Ads Remover&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Optional Items on Second Menu&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Parental Control Hide&lt;/li&gt;
&lt;li&gt;System Backup
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Excellent backup and restore tool for your tablet&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Push and Pull
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;File Transfer to and from tablet&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;User Management
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Add Accounts for Google, LinkedIn, Patreon, etc.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;YouTube Clients
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;APK files for Vanced and other YouTube alternative apps&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Screen Capturing
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Record or Screenshot on your tablet&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Sideload Apps
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Select APK files to upload OR search for APK files on internet&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This tool is a fantastic way to debloat a new fire tablet and get greater functionality from it. The added utilities I rarely use, but can be very nice for some users.&lt;/p&gt;
</description><pubDate>Tue, 21 Jul 2020 17:37:54 GMT</pubDate><content:encoded>&lt;p&gt;This Guide goes over over debloating amazon fire tablets and getting Google Store and regular tablet functionality out of them.&lt;/p&gt;

&lt;h2&gt;Tools and Sources Used&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Debloat Amazon Fire (XDA Developers): &lt;a href=&quot;https://forum.xda-developers.com/hd8-hd10/development/official-amazon-fire-toolbox-v1-0-t3889604&quot;&gt;Amazon Fire Toolbox&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Screenshare Any Android Device (GitHub Project): &lt;a href=&quot;https://github.com/Genymobile/scrcpy&quot;&gt;scrcpy&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;YouTube Video Link for scrcpy: &lt;a href=&quot;https://youtu.be/VMQfH2Qkuss&quot;&gt;https://youtu.be/VMQfH2Qkuss&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;No Root Required&lt;/li&gt;
&lt;li&gt;Developer Mode Unlocked&lt;/li&gt;
&lt;li&gt;USB Debugging Enabled in Developer Tools&lt;/li&gt;
&lt;li&gt;Compatibility:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;Amazon Fire 8/8+ (2020)
Amazon Fire 10 (2019)
Amazon Fire 7 (2019)
Amazon Fire 8 (2018)
Amazon Fire 10 (2017)
Amazon Fire 8 (2017)
Amazon Fire 7 (2017)
Amazon Fire HD8 (2016)
Amazon Fire HD10 (2015)
Amazon Fire HD8 (2015)
Amazon Fire HD7 (2015)
Amazon Fire HD7 (2014)
Amazon Fire HD6 (2014)
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Enabling Developer Mode&lt;/h2&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/debloat-amazon/dev-tools.webp&quot; alt=&quot;Dev Tools&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;ul&gt;
&lt;li&gt;Settings &amp;gt; Device Options &amp;gt; About Fire Tablet and tap on the Serial Number until you unlock Developer Options&lt;/li&gt;
&lt;li&gt;Settings &amp;gt; Device Options &amp;gt; Developer Tools and enable USB Debugging&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;After doing this plug your tablet in to your computer and tap authorize device. If you don&apos;t see authorization prompt, change USB mode to file transfer or it may already be authorized from a past attempt. Check the Toolbox app in the next step to verify.&lt;/p&gt;
&lt;h2&gt;Amazon Fire Toolbox Usage&lt;/h2&gt;
&lt;h3&gt;Main Menu&lt;/h3&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/debloat-amazon/toolbox.webp&quot; alt=&quot;Toolbox&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h4&gt;Options you need&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Manage Everything Amazon
&lt;ul&gt;
&lt;li&gt;Disable all amazon apps&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Custom Launcher
&lt;ul&gt;
&lt;li&gt;Change to Nova Launcher from Amazon&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Google Services (Manage)
&lt;ul&gt;
&lt;li&gt;Install Google Play and Google Sign-In&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;Optional Features on Main Menu&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;ADB Shell
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Command Line for ADB&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Hybrid Apps
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Installing Netflix or Disney- Not needed when using Google Store&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Lockscreen Wallpaper
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Doesn&apos;t remove ads - Done with another package&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Density Modifier
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Changes DPI&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Google Assistant
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Uses Google Assistant instead of Alexa&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Modify System Settings
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Disable automatic system/app updates, and turn off Over the Air updates&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Power Options
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Power Off, Reboot, Bootloader Selection&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Second Menu&lt;/h3&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/debloat-amazon/toolbox2.webp&quot; alt=&quot;Toolbox2&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h4&gt;Recommended Options&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Remove Lockscreen Ads&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;This setups an automation sequence that constantly scans and removes amazon ads. Here are the detailed instructions:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click Remove Lockscreen Ads in Amazon Fire Toolbox&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Launch Automate Settings&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Check &quot;Run on system startup&quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Import Adblocker script into Automate&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;To import: Click Import from 3 dots on right, Select SD Card and click &quot;Amazon Lockscreen Ads Remover V4.5&quot; from root&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Return to Home screen of Automate and click the Ads Remover&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Optional Items on Second Menu&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Parental Control Hide&lt;/li&gt;
&lt;li&gt;System Backup
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Excellent backup and restore tool for your tablet&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Push and Pull
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;File Transfer to and from tablet&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;User Management
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Add Accounts for Google, LinkedIn, Patreon, etc.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;YouTube Clients
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;APK files for Vanced and other YouTube alternative apps&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Screen Capturing
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Record or Screenshot on your tablet&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Sideload Apps
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Select APK files to upload OR search for APK files on internet&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This tool is a fantastic way to debloat a new fire tablet and get greater functionality from it. The added utilities I rarely use, but can be very nice for some users.&lt;/p&gt;
</content:encoded></item><item><title>The Ultimate Linux Gaming Guide</title><link>https://christitus.com/ultimate-linux-gaming-guide/</link><guid isPermaLink="true">https://christitus.com/ultimate-linux-gaming-guide/</guid><description>&lt;p&gt;This guide goes over setting up your Linux system for gaming. I will include multiple setup instructions for various Linux distributions.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2020/gaming-guide/gaming.webp&quot; alt=&quot;gaming&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This guide will broken into parts that you will need to verify on your system. Each part, should be checked to guarantee an optimal experience.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Video Drivers&lt;/h2&gt;
&lt;p&gt;Just like any operating system, having the latest drivers helps with performance in most games.&lt;/p&gt;
&lt;h3&gt;Ubuntu Based Distributions&lt;/h3&gt;
&lt;p&gt;Enable 32-bit libraries&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo dpkg --add-architecture i386 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;/images/amd-title.webp&quot; alt=&quot;AMD&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;AMD Mesa Driver Install&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo add-apt-repository ppa:kisak/kisak-mesa -y
sudo apt update
sudo apt install libgl1-mesa-dri:i386 mesa-vulkan-drivers mesa-vulkan-drivers:i386 -y
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: Did you run into an error? Make sure you are running Ubuntu 20, Linux Mint 20, or Pop OS 20! - Older versions are not recommended&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/nvidia-title.webp&quot; alt=&quot;nVidia&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;Nvidia Proprietary Driver Install&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo add-apt-repository ppa:graphics-drivers/ppa -y
sudo apt update
sudo apt install nvidia-driver-495 libnvidia-gl-495 libnvidia-gl-495:i386 libvulkan1 libvulkan1:i386 -y
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;*Note: Not working? Are you using a recent nVidia card? I recommend at least GTX 900 Series or Above!&lt;/p&gt;
&lt;h3&gt;Arch Based Distributions&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Enable Multilib for 32- bit support&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;/etc/pacman.conf&lt;/code&gt; &lt;em&gt;Note: you can remove the # to enable multilib shown below&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[multilib]
Include = /etc/pacman.d/mirrorlist
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;sudo pacman -S lib32-mesa vulkan-radeon lib32-vulkan-radeon vulkan-icd-loader lib32-vulkan-icd-loader -y
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h2&gt;Custom Linux Kernel Benchmarks&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/gaming-guide/custom-kernel.svg&quot; alt=&quot;custom-kernel&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Xanmod (Debian-based Only)&lt;/h3&gt;
&lt;p&gt;Official Site: &lt;a href=&quot;https://xanmod.org&quot;&gt;https://xanmod.org&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;echo &apos;deb http://deb.xanmod.org releases main&apos; | sudo tee /etc/apt/sources.list.d/xanmod-kernel.list &amp;amp;&amp;amp; wget -qO - https://dl.xanmod.org/gpg.key | sudo apt-key add -
sudo apt update &amp;amp;&amp;amp; sudo apt install linux-xanmod -y
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Liquorix (Debian-based Only)&lt;/h3&gt;
&lt;p&gt;Official Site: &lt;a href=&quot;https://liquorix.net&quot;&gt;https://liquorix.net&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Debian Prerequisites (No PPA)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;codename=&quot;$(find /etc/apt -type f -name &apos;*.list&apos; | xargs grep -E &apos;^deb&apos; | awk &apos;{print $3}&apos; | grep -Eo &apos;^[a-z]+&apos; | sort | uniq -c | sort -n | tail -n1 | grep -Eo &apos;[a-z]+$&apos;)&quot; &amp;amp;&amp;amp; sudo apt-get install apt-transport-https curl &amp;amp;&amp;amp; echo -e &quot;deb http://liquorix.net/debian $codename main\ndeb-src http://liquorix.net/debian $codename main\n\n# Mirrors:\n#\n# Unit193 - France\n# deb http://mirror.unit193.net/liquorix $codename main\n# deb-src http://mirror.unit193.net/liquorix $codename main&quot; | sudo tee /etc/apt/sources.list.d/liquorix.list &amp;amp;&amp;amp; curl &apos;https://liquorix.net/linux-liquorix.pub&apos; | sudo apt-key add - &amp;amp;&amp;amp; sudo apt-get update -y
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ubuntu based Prerequisites (PPA):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo add-apt-repository ppa:damentz/liquorix &amp;amp;&amp;amp; sudo apt-get update -y
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;64-bit Install:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get install linux-image-liquorix-amd64 linux-headers-liquorix-amd64 -y
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Zen (Arch-based Only)&lt;/h3&gt;
&lt;p&gt;Built into Arch Linux and part of the official pacman repositories. This does a lot of the same tweaks as Liquorix but for Arch based distributions.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pacman -S linux-zen -y
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Mainline (Debian Bleeding Edge)&lt;/h3&gt;
&lt;p&gt;Source Project: &lt;a href=&quot;https://github.com/pimlie/ubuntu-mainline-kernel.sh&quot;&gt;https://github.com/pimlie/ubuntu-mainline-kernel.sh&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This will update a debian stable release to the latest official kernel.&lt;/p&gt;
&lt;h4&gt;Installation&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;apt install wget -y
wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh
chmod +x ubuntu-mainline-kernel.sh
sudo mv ubuntu-mainline-kernel.sh /usr/local/bin/
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Usage&lt;/h4&gt;
&lt;p&gt;From terminal type any of the following commands:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ubuntu-mainline-kernel.sh -c # Check if Newer Kernel available
ubuntu-mainline-kernel.sh -i # Install latest kernel
ubuntu-mainline-kernel.sh -l # List locally installed kernels
ubuntu-mainline-kernel.sh -u # Uninstall mainline kernel
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h2&gt;ACO - Faster Compiling (AMD Only)&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/gaming-guide/aco.webp&quot; alt=&quot;aco&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This is where Linus Tech Tips recently covered - Linux gaming is BETTER than windows? on June 17, 2020 &lt;a href=&quot;https://youtu.be/6T_-HMkgxt0&quot;&gt;https://youtu.be/6T_-HMkgxt0&lt;/a&gt; and I covered last year - Mesa ACO Linux | The Future is Now! on November 20, 2019 &lt;a href=&quot;https://youtu.be/fm_mzPBnWB0&quot;&gt;https://youtu.be/fm_mzPBnWB0&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Basically this changes the compiling from LLVM to ACO which is considerably faster. The installation process is quite a bit easier now as well compared to my video. You do need up-to-date drivers mesa 20+ and edit &lt;code&gt;/etc/environment&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Add this to &lt;code&gt;/etc/environment&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;RADV_PERFTEST=aco
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;img src=&quot;/images/wine.webp&quot; alt=&quot;wine&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Wine Dependancies and Lutris&lt;/h2&gt;
&lt;p&gt;There are several packages that wine, proton and lutris game installs need. I recommend installing all the dependancies before installing lutris.&lt;/p&gt;
&lt;h3&gt;Ubuntu/Mint/Pop OS! 20&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;wget -nc https://dl.winehq.org/wine-builds/winehq.key
sudo apt-key add winehq.key
sudo add-apt-repository &apos;deb https://dl.winehq.org/wine-builds/ubuntu/ focal main&apos; -y
sudo add-apt-repository ppa:lutris-team/lutris -y
sudo apt update
sudo apt-get install --install-recommends winehq-staging -y
sudo apt-get install libgnutls30:i386 libldap-2.4-2:i386 libgpg-error0:i386 libxml2:i386 libasound2-plugins:i386 libsdl2-2.0-0:i386 libfreetype6:i386 libdbus-1-3:i386 libsqlite3-0:i386 -y
sudo apt-get install lutris -y
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Arch-Based Distros&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo pacman -S wine-staging giflib lib32-giflib libpng lib32-libpng libldap lib32-libldap gnutls lib32-gnutls mpg123 lib32-mpg123 openal lib32-openal v4l-utils lib32-v4l-utils libpulse lib32-libpulse libgpg-error lib32-libgpg-error alsa-plugins lib32-alsa-plugins alsa-lib lib32-alsa-lib libjpeg-turbo lib32-libjpeg-turbo sqlite lib32-sqlite libxcomposite lib32-libxcomposite libxinerama lib32-libgcrypt libgcrypt lib32-libxinerama ncurses lib32-ncurses opencl-icd-loader lib32-opencl-icd-loader libxslt lib32-libxslt libva lib32-libva gtk3 lib32-gtk3 gst-plugins-base-libs lib32-gst-plugins-base-libs vulkan-icd-loader lib32-vulkan-icd-loader lutris -y
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h2&gt;ESync - Helps Game Overhead&lt;/h2&gt;
&lt;p&gt;Check to see if esync is enabled already (most distributions do by default)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ulimit -Hn
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If this returns more than 500,000 than ESYNC IS ENABLED! If not, proceed with these instructions:&lt;br /&gt;
Change the following files and add this line to the bottom&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/etc/systemd/system.conf&lt;/code&gt; &amp;amp; &lt;code&gt;/etc/systemd/user.conf&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;DefaultLimitNOFILE=524288
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;/etc/security/limits.conf&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;username hard nofile 524288
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: Change username to your username!!!&lt;/em&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/gaming-guide/gamemode.webp&quot; alt=&quot;gamemode&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;GameMode - No CPU Throttling&lt;/h2&gt;
&lt;p&gt;GitHub Source Project: &lt;a href=&quot;https://github.com/FeralInteractive/gamemode&quot;&gt;https://github.com/FeralInteractive/gamemode&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Ubuntu/Debian Dependencies&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;apt install meson libsystemd-dev pkg-config ninja-build git libdbus-1-dev libinih-dev dbus-user-session -y
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Arch Dependencies&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;pacman -S meson systemd git dbus -y
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Build and Install GameMode&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;git clone https://github.com/FeralInteractive/gamemode.git
cd gamemode
git checkout 1.5.1 # omit to build the master branch
./bootstrap.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Uninstall GameMode&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;systemctl --user stop gamemoded.service
ninja uninstall -C builddir
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;GameMode Usage&lt;/h3&gt;
&lt;p&gt;There are multiple ways to Use GameMode&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Lutris&lt;/strong&gt; - Under settings you can enable GameMode for all games you launch&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steam&lt;/strong&gt; - Go to Launch options for the game of choice and type in &lt;code&gt;gamemoderun %command%&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Terminal&lt;/strong&gt; - type &lt;code&gt;gamemoderun ./game&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gnome Tool&lt;/strong&gt; - If you use GNOME Desktop Environment install this extension: &lt;a href=&quot;https://extensions.gnome.org/extension/1852/gamemode/&quot;&gt;https://extensions.gnome.org/extension/1852/gamemode/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/gaming-guide/proton.webp&quot; alt=&quot;proton&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Custom Proton&lt;/h2&gt;
&lt;p&gt;The stock steam proton is rather old and behind the Wine team. Which means there are a lot of performance tweaks and improvements that you aren&apos;t getting yet. This is why I recommend everyone install Custom proton as I find the releases a considerable improvement when gaming in Steam.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: DO NOT USE STEAM IN A FLATPAK! You will lose some performance and modifications are more difficult!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Source Project: &lt;a href=&quot;https://github.com/GloriousEggroll/proton-ge-custom#manual&quot;&gt;https://github.com/GloriousEggroll/proton-ge-custom#manual&lt;/a&gt;&lt;br /&gt;
Auto-Install Project: &lt;a href=&quot;https://github.com/Termuellinator/ProtonUpdater&quot;&gt;https://github.com/Termuellinator/ProtonUpdater&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For Installation, we will use the ProtonUpdater script on GitHub.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd ~
wget https://raw.githubusercontent.com/Termuellinator/ProtonUpdater/master/cproton.sh
sudo chmod +x cproton.sh
./cproton.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/xvrft9ULvho&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Doing these tweaks or just some of them will make a drastic difference when it comes to Gaming on Linux. I personally use all of the tweaks, but sometimes I end up not using the Custom kernel if I have issues with drivers like nvidia sometimes does not like it.&lt;/p&gt;
</description><pubDate>Tue, 14 Jul 2020 19:27:23 GMT</pubDate><content:encoded>&lt;p&gt;This guide goes over setting up your Linux system for gaming. I will include multiple setup instructions for various Linux distributions.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2020/gaming-guide/gaming.webp&quot; alt=&quot;gaming&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This guide will broken into parts that you will need to verify on your system. Each part, should be checked to guarantee an optimal experience.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Video Drivers&lt;/h2&gt;
&lt;p&gt;Just like any operating system, having the latest drivers helps with performance in most games.&lt;/p&gt;
&lt;h3&gt;Ubuntu Based Distributions&lt;/h3&gt;
&lt;p&gt;Enable 32-bit libraries&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo dpkg --add-architecture i386 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;/images/amd-title.webp&quot; alt=&quot;AMD&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;AMD Mesa Driver Install&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo add-apt-repository ppa:kisak/kisak-mesa -y
sudo apt update
sudo apt install libgl1-mesa-dri:i386 mesa-vulkan-drivers mesa-vulkan-drivers:i386 -y
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: Did you run into an error? Make sure you are running Ubuntu 20, Linux Mint 20, or Pop OS 20! - Older versions are not recommended&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/nvidia-title.webp&quot; alt=&quot;nVidia&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;Nvidia Proprietary Driver Install&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo add-apt-repository ppa:graphics-drivers/ppa -y
sudo apt update
sudo apt install nvidia-driver-495 libnvidia-gl-495 libnvidia-gl-495:i386 libvulkan1 libvulkan1:i386 -y
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;*Note: Not working? Are you using a recent nVidia card? I recommend at least GTX 900 Series or Above!&lt;/p&gt;
&lt;h3&gt;Arch Based Distributions&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Enable Multilib for 32- bit support&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;/etc/pacman.conf&lt;/code&gt; &lt;em&gt;Note: you can remove the # to enable multilib shown below&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[multilib]
Include = /etc/pacman.d/mirrorlist
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;sudo pacman -S lib32-mesa vulkan-radeon lib32-vulkan-radeon vulkan-icd-loader lib32-vulkan-icd-loader -y
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h2&gt;Custom Linux Kernel Benchmarks&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/gaming-guide/custom-kernel.svg&quot; alt=&quot;custom-kernel&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Xanmod (Debian-based Only)&lt;/h3&gt;
&lt;p&gt;Official Site: &lt;a href=&quot;https://xanmod.org&quot;&gt;https://xanmod.org&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;echo &apos;deb http://deb.xanmod.org releases main&apos; | sudo tee /etc/apt/sources.list.d/xanmod-kernel.list &amp;amp;&amp;amp; wget -qO - https://dl.xanmod.org/gpg.key | sudo apt-key add -
sudo apt update &amp;amp;&amp;amp; sudo apt install linux-xanmod -y
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Liquorix (Debian-based Only)&lt;/h3&gt;
&lt;p&gt;Official Site: &lt;a href=&quot;https://liquorix.net&quot;&gt;https://liquorix.net&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Debian Prerequisites (No PPA)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;codename=&quot;$(find /etc/apt -type f -name &apos;*.list&apos; | xargs grep -E &apos;^deb&apos; | awk &apos;{print $3}&apos; | grep -Eo &apos;^[a-z]+&apos; | sort | uniq -c | sort -n | tail -n1 | grep -Eo &apos;[a-z]+$&apos;)&quot; &amp;amp;&amp;amp; sudo apt-get install apt-transport-https curl &amp;amp;&amp;amp; echo -e &quot;deb http://liquorix.net/debian $codename main\ndeb-src http://liquorix.net/debian $codename main\n\n# Mirrors:\n#\n# Unit193 - France\n# deb http://mirror.unit193.net/liquorix $codename main\n# deb-src http://mirror.unit193.net/liquorix $codename main&quot; | sudo tee /etc/apt/sources.list.d/liquorix.list &amp;amp;&amp;amp; curl &apos;https://liquorix.net/linux-liquorix.pub&apos; | sudo apt-key add - &amp;amp;&amp;amp; sudo apt-get update -y
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ubuntu based Prerequisites (PPA):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo add-apt-repository ppa:damentz/liquorix &amp;amp;&amp;amp; sudo apt-get update -y
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;64-bit Install:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get install linux-image-liquorix-amd64 linux-headers-liquorix-amd64 -y
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Zen (Arch-based Only)&lt;/h3&gt;
&lt;p&gt;Built into Arch Linux and part of the official pacman repositories. This does a lot of the same tweaks as Liquorix but for Arch based distributions.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pacman -S linux-zen -y
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Mainline (Debian Bleeding Edge)&lt;/h3&gt;
&lt;p&gt;Source Project: &lt;a href=&quot;https://github.com/pimlie/ubuntu-mainline-kernel.sh&quot;&gt;https://github.com/pimlie/ubuntu-mainline-kernel.sh&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This will update a debian stable release to the latest official kernel.&lt;/p&gt;
&lt;h4&gt;Installation&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;apt install wget -y
wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh
chmod +x ubuntu-mainline-kernel.sh
sudo mv ubuntu-mainline-kernel.sh /usr/local/bin/
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Usage&lt;/h4&gt;
&lt;p&gt;From terminal type any of the following commands:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ubuntu-mainline-kernel.sh -c # Check if Newer Kernel available
ubuntu-mainline-kernel.sh -i # Install latest kernel
ubuntu-mainline-kernel.sh -l # List locally installed kernels
ubuntu-mainline-kernel.sh -u # Uninstall mainline kernel
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h2&gt;ACO - Faster Compiling (AMD Only)&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/gaming-guide/aco.webp&quot; alt=&quot;aco&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This is where Linus Tech Tips recently covered - Linux gaming is BETTER than windows? on June 17, 2020 &lt;a href=&quot;https://youtu.be/6T_-HMkgxt0&quot;&gt;https://youtu.be/6T_-HMkgxt0&lt;/a&gt; and I covered last year - Mesa ACO Linux | The Future is Now! on November 20, 2019 &lt;a href=&quot;https://youtu.be/fm_mzPBnWB0&quot;&gt;https://youtu.be/fm_mzPBnWB0&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Basically this changes the compiling from LLVM to ACO which is considerably faster. The installation process is quite a bit easier now as well compared to my video. You do need up-to-date drivers mesa 20+ and edit &lt;code&gt;/etc/environment&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Add this to &lt;code&gt;/etc/environment&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;RADV_PERFTEST=aco
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;img src=&quot;/images/wine.webp&quot; alt=&quot;wine&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Wine Dependancies and Lutris&lt;/h2&gt;
&lt;p&gt;There are several packages that wine, proton and lutris game installs need. I recommend installing all the dependancies before installing lutris.&lt;/p&gt;
&lt;h3&gt;Ubuntu/Mint/Pop OS! 20&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;wget -nc https://dl.winehq.org/wine-builds/winehq.key
sudo apt-key add winehq.key
sudo add-apt-repository &apos;deb https://dl.winehq.org/wine-builds/ubuntu/ focal main&apos; -y
sudo add-apt-repository ppa:lutris-team/lutris -y
sudo apt update
sudo apt-get install --install-recommends winehq-staging -y
sudo apt-get install libgnutls30:i386 libldap-2.4-2:i386 libgpg-error0:i386 libxml2:i386 libasound2-plugins:i386 libsdl2-2.0-0:i386 libfreetype6:i386 libdbus-1-3:i386 libsqlite3-0:i386 -y
sudo apt-get install lutris -y
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Arch-Based Distros&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo pacman -S wine-staging giflib lib32-giflib libpng lib32-libpng libldap lib32-libldap gnutls lib32-gnutls mpg123 lib32-mpg123 openal lib32-openal v4l-utils lib32-v4l-utils libpulse lib32-libpulse libgpg-error lib32-libgpg-error alsa-plugins lib32-alsa-plugins alsa-lib lib32-alsa-lib libjpeg-turbo lib32-libjpeg-turbo sqlite lib32-sqlite libxcomposite lib32-libxcomposite libxinerama lib32-libgcrypt libgcrypt lib32-libxinerama ncurses lib32-ncurses opencl-icd-loader lib32-opencl-icd-loader libxslt lib32-libxslt libva lib32-libva gtk3 lib32-gtk3 gst-plugins-base-libs lib32-gst-plugins-base-libs vulkan-icd-loader lib32-vulkan-icd-loader lutris -y
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h2&gt;ESync - Helps Game Overhead&lt;/h2&gt;
&lt;p&gt;Check to see if esync is enabled already (most distributions do by default)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ulimit -Hn
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If this returns more than 500,000 than ESYNC IS ENABLED! If not, proceed with these instructions:&lt;br /&gt;
Change the following files and add this line to the bottom&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/etc/systemd/system.conf&lt;/code&gt; &amp;amp; &lt;code&gt;/etc/systemd/user.conf&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;DefaultLimitNOFILE=524288
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;/etc/security/limits.conf&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;username hard nofile 524288
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: Change username to your username!!!&lt;/em&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/gaming-guide/gamemode.webp&quot; alt=&quot;gamemode&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;GameMode - No CPU Throttling&lt;/h2&gt;
&lt;p&gt;GitHub Source Project: &lt;a href=&quot;https://github.com/FeralInteractive/gamemode&quot;&gt;https://github.com/FeralInteractive/gamemode&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Ubuntu/Debian Dependencies&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;apt install meson libsystemd-dev pkg-config ninja-build git libdbus-1-dev libinih-dev dbus-user-session -y
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Arch Dependencies&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;pacman -S meson systemd git dbus -y
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Build and Install GameMode&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;git clone https://github.com/FeralInteractive/gamemode.git
cd gamemode
git checkout 1.5.1 # omit to build the master branch
./bootstrap.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Uninstall GameMode&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;systemctl --user stop gamemoded.service
ninja uninstall -C builddir
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;GameMode Usage&lt;/h3&gt;
&lt;p&gt;There are multiple ways to Use GameMode&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Lutris&lt;/strong&gt; - Under settings you can enable GameMode for all games you launch&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steam&lt;/strong&gt; - Go to Launch options for the game of choice and type in &lt;code&gt;gamemoderun %command%&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Terminal&lt;/strong&gt; - type &lt;code&gt;gamemoderun ./game&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gnome Tool&lt;/strong&gt; - If you use GNOME Desktop Environment install this extension: &lt;a href=&quot;https://extensions.gnome.org/extension/1852/gamemode/&quot;&gt;https://extensions.gnome.org/extension/1852/gamemode/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/gaming-guide/proton.webp&quot; alt=&quot;proton&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Custom Proton&lt;/h2&gt;
&lt;p&gt;The stock steam proton is rather old and behind the Wine team. Which means there are a lot of performance tweaks and improvements that you aren&apos;t getting yet. This is why I recommend everyone install Custom proton as I find the releases a considerable improvement when gaming in Steam.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: DO NOT USE STEAM IN A FLATPAK! You will lose some performance and modifications are more difficult!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Source Project: &lt;a href=&quot;https://github.com/GloriousEggroll/proton-ge-custom#manual&quot;&gt;https://github.com/GloriousEggroll/proton-ge-custom#manual&lt;/a&gt;&lt;br /&gt;
Auto-Install Project: &lt;a href=&quot;https://github.com/Termuellinator/ProtonUpdater&quot;&gt;https://github.com/Termuellinator/ProtonUpdater&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For Installation, we will use the ProtonUpdater script on GitHub.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd ~
wget https://raw.githubusercontent.com/Termuellinator/ProtonUpdater/master/cproton.sh
sudo chmod +x cproton.sh
./cproton.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/xvrft9ULvho&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Doing these tweaks or just some of them will make a drastic difference when it comes to Gaming on Linux. I personally use all of the tweaks, but sometimes I end up not using the Custom kernel if I have issues with drivers like nvidia sometimes does not like it.&lt;/p&gt;
</content:encoded></item><item><title>Change your Desktop Wallpaper</title><link>https://christitus.com/change-wallpaper/</link><guid isPermaLink="true">https://christitus.com/change-wallpaper/</guid><description>&lt;p&gt;This article shows you how to automatically change your wallpaper on Windows, macOS, and Linux.
To get the greatest variety and the highest quality it is best to use reddit as the voting system and variety ensure both these goals are met.&lt;/p&gt;
&lt;h2&gt;Change Wallpaper in Windows&lt;/h2&gt;
&lt;p&gt;GitHub Project: &lt;a href=&quot;https://github.com/Rawns/Reddit-Wallpaper-Changer&quot;&gt;https://github.com/Rawns/Reddit-Wallpaper-Changer&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;From the Releases Tab on GitHub download the latest version and install it.&lt;/p&gt;
&lt;p&gt;Here are the settings I recommend using:&lt;br /&gt;
&lt;img src=&quot;/images/2020/wallpaper/wall-settings-w10.webp&quot; alt=&quot;win10-wallsettings&quot; /&gt;&lt;/p&gt;
&lt;p&gt;There is also an option to save all wallpapers locally. I like to save all downloaded wallpapers for future reference or build and offline repository.&lt;/p&gt;
&lt;h2&gt;Change Wallpaper in Mac OS&lt;/h2&gt;
&lt;p&gt;GitHub Project: &lt;a href=&quot;https://github.com/ChrisTitusTech/wallpaper-reddit&quot;&gt;https://github.com/ChrisTitusTech/wallpaper-reddit&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Install MacOS Dependancies&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;xcode-select --install
sudo easy_install pip
sudo pip install --upgrade pip
pip install pillow
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Needed Desktop Wallpaper Script Package&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Install Swift Tools on MacOS 13 (Required for High Sierra or Earlier) - &lt;a href=&quot;https://support.apple.com/kb/DL1998&quot;&gt;https://support.apple.com/kb/DL1998&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Script for Changing MacOS Wallpaper - &lt;a href=&quot;https://github.com/scriptingosx/desktoppr/releases&quot;&gt;https://github.com/scriptingosx/desktoppr/releases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Install MacOS Program&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;cd ~
git clone https://github.com/ChrisTitusTech/wallpaper-reddit.git
cd wallpaper-reddit
sudo python3 setup.py install
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;MacOS Usage&lt;/h3&gt;
&lt;p&gt;You can run this anytime by typing in terminal &lt;code&gt;wallpaper-reddit [subreddits]&lt;/code&gt;&lt;br /&gt;
Binaries are located at &lt;code&gt;/usr/local/bin/wallpaper-reddit&lt;/code&gt;
Config files are located at &lt;code&gt;~/.config/wallpaper-reddit&lt;/code&gt;
Syntax Help &lt;code&gt;wallpaper-reddit --help&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Running on macOS Startup&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Start Automator&lt;/li&gt;
&lt;li&gt;Create New Task: File -&amp;gt; New&lt;/li&gt;
&lt;li&gt;Select &quot;Application&quot;
&lt;ul&gt;
&lt;li&gt;Click &quot;Show library&quot; in the toolbar (if hidden)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Add &quot;Run shell script&quot; (from the Actions/Utilities)
&lt;ul&gt;
&lt;li&gt;Copy-and-paste your script into the window and Run- &lt;em&gt;Note: I used desktoppr to force wallpaper if script fails&lt;/em&gt;
&lt;img src=&quot;/images/2020/wallpaper/macos-automator.webp&quot; alt=&quot;automator&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;/usr/local/bin/wallpaper-reddit --startup
/usr/local/bin/desktoppr ~/Pictures/Wallpapers/wallpaper.webp
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Save it somewhere: a file called your_name.app will be created)&lt;/li&gt;
&lt;li&gt;Go to System Preferences → Users and Groups → Login items&lt;/li&gt;
&lt;li&gt;Add this newly-created app&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Change Wallpaper in Linux&lt;/h2&gt;
&lt;p&gt;GitHub Project: &lt;a href=&quot;https://github.com/ChrisTitusTech/wallpaper-reddit&quot;&gt;https://github.com/ChrisTitusTech/wallpaper-reddit&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Install Linux Dependancies&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Ubuntu/Linux Mint/ElementaryOS: &lt;code&gt;sudo apt-get install python3-dev python3-setuptools libjpeg8-dev zlib1g-dev libfreetype6-dev&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Fedora: &lt;code&gt;sudo dnf install python3-imaging&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Arch: &lt;code&gt;sudo pacman -S python-pillow&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Install Linux Program&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;cd ~
git clone https://github.com/ChrisTitusTech/wallpaper-reddit.git
cd wallpaper-reddit
sudo python3 setup.py install
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Linux Usage&lt;/h3&gt;
&lt;p&gt;You can run this anytime by typing in terminal &lt;code&gt;wallpaper-reddit [subreddits]&lt;/code&gt;&lt;br /&gt;
Binaries are located at &lt;code&gt;/usr/local/bin/wallpaper-reddit&lt;/code&gt;
Config files are located at &lt;code&gt;~/.config/wallpaper-reddit&lt;/code&gt;
Syntax Help &lt;code&gt;wallpaper-reddit --help&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Running on Linux Startup&lt;/h3&gt;
&lt;p&gt;There is plenty of ways to have this automatically change the wallpaper on startup, however, I like to use the method by adding it at the &lt;code&gt;/etc/profile&lt;/code&gt; EOF (End of File). Here is an example.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/usr/local/bin/wallpaper-reddit --save
/usr/local/bin/wallpaper-reddit --startup
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;--save&lt;/code&gt; &lt;em&gt;option flag will save the current wallpaper to the default directory in the config file (&lt;code&gt;~/Pictures/Wallpapers/&lt;/code&gt;). Remove this line if you don&apos;t want to save past wallpapers.&lt;/em&gt;
&lt;code&gt;--startup&lt;/code&gt; &lt;em&gt;option flag will wait til internet access is established and then download the wallpaper from reddit&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Wallpaper-reddit Config File Settings&lt;/h2&gt;
&lt;p&gt;The config file is in &lt;code&gt;~/.config/wallpaper-reddit&lt;/code&gt;, and will be created automatically. Currently, the GNOME, XFCE, MATE, Unity, and Cinnamon Desktop Environments should be automatically detected and the program should set the wallpaper without any extra work. However, due to the varying nature of window managers, it is possible, even likely, that you may have to specify a custom command to set your wallpaper. The program will prompt you for this if this is the case; the exact command can be researched per desktop environment. If your desktop environment is not supported, leave the set command blank and it will auto download to the &lt;code&gt;~/Pictures/Wallpapers/&lt;/code&gt; directory as wallpaper.webp for the daily wallpaper.&lt;/p&gt;
&lt;h3&gt;Config Options&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;minwidth&lt;/code&gt; and &lt;code&gt;minheight&lt;/code&gt; set the minimum dimensions the program will consider a valid candidate for a wallpaper. If &lt;code&gt;--resize&lt;/code&gt; is enabled, the script will resize the image to those dimensions before setting the wallpaper.
&lt;code&gt;minratio&lt;/code&gt; is the minimal aspect ratio of the image. It is a float value of width/height of the image, for example 1.6 for 16:9 image.
&lt;code&gt;maxlinks&lt;/code&gt; is the maximum number of links the script will go through before giving up.
&lt;code&gt;resize&lt;/code&gt; does the same thing as the &lt;code&gt;--resize&lt;/code&gt; flag. It is enabled by default.
&lt;code&gt;random&lt;/code&gt; does the same thing as the &lt;code&gt;--random&lt;/code&gt; flag.&lt;/p&gt;
&lt;h2&gt;Recommended Wallpaper Subreddits&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;EarthPorn&lt;/li&gt;
&lt;li&gt;CityPorn&lt;/li&gt;
&lt;li&gt;SkyPorn&lt;/li&gt;
&lt;li&gt;WeatherPorn&lt;/li&gt;
&lt;li&gt;BotanicalPorn&lt;/li&gt;
&lt;li&gt;LakePorn&lt;/li&gt;
&lt;li&gt;VillagePorn&lt;/li&gt;
&lt;li&gt;BeachPorn&lt;/li&gt;
&lt;li&gt;WaterPorn&lt;/li&gt;
&lt;li&gt;SpacePorn&lt;/li&gt;
&lt;li&gt;multiwall&lt;/li&gt;
&lt;li&gt;wallpapers&lt;/li&gt;
&lt;li&gt;wallpaper&lt;/li&gt;
&lt;/ul&gt;
</description><pubDate>Wed, 08 Jul 2020 19:52:13 GMT</pubDate><content:encoded>&lt;p&gt;This article shows you how to automatically change your wallpaper on Windows, macOS, and Linux.
To get the greatest variety and the highest quality it is best to use reddit as the voting system and variety ensure both these goals are met.&lt;/p&gt;
&lt;h2&gt;Change Wallpaper in Windows&lt;/h2&gt;
&lt;p&gt;GitHub Project: &lt;a href=&quot;https://github.com/Rawns/Reddit-Wallpaper-Changer&quot;&gt;https://github.com/Rawns/Reddit-Wallpaper-Changer&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;From the Releases Tab on GitHub download the latest version and install it.&lt;/p&gt;
&lt;p&gt;Here are the settings I recommend using:&lt;br /&gt;
&lt;img src=&quot;/images/2020/wallpaper/wall-settings-w10.webp&quot; alt=&quot;win10-wallsettings&quot; /&gt;&lt;/p&gt;
&lt;p&gt;There is also an option to save all wallpapers locally. I like to save all downloaded wallpapers for future reference or build and offline repository.&lt;/p&gt;
&lt;h2&gt;Change Wallpaper in Mac OS&lt;/h2&gt;
&lt;p&gt;GitHub Project: &lt;a href=&quot;https://github.com/ChrisTitusTech/wallpaper-reddit&quot;&gt;https://github.com/ChrisTitusTech/wallpaper-reddit&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Install MacOS Dependancies&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;xcode-select --install
sudo easy_install pip
sudo pip install --upgrade pip
pip install pillow
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Needed Desktop Wallpaper Script Package&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Install Swift Tools on MacOS 13 (Required for High Sierra or Earlier) - &lt;a href=&quot;https://support.apple.com/kb/DL1998&quot;&gt;https://support.apple.com/kb/DL1998&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Script for Changing MacOS Wallpaper - &lt;a href=&quot;https://github.com/scriptingosx/desktoppr/releases&quot;&gt;https://github.com/scriptingosx/desktoppr/releases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Install MacOS Program&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;cd ~
git clone https://github.com/ChrisTitusTech/wallpaper-reddit.git
cd wallpaper-reddit
sudo python3 setup.py install
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;MacOS Usage&lt;/h3&gt;
&lt;p&gt;You can run this anytime by typing in terminal &lt;code&gt;wallpaper-reddit [subreddits]&lt;/code&gt;&lt;br /&gt;
Binaries are located at &lt;code&gt;/usr/local/bin/wallpaper-reddit&lt;/code&gt;
Config files are located at &lt;code&gt;~/.config/wallpaper-reddit&lt;/code&gt;
Syntax Help &lt;code&gt;wallpaper-reddit --help&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Running on macOS Startup&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Start Automator&lt;/li&gt;
&lt;li&gt;Create New Task: File -&amp;gt; New&lt;/li&gt;
&lt;li&gt;Select &quot;Application&quot;
&lt;ul&gt;
&lt;li&gt;Click &quot;Show library&quot; in the toolbar (if hidden)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Add &quot;Run shell script&quot; (from the Actions/Utilities)
&lt;ul&gt;
&lt;li&gt;Copy-and-paste your script into the window and Run- &lt;em&gt;Note: I used desktoppr to force wallpaper if script fails&lt;/em&gt;
&lt;img src=&quot;/images/2020/wallpaper/macos-automator.webp&quot; alt=&quot;automator&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;/usr/local/bin/wallpaper-reddit --startup
/usr/local/bin/desktoppr ~/Pictures/Wallpapers/wallpaper.webp
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Save it somewhere: a file called your_name.app will be created)&lt;/li&gt;
&lt;li&gt;Go to System Preferences → Users and Groups → Login items&lt;/li&gt;
&lt;li&gt;Add this newly-created app&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Change Wallpaper in Linux&lt;/h2&gt;
&lt;p&gt;GitHub Project: &lt;a href=&quot;https://github.com/ChrisTitusTech/wallpaper-reddit&quot;&gt;https://github.com/ChrisTitusTech/wallpaper-reddit&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Install Linux Dependancies&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Ubuntu/Linux Mint/ElementaryOS: &lt;code&gt;sudo apt-get install python3-dev python3-setuptools libjpeg8-dev zlib1g-dev libfreetype6-dev&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Fedora: &lt;code&gt;sudo dnf install python3-imaging&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Arch: &lt;code&gt;sudo pacman -S python-pillow&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Install Linux Program&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;cd ~
git clone https://github.com/ChrisTitusTech/wallpaper-reddit.git
cd wallpaper-reddit
sudo python3 setup.py install
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Linux Usage&lt;/h3&gt;
&lt;p&gt;You can run this anytime by typing in terminal &lt;code&gt;wallpaper-reddit [subreddits]&lt;/code&gt;&lt;br /&gt;
Binaries are located at &lt;code&gt;/usr/local/bin/wallpaper-reddit&lt;/code&gt;
Config files are located at &lt;code&gt;~/.config/wallpaper-reddit&lt;/code&gt;
Syntax Help &lt;code&gt;wallpaper-reddit --help&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Running on Linux Startup&lt;/h3&gt;
&lt;p&gt;There is plenty of ways to have this automatically change the wallpaper on startup, however, I like to use the method by adding it at the &lt;code&gt;/etc/profile&lt;/code&gt; EOF (End of File). Here is an example.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/usr/local/bin/wallpaper-reddit --save
/usr/local/bin/wallpaper-reddit --startup
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;--save&lt;/code&gt; &lt;em&gt;option flag will save the current wallpaper to the default directory in the config file (&lt;code&gt;~/Pictures/Wallpapers/&lt;/code&gt;). Remove this line if you don&apos;t want to save past wallpapers.&lt;/em&gt;
&lt;code&gt;--startup&lt;/code&gt; &lt;em&gt;option flag will wait til internet access is established and then download the wallpaper from reddit&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Wallpaper-reddit Config File Settings&lt;/h2&gt;
&lt;p&gt;The config file is in &lt;code&gt;~/.config/wallpaper-reddit&lt;/code&gt;, and will be created automatically. Currently, the GNOME, XFCE, MATE, Unity, and Cinnamon Desktop Environments should be automatically detected and the program should set the wallpaper without any extra work. However, due to the varying nature of window managers, it is possible, even likely, that you may have to specify a custom command to set your wallpaper. The program will prompt you for this if this is the case; the exact command can be researched per desktop environment. If your desktop environment is not supported, leave the set command blank and it will auto download to the &lt;code&gt;~/Pictures/Wallpapers/&lt;/code&gt; directory as wallpaper.webp for the daily wallpaper.&lt;/p&gt;
&lt;h3&gt;Config Options&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;minwidth&lt;/code&gt; and &lt;code&gt;minheight&lt;/code&gt; set the minimum dimensions the program will consider a valid candidate for a wallpaper. If &lt;code&gt;--resize&lt;/code&gt; is enabled, the script will resize the image to those dimensions before setting the wallpaper.
&lt;code&gt;minratio&lt;/code&gt; is the minimal aspect ratio of the image. It is a float value of width/height of the image, for example 1.6 for 16:9 image.
&lt;code&gt;maxlinks&lt;/code&gt; is the maximum number of links the script will go through before giving up.
&lt;code&gt;resize&lt;/code&gt; does the same thing as the &lt;code&gt;--resize&lt;/code&gt; flag. It is enabled by default.
&lt;code&gt;random&lt;/code&gt; does the same thing as the &lt;code&gt;--random&lt;/code&gt; flag.&lt;/p&gt;
&lt;h2&gt;Recommended Wallpaper Subreddits&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;EarthPorn&lt;/li&gt;
&lt;li&gt;CityPorn&lt;/li&gt;
&lt;li&gt;SkyPorn&lt;/li&gt;
&lt;li&gt;WeatherPorn&lt;/li&gt;
&lt;li&gt;BotanicalPorn&lt;/li&gt;
&lt;li&gt;LakePorn&lt;/li&gt;
&lt;li&gt;VillagePorn&lt;/li&gt;
&lt;li&gt;BeachPorn&lt;/li&gt;
&lt;li&gt;WaterPorn&lt;/li&gt;
&lt;li&gt;SpacePorn&lt;/li&gt;
&lt;li&gt;multiwall&lt;/li&gt;
&lt;li&gt;wallpapers&lt;/li&gt;
&lt;li&gt;wallpaper&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Opencore Mac</title><link>https://christitus.com/opencore-mac/</link><guid isPermaLink="true">https://christitus.com/opencore-mac/</guid><description>&lt;p&gt;This goes over how to install macOS on pretty much any piece of hardware. OpenCore is a relatively young project, but is by far my favorite. It teaches you the proper way to setup your system to work long term in the macOS ecosystem.&lt;/p&gt;
&lt;h2&gt;OpenCore Wiki&lt;/h2&gt;
&lt;p&gt;Source for the content in this post is from &lt;a href=&quot;https://dortania.github.io/&quot;&gt;https://dortania.github.io/&lt;/a&gt;.&lt;br /&gt;
This knowledge base is fantastic for any information I glaze over or troubleshooting that isn&apos;t covered. It is much more indepth than this article, but can be confusing in parts. This article is meant to get you acquainted with OpenCore and fill in any missing gaps.&lt;/p&gt;
&lt;h2&gt;Why I Use OpenCore?&lt;/h2&gt;
&lt;p&gt;I use opencore for compatibility and everything can be setup in a non macOS environment. It also injects drivers support (kext) differently than past methods and is far more stable.
This also means updates are far less likely to break your system and boot times are just as fast as a regular mac, if not faster.
I also find a larger amount of hardware is supported and the finished product is all contained neatly in an EFI partition.&lt;/p&gt;
&lt;h2&gt;Hardware Compatibility&lt;/h2&gt;
&lt;p&gt;Even with OpenCore supporting a lot more hardware there is still some hardware that simply will not work on macOS no matter what you do. Here is a definitive guide &lt;a href=&quot;https://dortania.github.io/Anti-Hackintosh-Buyers-Guide/&quot;&gt;https://dortania.github.io/Anti-Hackintosh-Buyers-Guide/&lt;/a&gt;.
The TLDR of that guide is the last two generations of nVidia Graphics Cards and future nVidia Cards are not compatible, and even old nVidia cards will not work past High Sierra (10.13.x). Also, almost every Intel Wireless card will not function properly or work at all. So buying a replacement is needed for laptops.
AMD CPUs can technically work, but will require more tinkering and are more difficult than the Intel counterparts.&lt;/p&gt;
&lt;h2&gt;Files and Projects you need to download and what they do&lt;/h2&gt;
&lt;p&gt;Here is a list of all the files and GitHub projects that are used for OpenCore.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OpenCore GitHub (Base Project) - &lt;a href=&quot;https://github.com/acidanthera/OpenCorePkg/releases&quot;&gt;https://github.com/acidanthera/OpenCorePkg/releases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;All Drivers, Kexts, and SSDTs - &lt;a href=&quot;https://dortania.github.io/OpenCore-Install-Guide/ktext.html&quot;&gt;https://dortania.github.io/OpenCore-Install-Guide/ktext.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GitMacOS GitHub (Download Official Apple PKGs) - &lt;a href=&quot;https://github.com/corpnewt/gibMacOS&quot;&gt;https://github.com/corpnewt/gibMacOS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ProperTree (config.plist editing) - &lt;a href=&quot;https://github.com/corpnewt/ProperTree&quot;&gt;https://github.com/corpnewt/ProperTree&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;SSDTTime (DSDT Dump and SSDT creation) - &lt;a href=&quot;https://github.com/corpnewt/SSDTTime&quot;&gt;https://github.com/corpnewt/SSDTTime&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GenSMBIOS (Generate Serial and UUID) - &lt;a href=&quot;https://github.com/corpnewt/GenSMBIOS&quot;&gt;https://github.com/corpnewt/GenSMBIOS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Checklist for &lt;a href=&quot;https://dortania.github.io/OpenCore-Install-Guide/&quot;&gt;https://dortania.github.io/OpenCore-Install-Guide/&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Check Hardware Compatibility - Document all device IDs and firmware&lt;/li&gt;
&lt;li&gt;Download All Projects and Files&lt;/li&gt;
&lt;li&gt;Boot Into Linux and do a DSDT dump followed by creating SSDT files for your computer (DO NOT USE PREBUILT!)&lt;/li&gt;
&lt;li&gt;Delete all files that your system doesn&apos;t need&lt;/li&gt;
&lt;li&gt;Put all Your Drivers in the EFI Folder &lt;em&gt;Note: I swapped AppleHDA for VoodooHDA on an old sound card. Do NOT just put every kext you find in one folder.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Build config.plist and configure EVERY SINGLE Fold in the config.plist file to your computers specifications&lt;/li&gt;
&lt;li&gt;Boot to Installer! &lt;em&gt;Note: This will probably fail the first couple times, it is very important to follow the config.plist guide and full auditing enabled&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
</description><pubDate>Sun, 28 Jun 2020 00:44:42 GMT</pubDate><content:encoded>&lt;p&gt;This goes over how to install macOS on pretty much any piece of hardware. OpenCore is a relatively young project, but is by far my favorite. It teaches you the proper way to setup your system to work long term in the macOS ecosystem.&lt;/p&gt;
&lt;h2&gt;OpenCore Wiki&lt;/h2&gt;
&lt;p&gt;Source for the content in this post is from &lt;a href=&quot;https://dortania.github.io/&quot;&gt;https://dortania.github.io/&lt;/a&gt;.&lt;br /&gt;
This knowledge base is fantastic for any information I glaze over or troubleshooting that isn&apos;t covered. It is much more indepth than this article, but can be confusing in parts. This article is meant to get you acquainted with OpenCore and fill in any missing gaps.&lt;/p&gt;
&lt;h2&gt;Why I Use OpenCore?&lt;/h2&gt;
&lt;p&gt;I use opencore for compatibility and everything can be setup in a non macOS environment. It also injects drivers support (kext) differently than past methods and is far more stable.
This also means updates are far less likely to break your system and boot times are just as fast as a regular mac, if not faster.
I also find a larger amount of hardware is supported and the finished product is all contained neatly in an EFI partition.&lt;/p&gt;
&lt;h2&gt;Hardware Compatibility&lt;/h2&gt;
&lt;p&gt;Even with OpenCore supporting a lot more hardware there is still some hardware that simply will not work on macOS no matter what you do. Here is a definitive guide &lt;a href=&quot;https://dortania.github.io/Anti-Hackintosh-Buyers-Guide/&quot;&gt;https://dortania.github.io/Anti-Hackintosh-Buyers-Guide/&lt;/a&gt;.
The TLDR of that guide is the last two generations of nVidia Graphics Cards and future nVidia Cards are not compatible, and even old nVidia cards will not work past High Sierra (10.13.x). Also, almost every Intel Wireless card will not function properly or work at all. So buying a replacement is needed for laptops.
AMD CPUs can technically work, but will require more tinkering and are more difficult than the Intel counterparts.&lt;/p&gt;
&lt;h2&gt;Files and Projects you need to download and what they do&lt;/h2&gt;
&lt;p&gt;Here is a list of all the files and GitHub projects that are used for OpenCore.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OpenCore GitHub (Base Project) - &lt;a href=&quot;https://github.com/acidanthera/OpenCorePkg/releases&quot;&gt;https://github.com/acidanthera/OpenCorePkg/releases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;All Drivers, Kexts, and SSDTs - &lt;a href=&quot;https://dortania.github.io/OpenCore-Install-Guide/ktext.html&quot;&gt;https://dortania.github.io/OpenCore-Install-Guide/ktext.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GitMacOS GitHub (Download Official Apple PKGs) - &lt;a href=&quot;https://github.com/corpnewt/gibMacOS&quot;&gt;https://github.com/corpnewt/gibMacOS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ProperTree (config.plist editing) - &lt;a href=&quot;https://github.com/corpnewt/ProperTree&quot;&gt;https://github.com/corpnewt/ProperTree&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;SSDTTime (DSDT Dump and SSDT creation) - &lt;a href=&quot;https://github.com/corpnewt/SSDTTime&quot;&gt;https://github.com/corpnewt/SSDTTime&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GenSMBIOS (Generate Serial and UUID) - &lt;a href=&quot;https://github.com/corpnewt/GenSMBIOS&quot;&gt;https://github.com/corpnewt/GenSMBIOS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Checklist for &lt;a href=&quot;https://dortania.github.io/OpenCore-Install-Guide/&quot;&gt;https://dortania.github.io/OpenCore-Install-Guide/&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Check Hardware Compatibility - Document all device IDs and firmware&lt;/li&gt;
&lt;li&gt;Download All Projects and Files&lt;/li&gt;
&lt;li&gt;Boot Into Linux and do a DSDT dump followed by creating SSDT files for your computer (DO NOT USE PREBUILT!)&lt;/li&gt;
&lt;li&gt;Delete all files that your system doesn&apos;t need&lt;/li&gt;
&lt;li&gt;Put all Your Drivers in the EFI Folder &lt;em&gt;Note: I swapped AppleHDA for VoodooHDA on an old sound card. Do NOT just put every kext you find in one folder.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Build config.plist and configure EVERY SINGLE Fold in the config.plist file to your computers specifications&lt;/li&gt;
&lt;li&gt;Boot to Installer! &lt;em&gt;Note: This will probably fail the first couple times, it is very important to follow the config.plist guide and full auditing enabled&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
</content:encoded></item><item><title>Debloat Android</title><link>https://christitus.com/debloat-android/</link><guid isPermaLink="true">https://christitus.com/debloat-android/</guid><description>&lt;p&gt;This article goes over using ADB Platform Tools and utilizing adb to uninstall packages by using these tools.&lt;/p&gt;

&lt;h2&gt;Pre-Requisites for Using ADB&lt;/h2&gt;
&lt;p&gt;Setup all of the following to use ADB&lt;/p&gt;
&lt;h3&gt;Setup Computer with ADB Platform Tools&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Windows Install with Chocolatey &lt;code&gt;choco install adb&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Linux Install with Terminal &lt;code&gt;sudo apt-get install android-tools-adb android-tools-fastboot&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;MacOS Install with Homebrew
&lt;ul&gt;
&lt;li&gt;Homebrew install - &lt;code&gt;ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;ADB Homebrew Install - &lt;code&gt;brew cask install android-platform-tools&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Setup Phone for ADB Debugging&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Open Settings, and select “About”.&lt;/li&gt;
&lt;li&gt;Tap on “Build number” seven times.&lt;/li&gt;
&lt;li&gt;Go back, and select “Developer options”.&lt;/li&gt;
&lt;li&gt;Scroll down, and check the “Android debugging” or “USB debugging” entry under “Debugging”.&lt;/li&gt;
&lt;li&gt;Plug your device into your computer.&lt;/li&gt;
&lt;li&gt;On the computer, open up a terminal/command prompt and type adb devices.&lt;/li&gt;
&lt;li&gt;A dialog should show on your device, asking you to allow usb debugging. Check “always allow”, and choose “OK”.
&lt;ul&gt;
&lt;li&gt;Note: If you don&apos;t see this prompt on you device change the usb connection to MTP or File Transfer on the device&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;ADB Commands - These only work when device is booted&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;adb devices&lt;/code&gt; - shows all connected adb devices&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb shell&lt;/code&gt; - launches a shell on the device&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb shell pm list packages&lt;/code&gt; - list all installed packages on the device&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb shell pm list packages -3&quot;|cut -f 2 -d &quot;:&lt;/code&gt; - lists all user installed packages&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb push &amp;lt;local&amp;gt; &amp;lt;remote&amp;gt;&lt;/code&gt; - pushes the file  to &lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb pull &amp;lt;remote&amp;gt; [&amp;lt;local&amp;gt;]&lt;/code&gt; - pulls the file  to . If  isn’t specified, it will pull to the current folder.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb logcat&lt;/code&gt; - allows you to view the device log in real-time. You can use adb logcat -b radio to view radio logs, and adb logcat -C to view logs in colour&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb install &amp;lt;file&amp;gt;&lt;/code&gt; - installs the given .apk file to your device&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb uninstall com.packagename&lt;/code&gt; - uninstalls package from shell pm list packages
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Note: if you encounter &quot;[DELETE_FAILED_INTERNAL_ERROR]&quot; type this to bypass:&lt;/em&gt; &lt;code&gt;adb shell pm uninstall --user 0 &amp;lt;appname&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb reboot&lt;/code&gt; - reboots system&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb reboot bootloader&lt;/code&gt; - reboots to bootloader&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb reboot recovery&lt;/code&gt; - reboots into recovery mode&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb reboot fastboot&lt;/code&gt; - reboots into fastboot mode&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Fastboot Commands - These commands work when device is in Bootloader and Fastboot Mode&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;fastboot devices&lt;/code&gt; - shows all connected devices&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot reboot&lt;/code&gt; - reboots device - can add bootloader, recovery, and fastboot&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot oem device-info&lt;/code&gt; - shows oem bootloader status (unlocked or locked)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot oem unlock&lt;/code&gt; - unlocks oem phones - &lt;em&gt;note: aosp and unlocked phones don&apos;t need this&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot flashing unlock&lt;/code&gt; - unlocks system for custom rom in pixel and other phones&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot flashing unlock_critical&lt;/code&gt; - unlocks bootloader and system partitions - &lt;em&gt;note: this isn&apos;t generally needed&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot format:ext4 userdata&lt;/code&gt; - format userdata on device - &lt;em&gt;note: this will erase your entire device&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot boot recovery.img&lt;/code&gt; - test recovery image without flashing&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot flash recovery recovery.img&lt;/code&gt; - flash recovery image then run &lt;code&gt;fastboot reboot recovery&lt;/code&gt; to boot into it.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot flash boot boot.img&lt;/code&gt; - flash boot image - this is the kernel&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot -w&lt;/code&gt; - wipes device&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot update &amp;lt;/path/to/your/Rom.zip&amp;gt;&lt;/code&gt; - flashes zip to the device&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/EgcfSgPs23A&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 22 Jun 2020 01:01:50 GMT</pubDate><content:encoded>&lt;p&gt;This article goes over using ADB Platform Tools and utilizing adb to uninstall packages by using these tools.&lt;/p&gt;

&lt;h2&gt;Pre-Requisites for Using ADB&lt;/h2&gt;
&lt;p&gt;Setup all of the following to use ADB&lt;/p&gt;
&lt;h3&gt;Setup Computer with ADB Platform Tools&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Windows Install with Chocolatey &lt;code&gt;choco install adb&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Linux Install with Terminal &lt;code&gt;sudo apt-get install android-tools-adb android-tools-fastboot&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;MacOS Install with Homebrew
&lt;ul&gt;
&lt;li&gt;Homebrew install - &lt;code&gt;ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;ADB Homebrew Install - &lt;code&gt;brew cask install android-platform-tools&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Setup Phone for ADB Debugging&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Open Settings, and select “About”.&lt;/li&gt;
&lt;li&gt;Tap on “Build number” seven times.&lt;/li&gt;
&lt;li&gt;Go back, and select “Developer options”.&lt;/li&gt;
&lt;li&gt;Scroll down, and check the “Android debugging” or “USB debugging” entry under “Debugging”.&lt;/li&gt;
&lt;li&gt;Plug your device into your computer.&lt;/li&gt;
&lt;li&gt;On the computer, open up a terminal/command prompt and type adb devices.&lt;/li&gt;
&lt;li&gt;A dialog should show on your device, asking you to allow usb debugging. Check “always allow”, and choose “OK”.
&lt;ul&gt;
&lt;li&gt;Note: If you don&apos;t see this prompt on you device change the usb connection to MTP or File Transfer on the device&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;ADB Commands - These only work when device is booted&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;adb devices&lt;/code&gt; - shows all connected adb devices&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb shell&lt;/code&gt; - launches a shell on the device&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb shell pm list packages&lt;/code&gt; - list all installed packages on the device&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb shell pm list packages -3&quot;|cut -f 2 -d &quot;:&lt;/code&gt; - lists all user installed packages&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb push &amp;lt;local&amp;gt; &amp;lt;remote&amp;gt;&lt;/code&gt; - pushes the file  to &lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb pull &amp;lt;remote&amp;gt; [&amp;lt;local&amp;gt;]&lt;/code&gt; - pulls the file  to . If  isn’t specified, it will pull to the current folder.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb logcat&lt;/code&gt; - allows you to view the device log in real-time. You can use adb logcat -b radio to view radio logs, and adb logcat -C to view logs in colour&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb install &amp;lt;file&amp;gt;&lt;/code&gt; - installs the given .apk file to your device&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb uninstall com.packagename&lt;/code&gt; - uninstalls package from shell pm list packages
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Note: if you encounter &quot;[DELETE_FAILED_INTERNAL_ERROR]&quot; type this to bypass:&lt;/em&gt; &lt;code&gt;adb shell pm uninstall --user 0 &amp;lt;appname&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb reboot&lt;/code&gt; - reboots system&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb reboot bootloader&lt;/code&gt; - reboots to bootloader&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb reboot recovery&lt;/code&gt; - reboots into recovery mode&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb reboot fastboot&lt;/code&gt; - reboots into fastboot mode&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Fastboot Commands - These commands work when device is in Bootloader and Fastboot Mode&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;fastboot devices&lt;/code&gt; - shows all connected devices&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot reboot&lt;/code&gt; - reboots device - can add bootloader, recovery, and fastboot&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot oem device-info&lt;/code&gt; - shows oem bootloader status (unlocked or locked)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot oem unlock&lt;/code&gt; - unlocks oem phones - &lt;em&gt;note: aosp and unlocked phones don&apos;t need this&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot flashing unlock&lt;/code&gt; - unlocks system for custom rom in pixel and other phones&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot flashing unlock_critical&lt;/code&gt; - unlocks bootloader and system partitions - &lt;em&gt;note: this isn&apos;t generally needed&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot format:ext4 userdata&lt;/code&gt; - format userdata on device - &lt;em&gt;note: this will erase your entire device&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot boot recovery.img&lt;/code&gt; - test recovery image without flashing&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot flash recovery recovery.img&lt;/code&gt; - flash recovery image then run &lt;code&gt;fastboot reboot recovery&lt;/code&gt; to boot into it.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot flash boot boot.img&lt;/code&gt; - flash boot image - this is the kernel&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot -w&lt;/code&gt; - wipes device&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot update &amp;lt;/path/to/your/Rom.zip&amp;gt;&lt;/code&gt; - flashes zip to the device&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/EgcfSgPs23A&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>How to Create a Windows Service</title><link>https://christitus.com/create-windows-service/</link><guid isPermaLink="true">https://christitus.com/create-windows-service/</guid><description>&lt;p&gt;This article goes over how to create a windows service.&lt;/p&gt;
 I will be going over 3 different ways to create a windows service. Check the legend to skip to the method you&apos;d like to use. They will be: PowerShell, 3rd Party Tool, and Windows Resource Kits.
&lt;h2&gt;Create Windows Service with PowerShell&lt;/h2&gt;
&lt;p&gt;Microsoft Source Article with ALL Syntax - &lt;a href=&quot;https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/new-service?view=powershell-7&quot;&gt;Microsoft Link&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;TestService Example:&lt;br /&gt;
&lt;code&gt;New-Service -Name &quot;TestService&quot; -BinaryPathName &quot;C:\WINDOWS\System32\svchost.exe -k netsvcs&quot;&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Create Windows Service for Java Applications with WinSW&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/winsw/winsw&quot;&gt;https://github.com/winsw/winsw&lt;/a&gt; is the project that is a fantastic wrapper for windows services.&lt;br /&gt;
You will download this exe and rename it to your needs. It is configured by the included XML file under the same name.&lt;/p&gt;
&lt;h2&gt;Create Windows Service with NSSM&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;http://nssm.cc&quot;&gt;http://nssm.cc&lt;/a&gt; is the official site for this 3rd party tool method.&lt;/p&gt;
&lt;p&gt;To show service installation GUI:&lt;br /&gt;
&lt;code&gt;nssm install [&amp;lt;servicename&amp;gt;]&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;To install a service without confirmation:&lt;br /&gt;
&lt;code&gt;nssm install &amp;lt;servicename&amp;gt; &amp;lt;app&amp;gt; [&amp;lt;args&amp;gt; ...]&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;To show service editing GUI:&lt;br /&gt;
&lt;code&gt;nssm edit &amp;lt;servicename&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;To retrieve or edit service parameters directly:&lt;br /&gt;
&lt;code&gt;nssm get &amp;lt;servicename&amp;gt; &amp;lt;parameter&amp;gt; [&amp;lt;subparameter&amp;gt;]&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;nssm set &amp;lt;servicename&amp;gt; &amp;lt;parameter&amp;gt; [&amp;lt;subparameter&amp;gt;] &amp;lt;value&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;nssm reset &amp;lt;servicename&amp;gt; &amp;lt;parameter&amp;gt; [&amp;lt;subparameter&amp;gt;]&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;To show service removal GUI:&lt;br /&gt;
&lt;code&gt;nssm remove [&amp;lt;servicename&amp;gt;]&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;To remove a service without confirmation:&lt;br /&gt;
&lt;code&gt;nssm remove &amp;lt;servicename&amp;gt; confirm&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Create Windows Service with Windows Server Resource Kit 2003&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The Windows Server 2003 Resource Kit download is no longer available from Microsoft; these steps are preserved for historical reference.&lt;/li&gt;
&lt;li&gt;Run the executable to install the Resource Kit&lt;/li&gt;
&lt;li&gt;Open up a command prompt and run the following to install a service stub (default install location used in this example):&lt;/li&gt;
&lt;li&gt;You may substitute &quot;EQBC Service&quot; with whatever name you would like to give to the service for display purposes&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;&quot;C:\Program Files\Windows Resource Kits\Tools\instsrv.exe&quot; &quot;New Service&quot; &quot;C:\Program Files\Windows Resource Kits\Tools\srvany.exe&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Run regedit to edit the Windows registry, and navigate to the following registry key: &lt;code&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\New Service&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;From the Edit menu, select New, select Key, and name the new key Parameters&lt;/li&gt;
&lt;li&gt;Highlight the Parameters key&lt;/li&gt;
&lt;li&gt;From the Edit menu, select New, select String Value, and name the new value Application&lt;/li&gt;
&lt;li&gt;From the Edit menu, select Modify, and type in the full path name and application name, including the drive letter and file extension.
&lt;em&gt;Example:&lt;/em&gt; &lt;code&gt;C:\MQ2\eqbcs.exe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Now go to Start and Run and type in &lt;code&gt;services.msc&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;From here scroll down to New Service (or whatever name you gave the service above), right-click and select Properties&lt;/li&gt;
&lt;li&gt;On the General tab, change the Startup type to &lt;code&gt;Automatic&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Click the Start button to start your service&lt;/li&gt;
&lt;li&gt;Select the Recovery tab, and you have the option of changing the drop-down boxes for First-Failure and so on to Restart the service&lt;/li&gt;
&lt;li&gt;Select OK and you are finished&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Each one of these ways have their uses and I have used each method for different programs. It is great to learn to use all of the above examples or at least make yourself familiar with them.&lt;/p&gt;
</description><pubDate>Tue, 16 Jun 2020 04:33:56 GMT</pubDate><content:encoded>&lt;p&gt;This article goes over how to create a windows service.&lt;/p&gt;
 I will be going over 3 different ways to create a windows service. Check the legend to skip to the method you&apos;d like to use. They will be: PowerShell, 3rd Party Tool, and Windows Resource Kits.
&lt;h2&gt;Create Windows Service with PowerShell&lt;/h2&gt;
&lt;p&gt;Microsoft Source Article with ALL Syntax - &lt;a href=&quot;https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/new-service?view=powershell-7&quot;&gt;Microsoft Link&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;TestService Example:&lt;br /&gt;
&lt;code&gt;New-Service -Name &quot;TestService&quot; -BinaryPathName &quot;C:\WINDOWS\System32\svchost.exe -k netsvcs&quot;&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Create Windows Service for Java Applications with WinSW&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/winsw/winsw&quot;&gt;https://github.com/winsw/winsw&lt;/a&gt; is the project that is a fantastic wrapper for windows services.&lt;br /&gt;
You will download this exe and rename it to your needs. It is configured by the included XML file under the same name.&lt;/p&gt;
&lt;h2&gt;Create Windows Service with NSSM&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;http://nssm.cc&quot;&gt;http://nssm.cc&lt;/a&gt; is the official site for this 3rd party tool method.&lt;/p&gt;
&lt;p&gt;To show service installation GUI:&lt;br /&gt;
&lt;code&gt;nssm install [&amp;lt;servicename&amp;gt;]&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;To install a service without confirmation:&lt;br /&gt;
&lt;code&gt;nssm install &amp;lt;servicename&amp;gt; &amp;lt;app&amp;gt; [&amp;lt;args&amp;gt; ...]&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;To show service editing GUI:&lt;br /&gt;
&lt;code&gt;nssm edit &amp;lt;servicename&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;To retrieve or edit service parameters directly:&lt;br /&gt;
&lt;code&gt;nssm get &amp;lt;servicename&amp;gt; &amp;lt;parameter&amp;gt; [&amp;lt;subparameter&amp;gt;]&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;nssm set &amp;lt;servicename&amp;gt; &amp;lt;parameter&amp;gt; [&amp;lt;subparameter&amp;gt;] &amp;lt;value&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;nssm reset &amp;lt;servicename&amp;gt; &amp;lt;parameter&amp;gt; [&amp;lt;subparameter&amp;gt;]&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;To show service removal GUI:&lt;br /&gt;
&lt;code&gt;nssm remove [&amp;lt;servicename&amp;gt;]&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;To remove a service without confirmation:&lt;br /&gt;
&lt;code&gt;nssm remove &amp;lt;servicename&amp;gt; confirm&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Create Windows Service with Windows Server Resource Kit 2003&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The Windows Server 2003 Resource Kit download is no longer available from Microsoft; these steps are preserved for historical reference.&lt;/li&gt;
&lt;li&gt;Run the executable to install the Resource Kit&lt;/li&gt;
&lt;li&gt;Open up a command prompt and run the following to install a service stub (default install location used in this example):&lt;/li&gt;
&lt;li&gt;You may substitute &quot;EQBC Service&quot; with whatever name you would like to give to the service for display purposes&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;&quot;C:\Program Files\Windows Resource Kits\Tools\instsrv.exe&quot; &quot;New Service&quot; &quot;C:\Program Files\Windows Resource Kits\Tools\srvany.exe&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Run regedit to edit the Windows registry, and navigate to the following registry key: &lt;code&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\New Service&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;From the Edit menu, select New, select Key, and name the new key Parameters&lt;/li&gt;
&lt;li&gt;Highlight the Parameters key&lt;/li&gt;
&lt;li&gt;From the Edit menu, select New, select String Value, and name the new value Application&lt;/li&gt;
&lt;li&gt;From the Edit menu, select Modify, and type in the full path name and application name, including the drive letter and file extension.
&lt;em&gt;Example:&lt;/em&gt; &lt;code&gt;C:\MQ2\eqbcs.exe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Now go to Start and Run and type in &lt;code&gt;services.msc&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;From here scroll down to New Service (or whatever name you gave the service above), right-click and select Properties&lt;/li&gt;
&lt;li&gt;On the General tab, change the Startup type to &lt;code&gt;Automatic&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Click the Start button to start your service&lt;/li&gt;
&lt;li&gt;Select the Recovery tab, and you have the option of changing the drop-down boxes for First-Failure and so on to Restart the service&lt;/li&gt;
&lt;li&gt;Select OK and you are finished&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Each one of these ways have their uses and I have used each method for different programs. It is great to learn to use all of the above examples or at least make yourself familiar with them.&lt;/p&gt;
</content:encoded></item><item><title>Debloat Windows in 2022</title><link>https://christitus.com/debloat-windows-10-2020/</link><guid isPermaLink="true">https://christitus.com/debloat-windows-10-2020/</guid><description>&lt;p&gt;This goes over debloating and slimming down Windows 10 and 11 so you get maximum performance from your PC.&lt;/p&gt;
I made a guide going over the debloat process two years ago [https://christitus.com/debloat-windows-10/](https://christitus.com/debloat-windows-10/) - The guide has evolved and the github project I was using has also improved. I&apos;ve also made a newer post going over the all the changes @ 
&lt;h2&gt;April 2022 Update&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Added new options to get Windows 10/7 Options in Windows 11&lt;/li&gt;
&lt;li&gt;Service optimizations to reduce process count&lt;/li&gt;
&lt;li&gt;Added more tweak settings and misc. fixes&lt;/li&gt;
&lt;li&gt;GUI Redesign&lt;/li&gt;
&lt;li&gt;new Github &lt;a href=&quot;https://github.com/ChrisTitusTech/winutil&quot;&gt;https://github.com/ChrisTitusTech/winutil&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;New command!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;iwr -useb https://christitus.com/win | iex
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;July 2021 Update&lt;/h2&gt;
&lt;p&gt;If you are coming here from the YouTube video I have taken all the scripts below and a system admin script I used a lot in the past to make a streamlined debloat script. This script will optimize Windows and can be run multiple times if you have an update ruin all the optimizations. I have also made it very easy to launch. Here is the source files: &lt;a href=&quot;https://github.com/ChrisTitusTech/win10script&quot;&gt;https://github.com/ChrisTitusTech/win10script&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you want to just run this on any system, you can easily copy and paste this into a Admin Powershell prompt and watch it do everything for you. It does have two prompts based on user feedback. Let me know what you think below!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;OLD PROJECT - DEPRECATED&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;iex ((New-Object System.Net.WebClient).DownloadString(&apos;https://git.io/JJ8R4&apos;))
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;What this script can do&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Installs any program listed that you click on using WinGet&lt;/li&gt;
&lt;li&gt;Removed Telemetry&lt;/li&gt;
&lt;li&gt;Disables Cortana&lt;/li&gt;
&lt;li&gt;Deletes various schedules tasks that rebloat the system&lt;/li&gt;
&lt;li&gt;Fixes problems that other scripts causes (lock screen and personalization options restricted)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Based on User feedback Microsoft Store and Windows Defender is no longer touched.&lt;/p&gt;
&lt;h3&gt;Toolbox Walkthrough Video&lt;/h3&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/V27McA7ch6w&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h2&gt;User Requested Restore Scripts&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;iex ((New-Object System.Net.WebClient).DownloadString(&apos;https://git.io/JTbKD&apos;))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This restore script pops up a GUI that lets you restore what you want to FACTORY DEFAULTS!&lt;/p&gt;
&lt;p&gt;Current Lineup:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cortana&lt;/li&gt;
&lt;li&gt;Tray Icons&lt;/li&gt;
&lt;li&gt;Action Center&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Old Methods from Prior Videos that I no longer use&lt;/h2&gt;
&lt;p&gt;The project I use has been developed for many years now and is extremely good. Here is the source github project I use:&lt;br /&gt;
&lt;a href=&quot;https://github.com/Sycnex/Windows10Debloater&quot;&gt;https://github.com/Sycnex/Windows10Debloater&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is a new project that was brought to my attention, but has quickly made a name for itself. It works very well and is typically more up to date than the above project.&lt;br /&gt;
&lt;a href=&quot;https://github.com/farag2/Windows-10-Setup-Script&quot;&gt;https://github.com/farag2/Windows-10-Setup-Script&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Optimal Way to Use this Tool&lt;/h2&gt;
&lt;p&gt;I recommend running this tool under the following conditions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Before User Profile is Created&lt;/li&gt;
&lt;li&gt;Empty Desktop and Downloads (Past versions has deleted files from Desktop and Downloads)&lt;/li&gt;
&lt;li&gt;After installing New Feature Updates&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Recommended Options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Disable Cortana&lt;/li&gt;
&lt;li&gt;Uninstall OneDrive&lt;/li&gt;
&lt;li&gt;Run Essential Tweaks&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I generally always enable Dark Mode and Install 3.5 .NET but that is entirely my personal preference.&lt;/p&gt;
</description><pubDate>Thu, 11 Jun 2020 21:04:48 GMT</pubDate><content:encoded>&lt;p&gt;This goes over debloating and slimming down Windows 10 and 11 so you get maximum performance from your PC.&lt;/p&gt;
I made a guide going over the debloat process two years ago [https://christitus.com/debloat-windows-10/](https://christitus.com/debloat-windows-10/) - The guide has evolved and the github project I was using has also improved. I&apos;ve also made a newer post going over the all the changes @ 
&lt;h2&gt;April 2022 Update&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Added new options to get Windows 10/7 Options in Windows 11&lt;/li&gt;
&lt;li&gt;Service optimizations to reduce process count&lt;/li&gt;
&lt;li&gt;Added more tweak settings and misc. fixes&lt;/li&gt;
&lt;li&gt;GUI Redesign&lt;/li&gt;
&lt;li&gt;new Github &lt;a href=&quot;https://github.com/ChrisTitusTech/winutil&quot;&gt;https://github.com/ChrisTitusTech/winutil&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;New command!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;iwr -useb https://christitus.com/win | iex
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;July 2021 Update&lt;/h2&gt;
&lt;p&gt;If you are coming here from the YouTube video I have taken all the scripts below and a system admin script I used a lot in the past to make a streamlined debloat script. This script will optimize Windows and can be run multiple times if you have an update ruin all the optimizations. I have also made it very easy to launch. Here is the source files: &lt;a href=&quot;https://github.com/ChrisTitusTech/win10script&quot;&gt;https://github.com/ChrisTitusTech/win10script&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you want to just run this on any system, you can easily copy and paste this into a Admin Powershell prompt and watch it do everything for you. It does have two prompts based on user feedback. Let me know what you think below!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;OLD PROJECT - DEPRECATED&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;iex ((New-Object System.Net.WebClient).DownloadString(&apos;https://git.io/JJ8R4&apos;))
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;What this script can do&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Installs any program listed that you click on using WinGet&lt;/li&gt;
&lt;li&gt;Removed Telemetry&lt;/li&gt;
&lt;li&gt;Disables Cortana&lt;/li&gt;
&lt;li&gt;Deletes various schedules tasks that rebloat the system&lt;/li&gt;
&lt;li&gt;Fixes problems that other scripts causes (lock screen and personalization options restricted)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Based on User feedback Microsoft Store and Windows Defender is no longer touched.&lt;/p&gt;
&lt;h3&gt;Toolbox Walkthrough Video&lt;/h3&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/V27McA7ch6w&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h2&gt;User Requested Restore Scripts&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;iex ((New-Object System.Net.WebClient).DownloadString(&apos;https://git.io/JTbKD&apos;))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This restore script pops up a GUI that lets you restore what you want to FACTORY DEFAULTS!&lt;/p&gt;
&lt;p&gt;Current Lineup:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cortana&lt;/li&gt;
&lt;li&gt;Tray Icons&lt;/li&gt;
&lt;li&gt;Action Center&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Old Methods from Prior Videos that I no longer use&lt;/h2&gt;
&lt;p&gt;The project I use has been developed for many years now and is extremely good. Here is the source github project I use:&lt;br /&gt;
&lt;a href=&quot;https://github.com/Sycnex/Windows10Debloater&quot;&gt;https://github.com/Sycnex/Windows10Debloater&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is a new project that was brought to my attention, but has quickly made a name for itself. It works very well and is typically more up to date than the above project.&lt;br /&gt;
&lt;a href=&quot;https://github.com/farag2/Windows-10-Setup-Script&quot;&gt;https://github.com/farag2/Windows-10-Setup-Script&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Optimal Way to Use this Tool&lt;/h2&gt;
&lt;p&gt;I recommend running this tool under the following conditions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Before User Profile is Created&lt;/li&gt;
&lt;li&gt;Empty Desktop and Downloads (Past versions has deleted files from Desktop and Downloads)&lt;/li&gt;
&lt;li&gt;After installing New Feature Updates&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Recommended Options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Disable Cortana&lt;/li&gt;
&lt;li&gt;Uninstall OneDrive&lt;/li&gt;
&lt;li&gt;Run Essential Tweaks&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I generally always enable Dark Mode and Install 3.5 .NET but that is entirely my personal preference.&lt;/p&gt;
</content:encoded></item><item><title>Wsl2</title><link>https://christitus.com/wsl2/</link><guid isPermaLink="true">https://christitus.com/wsl2/</guid><description>&lt;p&gt;This article goes over WSL 1 and 2 for Feature Update 2004. This will help you know which WSL you are currently using for any Linux installs on your PC.&lt;/p&gt;
  
&lt;p&gt;&lt;em&gt;Source Article: &lt;a href=&quot;https://docs.microsoft.com/en-us/windows/wsl/install-win10&quot;&gt;https://docs.microsoft.com/en-us/windows/wsl/install-win10&lt;/a&gt; I copy these because Microsoft is notorious for changing URLs and to make additions&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Install the Windows Subsystem for Linux&lt;/h2&gt;
&lt;p&gt;Before installing any Linux distributions on Windows, you must enable the &quot;Windows Subsystem for Linux&quot; optional feature.&lt;br /&gt;
&lt;strong&gt;Open PowerShell as Administrator and run:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To only install WSL 1, you should now restart your machine and move on to Install your Linux distribution of choice, otherwise wait to restart and move on to update to WSL 2. Read more about Comparing WSL 2 and WSL 1.&lt;/p&gt;
&lt;h2&gt;Update to WSL 2&lt;/h2&gt;
&lt;p&gt;To update to WSL 2, you must meet the follow criteria:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Running Windows 10, updated to version 2004, Build 19041 or higher.&lt;/li&gt;
&lt;li&gt;Check your Windows version by selecting the Windows logo key + R, type &lt;code&gt;winver&lt;/code&gt;, select OK. (Or enter the ver command in Windows Command Prompt). Please update to the latest Windows version if your build is lower than 19041. Get Windows Update Assistant.&lt;/li&gt;
&lt;li&gt;Enable the &apos;Virtual Machine Platform&apos; optional component&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Before installing WSL 2, you must enable the &quot;Virtual Machine Platform&quot; optional feature.&lt;br /&gt;
&lt;strong&gt;Open PowerShell as Administrator and run:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Restart your machine to complete the WSL install and update to WSL 2.&lt;/p&gt;
&lt;h3&gt;Set WSL 2 as your default version&lt;/h3&gt;
&lt;p&gt;Run the following command in Powershell to set WSL 2 as the default version when installing a new Linux distribution:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wsl --set-default-version 2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: The update from WSL 1 to WSL 2 may take several minutes to complete depending on the size of your targeted distribution.&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;Troubleshooting WSL 2 set-default error&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/wsl/wsl-kernel.webp&quot; alt=&quot;wsl-kernel&quot; /&gt;&lt;br /&gt;
If you can&apos;t set the default version after enabling the virtual machine platform and linux subsystem for windows. Then you need to do a kernel upgrade. This done by running the following msi file: &lt;a href=&quot;https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi&quot;&gt;https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Install your Linux distribution of choice&lt;/h2&gt;
&lt;p&gt;Open the Microsoft Store and select your favorite Linux distribution.&lt;br /&gt;
&lt;img src=&quot;/images/2020/wsl/wsl-store.webp&quot; alt=&quot;wsl-store&quot; /&gt;&lt;br /&gt;
The following links will open the Microsoft store page for each distribution:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/store/apps/9pjn388hp8c9&quot;&gt;Ubuntu 16.04 LTS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/store/apps/9N9TNGVNDL3Q&quot;&gt;Ubuntu 18.04 LTS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/store/apps/9n6svws3rx71&quot;&gt;Ubuntu 20.04 LTS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/store/apps/9NJFZK00FGKV&quot;&gt;openSUSE Leap 15.1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/store/apps/9MZ3D1TRP8T1&quot;&gt;SUSE Linux Enterprise Server 12 SP5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/store/apps/9PN498VPMF3Z&quot;&gt;SUSE Linux Enterprise Server 15 SP1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/store/apps/9PKR34TNCV07&quot;&gt;Kali Linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/store/apps/9MSVKQC78PK6&quot;&gt;Debian GNU/Linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/store/apps/9n6gdm4k2hnc&quot;&gt;Fedora Remix for WSL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/store/apps/9NV1GV1PXZ6P&quot;&gt;Pengwin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/store/apps/9N8LP0X93VCP&quot;&gt;Pengwin Enterprise&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/store/apps/9p804crf0395&quot;&gt;Alpine WSL&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;From the distribution&apos;s page, select &quot;Get&quot;.&lt;br /&gt;
&lt;img src=&quot;/images/2020/wsl/wsl-store2.webp&quot; alt=&quot;wsl-store2&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Set up a new distribution&lt;/h2&gt;
&lt;p&gt;The first time you launch a newly installed Linux distribution, a console window will open and you&apos;ll be asked to wait for a minute or two for files to de-compress and be stored on your PC. All future launches should take less than a second.
You will then need to create a user account and password for your new Linux distribution.&lt;br /&gt;
&lt;img src=&quot;/images/2020/wsl/wsl-prompt.webp&quot; alt=&quot;wsl-prompt&quot; /&gt;&lt;br /&gt;
Set your distribution version to WSL 1 or WSL 2&lt;br /&gt;
You can check the WSL version assigned to each of the Linux distributions you have installed by opening the PowerShell command line and entering the command (only available in Windows Build 19041 or higher): &lt;code&gt;wsl -l -v&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wsl --list --verbose
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To set a distribution to be backed by either version of WSL please run:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wsl --set-version &amp;lt;distribution name&amp;gt; &amp;lt;versionNumber&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Make sure to replace  with the actual name of your distribution and  with the number &apos;1&apos; or &apos;2&apos;. You can change back to WSL 1 at anytime by running the same command as above but replacing the &apos;2&apos; with a &apos;1&apos;.&lt;br /&gt;
Additionally, if you want to make WSL 2 your default architecture you can do so with this command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wsl --set-default-version 2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: This will set the version of any new distribution installed to WSL 2.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Troubleshooting installation&lt;/h2&gt;
&lt;p&gt;Below are related errors and suggested fixes. Refer to the WSL troubleshooting page for other common errors and their solutions.&lt;/p&gt;
&lt;h3&gt;Installation failed with error 0x80070003&lt;/h3&gt;
&lt;p&gt;The Windows Subsystem for Linux only runs on your system drive (usually this is your C: drive). Make sure that distributions are stored on your system drive:&lt;br /&gt;
&lt;strong&gt;Open Settings -&amp;gt; Storage -&amp;gt; More Storage Settings:&lt;/strong&gt; Change where new content is saved&lt;br /&gt;
&lt;img src=&quot;/images/2020/wsl/wsl-troubleshoot.webp&quot; alt=&quot;wsl-troubleshoot&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;WslRegisterDistribution failed with error 0x8007019e&lt;/h4&gt;
&lt;p&gt;The Windows Subsystem for Linux optional component is not enabled:&lt;br /&gt;
&lt;strong&gt;Open Control Panel -&amp;gt; Programs and Features -&amp;gt; Turn Windows Feature on or off -&amp;gt; Check Windows Subsystem for Linux or using the PowerShell cmdlet mentioned at the beginning of this article.&lt;/strong&gt;&lt;/p&gt;
&lt;h4&gt;Installation failed with error 0x80070003 or error 0x80370102&lt;/h4&gt;
&lt;p&gt;Please make sure that virtualization is enabled inside of your computer&apos;s BIOS. The instructions on how to do this will vary from computer to computer, and will most likely be under CPU related options.&lt;/p&gt;
&lt;h4&gt;Error when trying to upgrade: Invalid command line option: wsl --set-version Ubuntu 2&lt;/h4&gt;
&lt;p&gt;Please make sure that you have the Windows Subsystem for Linux enabled, and that you&apos;re using Windows Build version 19041 or higher. To enable WSL run this command in a Powershell prompt with admin privileges: Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux. You can find the &lt;a href=&quot;https://docs.microsoft.com/en-us/windows/wsl/install-win10&quot;&gt;full WSL install instructions&lt;/a&gt; on Microsoft&apos;s site.&lt;/p&gt;
&lt;h4&gt;The requested operation could not be completed due to a virtual disk system limitation. Virtual hard disk files must be uncompressed and unencrypted and must not be sparse&lt;/h4&gt;
&lt;p&gt;Please check WSL Github &lt;a href=&quot;https://github.com/microsoft/WSL/issues/4103&quot;&gt;thread #4103&lt;/a&gt; where this issue is being tracked for updated information.&lt;/p&gt;
&lt;h4&gt;The term &apos;wsl&apos; is not recognized as the name of a cmdlet, function, script file, or operable program&lt;/h4&gt;
&lt;p&gt;Ensure that the Windows Subsystem for Linux Optional Component is installed. Additionally, if you are using an Arm64 device and running this command from PowerShell, you will receive this error. Instead run wsl.exe from PowerShell Core, or Command Prompt.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;WSL 2 is still very new and as such is still rough around the edges. However, the performance increase is undeniable and is a substantial improvement over&lt;/p&gt;
</description><pubDate>Sun, 07 Jun 2020 15:50:19 GMT</pubDate><content:encoded>&lt;p&gt;This article goes over WSL 1 and 2 for Feature Update 2004. This will help you know which WSL you are currently using for any Linux installs on your PC.&lt;/p&gt;
  
&lt;p&gt;&lt;em&gt;Source Article: &lt;a href=&quot;https://docs.microsoft.com/en-us/windows/wsl/install-win10&quot;&gt;https://docs.microsoft.com/en-us/windows/wsl/install-win10&lt;/a&gt; I copy these because Microsoft is notorious for changing URLs and to make additions&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Install the Windows Subsystem for Linux&lt;/h2&gt;
&lt;p&gt;Before installing any Linux distributions on Windows, you must enable the &quot;Windows Subsystem for Linux&quot; optional feature.&lt;br /&gt;
&lt;strong&gt;Open PowerShell as Administrator and run:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To only install WSL 1, you should now restart your machine and move on to Install your Linux distribution of choice, otherwise wait to restart and move on to update to WSL 2. Read more about Comparing WSL 2 and WSL 1.&lt;/p&gt;
&lt;h2&gt;Update to WSL 2&lt;/h2&gt;
&lt;p&gt;To update to WSL 2, you must meet the follow criteria:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Running Windows 10, updated to version 2004, Build 19041 or higher.&lt;/li&gt;
&lt;li&gt;Check your Windows version by selecting the Windows logo key + R, type &lt;code&gt;winver&lt;/code&gt;, select OK. (Or enter the ver command in Windows Command Prompt). Please update to the latest Windows version if your build is lower than 19041. Get Windows Update Assistant.&lt;/li&gt;
&lt;li&gt;Enable the &apos;Virtual Machine Platform&apos; optional component&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Before installing WSL 2, you must enable the &quot;Virtual Machine Platform&quot; optional feature.&lt;br /&gt;
&lt;strong&gt;Open PowerShell as Administrator and run:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Restart your machine to complete the WSL install and update to WSL 2.&lt;/p&gt;
&lt;h3&gt;Set WSL 2 as your default version&lt;/h3&gt;
&lt;p&gt;Run the following command in Powershell to set WSL 2 as the default version when installing a new Linux distribution:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wsl --set-default-version 2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: The update from WSL 1 to WSL 2 may take several minutes to complete depending on the size of your targeted distribution.&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;Troubleshooting WSL 2 set-default error&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/wsl/wsl-kernel.webp&quot; alt=&quot;wsl-kernel&quot; /&gt;&lt;br /&gt;
If you can&apos;t set the default version after enabling the virtual machine platform and linux subsystem for windows. Then you need to do a kernel upgrade. This done by running the following msi file: &lt;a href=&quot;https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi&quot;&gt;https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Install your Linux distribution of choice&lt;/h2&gt;
&lt;p&gt;Open the Microsoft Store and select your favorite Linux distribution.&lt;br /&gt;
&lt;img src=&quot;/images/2020/wsl/wsl-store.webp&quot; alt=&quot;wsl-store&quot; /&gt;&lt;br /&gt;
The following links will open the Microsoft store page for each distribution:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/store/apps/9pjn388hp8c9&quot;&gt;Ubuntu 16.04 LTS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/store/apps/9N9TNGVNDL3Q&quot;&gt;Ubuntu 18.04 LTS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/store/apps/9n6svws3rx71&quot;&gt;Ubuntu 20.04 LTS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/store/apps/9NJFZK00FGKV&quot;&gt;openSUSE Leap 15.1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/store/apps/9MZ3D1TRP8T1&quot;&gt;SUSE Linux Enterprise Server 12 SP5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/store/apps/9PN498VPMF3Z&quot;&gt;SUSE Linux Enterprise Server 15 SP1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/store/apps/9PKR34TNCV07&quot;&gt;Kali Linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/store/apps/9MSVKQC78PK6&quot;&gt;Debian GNU/Linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/store/apps/9n6gdm4k2hnc&quot;&gt;Fedora Remix for WSL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/store/apps/9NV1GV1PXZ6P&quot;&gt;Pengwin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/store/apps/9N8LP0X93VCP&quot;&gt;Pengwin Enterprise&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/store/apps/9p804crf0395&quot;&gt;Alpine WSL&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;From the distribution&apos;s page, select &quot;Get&quot;.&lt;br /&gt;
&lt;img src=&quot;/images/2020/wsl/wsl-store2.webp&quot; alt=&quot;wsl-store2&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Set up a new distribution&lt;/h2&gt;
&lt;p&gt;The first time you launch a newly installed Linux distribution, a console window will open and you&apos;ll be asked to wait for a minute or two for files to de-compress and be stored on your PC. All future launches should take less than a second.
You will then need to create a user account and password for your new Linux distribution.&lt;br /&gt;
&lt;img src=&quot;/images/2020/wsl/wsl-prompt.webp&quot; alt=&quot;wsl-prompt&quot; /&gt;&lt;br /&gt;
Set your distribution version to WSL 1 or WSL 2&lt;br /&gt;
You can check the WSL version assigned to each of the Linux distributions you have installed by opening the PowerShell command line and entering the command (only available in Windows Build 19041 or higher): &lt;code&gt;wsl -l -v&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wsl --list --verbose
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To set a distribution to be backed by either version of WSL please run:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wsl --set-version &amp;lt;distribution name&amp;gt; &amp;lt;versionNumber&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Make sure to replace  with the actual name of your distribution and  with the number &apos;1&apos; or &apos;2&apos;. You can change back to WSL 1 at anytime by running the same command as above but replacing the &apos;2&apos; with a &apos;1&apos;.&lt;br /&gt;
Additionally, if you want to make WSL 2 your default architecture you can do so with this command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wsl --set-default-version 2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: This will set the version of any new distribution installed to WSL 2.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Troubleshooting installation&lt;/h2&gt;
&lt;p&gt;Below are related errors and suggested fixes. Refer to the WSL troubleshooting page for other common errors and their solutions.&lt;/p&gt;
&lt;h3&gt;Installation failed with error 0x80070003&lt;/h3&gt;
&lt;p&gt;The Windows Subsystem for Linux only runs on your system drive (usually this is your C: drive). Make sure that distributions are stored on your system drive:&lt;br /&gt;
&lt;strong&gt;Open Settings -&amp;gt; Storage -&amp;gt; More Storage Settings:&lt;/strong&gt; Change where new content is saved&lt;br /&gt;
&lt;img src=&quot;/images/2020/wsl/wsl-troubleshoot.webp&quot; alt=&quot;wsl-troubleshoot&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;WslRegisterDistribution failed with error 0x8007019e&lt;/h4&gt;
&lt;p&gt;The Windows Subsystem for Linux optional component is not enabled:&lt;br /&gt;
&lt;strong&gt;Open Control Panel -&amp;gt; Programs and Features -&amp;gt; Turn Windows Feature on or off -&amp;gt; Check Windows Subsystem for Linux or using the PowerShell cmdlet mentioned at the beginning of this article.&lt;/strong&gt;&lt;/p&gt;
&lt;h4&gt;Installation failed with error 0x80070003 or error 0x80370102&lt;/h4&gt;
&lt;p&gt;Please make sure that virtualization is enabled inside of your computer&apos;s BIOS. The instructions on how to do this will vary from computer to computer, and will most likely be under CPU related options.&lt;/p&gt;
&lt;h4&gt;Error when trying to upgrade: Invalid command line option: wsl --set-version Ubuntu 2&lt;/h4&gt;
&lt;p&gt;Please make sure that you have the Windows Subsystem for Linux enabled, and that you&apos;re using Windows Build version 19041 or higher. To enable WSL run this command in a Powershell prompt with admin privileges: Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux. You can find the &lt;a href=&quot;https://docs.microsoft.com/en-us/windows/wsl/install-win10&quot;&gt;full WSL install instructions&lt;/a&gt; on Microsoft&apos;s site.&lt;/p&gt;
&lt;h4&gt;The requested operation could not be completed due to a virtual disk system limitation. Virtual hard disk files must be uncompressed and unencrypted and must not be sparse&lt;/h4&gt;
&lt;p&gt;Please check WSL Github &lt;a href=&quot;https://github.com/microsoft/WSL/issues/4103&quot;&gt;thread #4103&lt;/a&gt; where this issue is being tracked for updated information.&lt;/p&gt;
&lt;h4&gt;The term &apos;wsl&apos; is not recognized as the name of a cmdlet, function, script file, or operable program&lt;/h4&gt;
&lt;p&gt;Ensure that the Windows Subsystem for Linux Optional Component is installed. Additionally, if you are using an Arm64 device and running this command from PowerShell, you will receive this error. Instead run wsl.exe from PowerShell Core, or Command Prompt.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;WSL 2 is still very new and as such is still rough around the edges. However, the performance increase is undeniable and is a substantial improvement over&lt;/p&gt;
</content:encoded></item><item><title>Custom Vim</title><link>https://christitus.com/custom-vim/</link><guid isPermaLink="true">https://christitus.com/custom-vim/</guid><description>&lt;p&gt;This article originally documented my Vim setup and the retired &lt;code&gt;myvim&lt;/code&gt;
repository. I no longer use Vim and have moved my editor workflow to Neovim.&lt;/p&gt;

&lt;h2&gt;My current editor setup&lt;/h2&gt;
&lt;p&gt;My maintained configuration now lives in the
&lt;a href=&quot;https://github.com/ChrisTitusTech/neovim&quot;&gt;ChrisTitusTech/neovim&lt;/a&gt; project. It
is a Lua-based setup built on kickstart.nvim with LSP support, completion,
formatting, project search, file navigation, and writing tools.&lt;/p&gt;
&lt;p&gt;For the full setup and current feature overview, read
&lt;a href=&quot;/vim-the-ultimate-editor/&quot;&gt;Neovim: The Ultimate Editor&lt;/a&gt; and
&lt;a href=&quot;/neovim-the-elite-editor/&quot;&gt;Neovim the Elite Editor&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Quick installation&lt;/h2&gt;
&lt;p&gt;On Linux, clone the project to a normal directory and run its dependency
repair script:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/ChrisTitusTech/neovim ~/neovim
cd ~/neovim
bash lin-depend.sh
nvim
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;On first launch, Neovim installs the configured plugins. Use &lt;code&gt;:checkhealth&lt;/code&gt; to
check the environment, &lt;code&gt;:Lazy&lt;/code&gt; to manage plugins, and &lt;code&gt;:Mason&lt;/code&gt; to manage
language servers and development tools.&lt;/p&gt;
&lt;p&gt;The old &lt;code&gt;.vimrc&lt;/code&gt; and Vim-plug instructions are intentionally no longer
included because the configuration they referenced no longer exists.&lt;/p&gt;
</description><pubDate>Thu, 04 Jun 2020 20:05:41 GMT</pubDate><content:encoded>&lt;p&gt;This article originally documented my Vim setup and the retired &lt;code&gt;myvim&lt;/code&gt;
repository. I no longer use Vim and have moved my editor workflow to Neovim.&lt;/p&gt;

&lt;h2&gt;My current editor setup&lt;/h2&gt;
&lt;p&gt;My maintained configuration now lives in the
&lt;a href=&quot;https://github.com/ChrisTitusTech/neovim&quot;&gt;ChrisTitusTech/neovim&lt;/a&gt; project. It
is a Lua-based setup built on kickstart.nvim with LSP support, completion,
formatting, project search, file navigation, and writing tools.&lt;/p&gt;
&lt;p&gt;For the full setup and current feature overview, read
&lt;a href=&quot;/vim-the-ultimate-editor/&quot;&gt;Neovim: The Ultimate Editor&lt;/a&gt; and
&lt;a href=&quot;/neovim-the-elite-editor/&quot;&gt;Neovim the Elite Editor&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Quick installation&lt;/h2&gt;
&lt;p&gt;On Linux, clone the project to a normal directory and run its dependency
repair script:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/ChrisTitusTech/neovim ~/neovim
cd ~/neovim
bash lin-depend.sh
nvim
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;On first launch, Neovim installs the configured plugins. Use &lt;code&gt;:checkhealth&lt;/code&gt; to
check the environment, &lt;code&gt;:Lazy&lt;/code&gt; to manage plugins, and &lt;code&gt;:Mason&lt;/code&gt; to manage
language servers and development tools.&lt;/p&gt;
&lt;p&gt;The old &lt;code&gt;.vimrc&lt;/code&gt; and Vim-plug instructions are intentionally no longer
included because the configuration they referenced no longer exists.&lt;/p&gt;
</content:encoded></item><item><title>Degoogle Apps</title><link>https://christitus.com/degoogle-apps/</link><guid isPermaLink="true">https://christitus.com/degoogle-apps/</guid><description>&lt;p&gt;This article goes over the apps that work and don&apos;t work with a Degoogled phone without google play services installed&lt;/p&gt;

&lt;h2&gt;Aurora Store Apps (Google Play Store apks)&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;App Name&lt;/th&gt;
&lt;th&gt;State&lt;/th&gt;
&lt;th&gt;Warnings&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Coinbase&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GoPro&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;Google Services Error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Keep Notes&lt;/td&gt;
&lt;td&gt;Broken&lt;/td&gt;
&lt;td&gt;Google App&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Maps&lt;/td&gt;
&lt;td&gt;Broken&lt;/td&gt;
&lt;td&gt;Google App&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Photos&lt;/td&gt;
&lt;td&gt;Broken&lt;/td&gt;
&lt;td&gt;Google App&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kasa&lt;/td&gt;
&lt;td&gt;Broken&lt;/td&gt;
&lt;td&gt;Login Error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LastPass&lt;/td&gt;
&lt;td&gt;Broken&lt;/td&gt;
&lt;td&gt;Crash on Startup&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lichess&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lyft&lt;/td&gt;
&lt;td&gt;Broken&lt;/td&gt;
&lt;td&gt;GPS and Google Error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft Outlook&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Patreon&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;Google Services Error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ring&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;Google Services Error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Robinhood&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;Google Services Error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SKED&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;Google Services Error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SimpliSafe&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;Google Services Error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Spotify&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;None - Except On Initial Login&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Starbucks&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;Google Services Error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Steam&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stride&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;Google Services Error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Synology Drive&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Synology Memories&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Uber&lt;/td&gt;
&lt;td&gt;Broken&lt;/td&gt;
&lt;td&gt;GPS and Google Error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yi Home&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;**Note: Uber and Lyft could be used through their mobile websites at the time of writing.&lt;/p&gt;
&lt;h2&gt;F-Droid Apps (Free and Open Source)&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;App Name&lt;/th&gt;
&lt;th&gt;Alternative To&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Files&lt;/td&gt;
&lt;td&gt;Android Files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ImagePipe&lt;/td&gt;
&lt;td&gt;Google Photos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Import Contacts&lt;/td&gt;
&lt;td&gt;Google Contacts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lemmy&lt;/td&gt;
&lt;td&gt;Reddit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NewPipe&lt;/td&gt;
&lt;td&gt;YouTube&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OSMAnd&lt;/td&gt;
&lt;td&gt;Google Maps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenVPN for Android&lt;/td&gt;
&lt;td&gt;OpenVPN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Personal DNS Filtering&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Slide&lt;/td&gt;
&lt;td&gt;Reddit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Twidere&lt;/td&gt;
&lt;td&gt;Twitter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Twire&lt;/td&gt;
&lt;td&gt;Twitch&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;**Note: ImagePipe shrinks photos and does basic edits. I sync my photos with Synology Memories.&lt;/p&gt;
</description><pubDate>Wed, 03 Jun 2020 02:28:09 GMT</pubDate><content:encoded>&lt;p&gt;This article goes over the apps that work and don&apos;t work with a Degoogled phone without google play services installed&lt;/p&gt;

&lt;h2&gt;Aurora Store Apps (Google Play Store apks)&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;App Name&lt;/th&gt;
&lt;th&gt;State&lt;/th&gt;
&lt;th&gt;Warnings&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Coinbase&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GoPro&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;Google Services Error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Keep Notes&lt;/td&gt;
&lt;td&gt;Broken&lt;/td&gt;
&lt;td&gt;Google App&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Maps&lt;/td&gt;
&lt;td&gt;Broken&lt;/td&gt;
&lt;td&gt;Google App&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Photos&lt;/td&gt;
&lt;td&gt;Broken&lt;/td&gt;
&lt;td&gt;Google App&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kasa&lt;/td&gt;
&lt;td&gt;Broken&lt;/td&gt;
&lt;td&gt;Login Error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LastPass&lt;/td&gt;
&lt;td&gt;Broken&lt;/td&gt;
&lt;td&gt;Crash on Startup&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lichess&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lyft&lt;/td&gt;
&lt;td&gt;Broken&lt;/td&gt;
&lt;td&gt;GPS and Google Error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft Outlook&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Patreon&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;Google Services Error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ring&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;Google Services Error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Robinhood&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;Google Services Error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SKED&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;Google Services Error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SimpliSafe&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;Google Services Error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Spotify&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;None - Except On Initial Login&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Starbucks&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;Google Services Error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Steam&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stride&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;Google Services Error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Synology Drive&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Synology Memories&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Uber&lt;/td&gt;
&lt;td&gt;Broken&lt;/td&gt;
&lt;td&gt;GPS and Google Error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yi Home&lt;/td&gt;
&lt;td&gt;Works&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;**Note: Uber and Lyft could be used through their mobile websites at the time of writing.&lt;/p&gt;
&lt;h2&gt;F-Droid Apps (Free and Open Source)&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;App Name&lt;/th&gt;
&lt;th&gt;Alternative To&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Files&lt;/td&gt;
&lt;td&gt;Android Files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ImagePipe&lt;/td&gt;
&lt;td&gt;Google Photos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Import Contacts&lt;/td&gt;
&lt;td&gt;Google Contacts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lemmy&lt;/td&gt;
&lt;td&gt;Reddit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NewPipe&lt;/td&gt;
&lt;td&gt;YouTube&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OSMAnd&lt;/td&gt;
&lt;td&gt;Google Maps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenVPN for Android&lt;/td&gt;
&lt;td&gt;OpenVPN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Personal DNS Filtering&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Slide&lt;/td&gt;
&lt;td&gt;Reddit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Twidere&lt;/td&gt;
&lt;td&gt;Twitter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Twire&lt;/td&gt;
&lt;td&gt;Twitch&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;**Note: ImagePipe shrinks photos and does basic edits. I sync my photos with Synology Memories.&lt;/p&gt;
</content:encoded></item><item><title>Install Wine Libfaudio0 Error</title><link>https://christitus.com/install-wine-libfaudio0-error/</link><guid isPermaLink="true">https://christitus.com/install-wine-libfaudio0-error/</guid><description>&lt;p&gt;This article helps you fix the Libfaudio0 error that you run into when installing Wine on an older Linux debian-based distribution like Linux Mint 19 or Ubuntu 18.&lt;/p&gt;

&lt;p&gt;Fix the dependancy error by downloading the following packages&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_18.04/amd64/libfaudio0_19.07-0~bionic_amd64.deb
wget https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_18.04/i386/libfaudio0_19.07-0~bionic_i386.deb
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Once these are downloaded you need to installed them with&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo dpkg -i libfaudio0_19.07-0~bionic_amd64.deb libfaudio0_19.07-0~bionic_i386.deb
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now that we have fixed the dependency error you can proceed with your wine-staging installation. Not this is mainly an error for bleeding edge version of wine from the WineHQ PPA.&lt;/p&gt;
</description><pubDate>Mon, 25 May 2020 18:14:23 GMT</pubDate><content:encoded>&lt;p&gt;This article helps you fix the Libfaudio0 error that you run into when installing Wine on an older Linux debian-based distribution like Linux Mint 19 or Ubuntu 18.&lt;/p&gt;

&lt;p&gt;Fix the dependancy error by downloading the following packages&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_18.04/amd64/libfaudio0_19.07-0~bionic_amd64.deb
wget https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_18.04/i386/libfaudio0_19.07-0~bionic_i386.deb
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Once these are downloaded you need to installed them with&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo dpkg -i libfaudio0_19.07-0~bionic_amd64.deb libfaudio0_19.07-0~bionic_i386.deb
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now that we have fixed the dependency error you can proceed with your wine-staging installation. Not this is mainly an error for bleeding edge version of wine from the WineHQ PPA.&lt;/p&gt;
</content:encoded></item><item><title>Emoji</title><link>https://christitus.com/emoji/</link><guid isPermaLink="true">https://christitus.com/emoji/</guid><description>&lt;p&gt;This article goes over installing emoji support in Linux.&lt;/p&gt;

&lt;h2&gt;Install Packages for Emoji Support&lt;/h2&gt;
&lt;p&gt;There are a couple packages that you need to install by default in Linux to get proper emoji support and getting them to display properly. Without this support you will pull up sites and just see blocks instead of the emoji that should be there.&lt;/p&gt;
&lt;p&gt;Install the following package &lt;code&gt;noto-fonts-emoji&lt;/code&gt;&lt;br /&gt;
Arch Install: &lt;code&gt;yay -S noto-fonts-emoji&lt;/code&gt;&lt;br /&gt;
Debian Install &lt;code&gt;sudo apt install noto-fonts-emoji&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Create Font Config File&lt;/h2&gt;
&lt;p&gt;While just having the above package will give most emoji support there are some sites that still won&apos;t display properly add the following file to the fontsconfig files in your config. &lt;em&gt;Note: If ~/.config/fontsconfig doesn&apos;t exists create the folder&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Minimal Install with only emoji fonts&lt;br /&gt;
&lt;code&gt;~/.config/fontconfig/conf.d/01-emoji.conf&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot;?&amp;gt;
&amp;lt;!DOCTYPE fontconfig SYSTEM &quot;fonts.dtd&quot;&amp;gt;
&amp;lt;fontconfig&amp;gt;
  &amp;lt;!-- Use Google Emojis --&amp;gt;
  &amp;lt;match target=&quot;pattern&quot;&amp;gt;
    &amp;lt;test qual=&quot;any&quot; name=&quot;family&quot;&amp;gt;&amp;lt;string&amp;gt;Segoe UI Emoji&amp;lt;/string&amp;gt;&amp;lt;/test&amp;gt;
    &amp;lt;edit name=&quot;family&quot; mode=&quot;assign&quot; binding=&quot;same&quot;&amp;gt;&amp;lt;string&amp;gt;Noto Color Emoji&amp;lt;/string&amp;gt;&amp;lt;/edit&amp;gt;
  &amp;lt;/match&amp;gt;
&amp;lt;/fontconfig&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Big Install with sans-serif, serif, and monospace replaced System-wide&lt;br /&gt;
&lt;code&gt;/etc/fonts/conf.d/02-emoji.conf&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot;?&amp;gt;
  &amp;lt;!DOCTYPE fontconfig SYSTEM &quot;fonts.dtd&quot;&amp;gt;
  &amp;lt;fontconfig&amp;gt;

   &amp;lt;alias&amp;gt;
     &amp;lt;family&amp;gt;sans-serif&amp;lt;/family&amp;gt;
     &amp;lt;prefer&amp;gt;
       &amp;lt;family&amp;gt;Your favorite sans-serif font name&amp;lt;/family&amp;gt;
       &amp;lt;family&amp;gt;Noto Color Emoji&amp;lt;/family&amp;gt;
       &amp;lt;family&amp;gt;Noto Emoji&amp;lt;/family&amp;gt;
     &amp;lt;/prefer&amp;gt; 
   &amp;lt;/alias&amp;gt;

   &amp;lt;alias&amp;gt;
     &amp;lt;family&amp;gt;serif&amp;lt;/family&amp;gt;
     &amp;lt;prefer&amp;gt;
       &amp;lt;family&amp;gt;Your favorite serif font name&amp;lt;/family&amp;gt;
       &amp;lt;family&amp;gt;Noto Color Emoji&amp;lt;/family&amp;gt;
       &amp;lt;family&amp;gt;Noto Emoji&amp;lt;/family&amp;gt;
     &amp;lt;/prefer&amp;gt;
   &amp;lt;/alias&amp;gt;

   &amp;lt;alias&amp;gt;
    &amp;lt;family&amp;gt;monospace&amp;lt;/family&amp;gt;
    &amp;lt;prefer&amp;gt;
      &amp;lt;family&amp;gt;Your favorite monospace font name&amp;lt;/family&amp;gt;
      &amp;lt;family&amp;gt;Noto Color Emoji&amp;lt;/family&amp;gt;
      &amp;lt;family&amp;gt;Noto Emoji&amp;lt;/family&amp;gt;
     &amp;lt;/prefer&amp;gt;
   &amp;lt;/alias&amp;gt;

  &amp;lt;/fontconfig&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Using Emoji Keyboard&lt;/h2&gt;
&lt;p&gt;First install the ibus-uniemoji package or the GNOME extension if you use that Desktop Environment.&lt;br /&gt;
Arch Install: &lt;code&gt;yay -S ibus-uniemoji&lt;/code&gt;&lt;br /&gt;
Debian Users: &lt;em&gt;(Compile from source)&lt;/em&gt; &lt;a href=&quot;https://github.com/salty-horse/ibus-uniemoji&quot;&gt;https://github.com/salty-horse/ibus-uniemoji&lt;/a&gt;&lt;br /&gt;
Emoji &lt;a href=&quot;https://extensions.gnome.org/extension/1162/emoji-selector/&quot;&gt;Gnome Extension Link&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Then simply keybind the package or extension using your settings menu or manually launch it using your launcher.&lt;br /&gt;
Launch by typing: &lt;code&gt;ibus emoji&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Note: I have mine bound to Meta Key + a&lt;/em&gt;&lt;/p&gt;
</description><pubDate>Thu, 09 Apr 2020 20:35:07 GMT</pubDate><content:encoded>&lt;p&gt;This article goes over installing emoji support in Linux.&lt;/p&gt;

&lt;h2&gt;Install Packages for Emoji Support&lt;/h2&gt;
&lt;p&gt;There are a couple packages that you need to install by default in Linux to get proper emoji support and getting them to display properly. Without this support you will pull up sites and just see blocks instead of the emoji that should be there.&lt;/p&gt;
&lt;p&gt;Install the following package &lt;code&gt;noto-fonts-emoji&lt;/code&gt;&lt;br /&gt;
Arch Install: &lt;code&gt;yay -S noto-fonts-emoji&lt;/code&gt;&lt;br /&gt;
Debian Install &lt;code&gt;sudo apt install noto-fonts-emoji&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Create Font Config File&lt;/h2&gt;
&lt;p&gt;While just having the above package will give most emoji support there are some sites that still won&apos;t display properly add the following file to the fontsconfig files in your config. &lt;em&gt;Note: If ~/.config/fontsconfig doesn&apos;t exists create the folder&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Minimal Install with only emoji fonts&lt;br /&gt;
&lt;code&gt;~/.config/fontconfig/conf.d/01-emoji.conf&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot;?&amp;gt;
&amp;lt;!DOCTYPE fontconfig SYSTEM &quot;fonts.dtd&quot;&amp;gt;
&amp;lt;fontconfig&amp;gt;
  &amp;lt;!-- Use Google Emojis --&amp;gt;
  &amp;lt;match target=&quot;pattern&quot;&amp;gt;
    &amp;lt;test qual=&quot;any&quot; name=&quot;family&quot;&amp;gt;&amp;lt;string&amp;gt;Segoe UI Emoji&amp;lt;/string&amp;gt;&amp;lt;/test&amp;gt;
    &amp;lt;edit name=&quot;family&quot; mode=&quot;assign&quot; binding=&quot;same&quot;&amp;gt;&amp;lt;string&amp;gt;Noto Color Emoji&amp;lt;/string&amp;gt;&amp;lt;/edit&amp;gt;
  &amp;lt;/match&amp;gt;
&amp;lt;/fontconfig&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Big Install with sans-serif, serif, and monospace replaced System-wide&lt;br /&gt;
&lt;code&gt;/etc/fonts/conf.d/02-emoji.conf&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot;?&amp;gt;
  &amp;lt;!DOCTYPE fontconfig SYSTEM &quot;fonts.dtd&quot;&amp;gt;
  &amp;lt;fontconfig&amp;gt;

   &amp;lt;alias&amp;gt;
     &amp;lt;family&amp;gt;sans-serif&amp;lt;/family&amp;gt;
     &amp;lt;prefer&amp;gt;
       &amp;lt;family&amp;gt;Your favorite sans-serif font name&amp;lt;/family&amp;gt;
       &amp;lt;family&amp;gt;Noto Color Emoji&amp;lt;/family&amp;gt;
       &amp;lt;family&amp;gt;Noto Emoji&amp;lt;/family&amp;gt;
     &amp;lt;/prefer&amp;gt; 
   &amp;lt;/alias&amp;gt;

   &amp;lt;alias&amp;gt;
     &amp;lt;family&amp;gt;serif&amp;lt;/family&amp;gt;
     &amp;lt;prefer&amp;gt;
       &amp;lt;family&amp;gt;Your favorite serif font name&amp;lt;/family&amp;gt;
       &amp;lt;family&amp;gt;Noto Color Emoji&amp;lt;/family&amp;gt;
       &amp;lt;family&amp;gt;Noto Emoji&amp;lt;/family&amp;gt;
     &amp;lt;/prefer&amp;gt;
   &amp;lt;/alias&amp;gt;

   &amp;lt;alias&amp;gt;
    &amp;lt;family&amp;gt;monospace&amp;lt;/family&amp;gt;
    &amp;lt;prefer&amp;gt;
      &amp;lt;family&amp;gt;Your favorite monospace font name&amp;lt;/family&amp;gt;
      &amp;lt;family&amp;gt;Noto Color Emoji&amp;lt;/family&amp;gt;
      &amp;lt;family&amp;gt;Noto Emoji&amp;lt;/family&amp;gt;
     &amp;lt;/prefer&amp;gt;
   &amp;lt;/alias&amp;gt;

  &amp;lt;/fontconfig&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Using Emoji Keyboard&lt;/h2&gt;
&lt;p&gt;First install the ibus-uniemoji package or the GNOME extension if you use that Desktop Environment.&lt;br /&gt;
Arch Install: &lt;code&gt;yay -S ibus-uniemoji&lt;/code&gt;&lt;br /&gt;
Debian Users: &lt;em&gt;(Compile from source)&lt;/em&gt; &lt;a href=&quot;https://github.com/salty-horse/ibus-uniemoji&quot;&gt;https://github.com/salty-horse/ibus-uniemoji&lt;/a&gt;&lt;br /&gt;
Emoji &lt;a href=&quot;https://extensions.gnome.org/extension/1162/emoji-selector/&quot;&gt;Gnome Extension Link&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Then simply keybind the package or extension using your settings menu or manually launch it using your launcher.&lt;br /&gt;
Launch by typing: &lt;code&gt;ibus emoji&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Note: I have mine bound to Meta Key + a&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title>How to Install Only Security Updates on Windows 10</title><link>https://christitus.com/windows-update-security-only/</link><guid isPermaLink="true">https://christitus.com/windows-update-security-only/</guid><description>&lt;p&gt;This article shows how to install only security updates on Windows 10. This is vital to avoid long updates on startup or shutdown!&lt;/p&gt;

&lt;h2&gt;Windows 10 Pro Users - Policy Editor Method&lt;/h2&gt;
&lt;p&gt;Open your Local Policy editor (Start - Run) and type &lt;code&gt;gpedit.msc&lt;/code&gt;&lt;br /&gt;
From this screen go to &lt;code&gt;Computer - Administrative Templates - Windows Components - Windows Update - Windows Update for Business&lt;/code&gt;&lt;br /&gt;
&lt;img src=&quot;/images/2020/winupdate/gpedit.webp&quot; alt=&quot;gpedit&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Now set the &lt;em&gt;Feature Updates&lt;/em&gt; to the following&lt;br /&gt;
&lt;img src=&quot;/images/2020/winupdate/gpedit2.webp&quot; alt=&quot;gpedit2&quot; /&gt;&lt;/p&gt;
&lt;p&gt;For &lt;em&gt;Quality Updates&lt;/em&gt;, I recommend deferring those 4 days.&lt;/p&gt;
&lt;h2&gt;Windows 10 Home Users - Regedit Method&lt;/h2&gt;
&lt;p&gt;Open up your registry editor (Start - Run) and type &lt;code&gt;regedit&lt;/code&gt;&lt;br /&gt;
Go to the follow key &lt;code&gt;Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings&lt;/code&gt;&lt;br /&gt;
Add the following DWORD Values (32-bit value):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BranchReadinessLevel 20&lt;/li&gt;
&lt;li&gt;DeferFeatureUpdatesPeriodInDays 365&lt;/li&gt;
&lt;li&gt;DeferQualityUpdatesPeriodInDays 4&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/winupdate/regedit.webp&quot; alt=&quot;regedit&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Set Active Hours&lt;/h2&gt;
&lt;p&gt;Under Settings and Updates &amp;amp; Security, make sure to set your active hours! I always set these manually as the automatic method is horrible. Always set an 18 hour window where you want to make sure your computer doesn&apos;t update.&lt;br /&gt;
&lt;em&gt;My personal active hours are 8 AM to 2 AM.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;These are settings that I recommend anyone using windows adopt. Otherwise, you will run into many update issues caused by the terrible quality control that goes into the first couple rounds of updates in Microsoft Windows 10.&lt;/p&gt;
</description><pubDate>Mon, 30 Mar 2020 02:55:22 GMT</pubDate><content:encoded>&lt;p&gt;This article shows how to install only security updates on Windows 10. This is vital to avoid long updates on startup or shutdown!&lt;/p&gt;

&lt;h2&gt;Windows 10 Pro Users - Policy Editor Method&lt;/h2&gt;
&lt;p&gt;Open your Local Policy editor (Start - Run) and type &lt;code&gt;gpedit.msc&lt;/code&gt;&lt;br /&gt;
From this screen go to &lt;code&gt;Computer - Administrative Templates - Windows Components - Windows Update - Windows Update for Business&lt;/code&gt;&lt;br /&gt;
&lt;img src=&quot;/images/2020/winupdate/gpedit.webp&quot; alt=&quot;gpedit&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Now set the &lt;em&gt;Feature Updates&lt;/em&gt; to the following&lt;br /&gt;
&lt;img src=&quot;/images/2020/winupdate/gpedit2.webp&quot; alt=&quot;gpedit2&quot; /&gt;&lt;/p&gt;
&lt;p&gt;For &lt;em&gt;Quality Updates&lt;/em&gt;, I recommend deferring those 4 days.&lt;/p&gt;
&lt;h2&gt;Windows 10 Home Users - Regedit Method&lt;/h2&gt;
&lt;p&gt;Open up your registry editor (Start - Run) and type &lt;code&gt;regedit&lt;/code&gt;&lt;br /&gt;
Go to the follow key &lt;code&gt;Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings&lt;/code&gt;&lt;br /&gt;
Add the following DWORD Values (32-bit value):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BranchReadinessLevel 20&lt;/li&gt;
&lt;li&gt;DeferFeatureUpdatesPeriodInDays 365&lt;/li&gt;
&lt;li&gt;DeferQualityUpdatesPeriodInDays 4&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/winupdate/regedit.webp&quot; alt=&quot;regedit&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Set Active Hours&lt;/h2&gt;
&lt;p&gt;Under Settings and Updates &amp;amp; Security, make sure to set your active hours! I always set these manually as the automatic method is horrible. Always set an 18 hour window where you want to make sure your computer doesn&apos;t update.&lt;br /&gt;
&lt;em&gt;My personal active hours are 8 AM to 2 AM.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;These are settings that I recommend anyone using windows adopt. Otherwise, you will run into many update issues caused by the terrible quality control that goes into the first couple rounds of updates in Microsoft Windows 10.&lt;/p&gt;
</content:encoded></item><item><title>Doom Eternal Linux</title><link>https://christitus.com/doom-eternal-linux/</link><guid isPermaLink="true">https://christitus.com/doom-eternal-linux/</guid><description>&lt;p&gt;This post is here to help guide you through setting up doom eternal on Linux.&lt;/p&gt;

&lt;h2&gt;Requirements&lt;/h2&gt;
&lt;p&gt;We will be using Glorious Eggroll&apos;s version of proton which is very easy to install and update with an update script. You can manually install this if you don&apos;t want to do the &quot;easy way&quot;.&lt;/p&gt;
&lt;h2&gt;Custom Proton GE Edition Install&lt;/h2&gt;
&lt;p&gt;Run the following commands:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget https://raw.githubusercontent.com/flubberding/ProtonUpdater/master/cproton.sh
sudo chmod a+x cproton.sh
sh cproton.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You will be prompted if you want to update it just type yes.&lt;br /&gt;
This will install the new GE proton into the ~/.steam/root/compatibility.d (arch) and ~/.steam/compatibility.d (debian) respectively.&lt;/p&gt;
&lt;h2&gt;Modifying Steam Launch Options&lt;/h2&gt;
&lt;p&gt;By default, the default settings will still make it so you are unable to launch the game. I found using the following in steam launch options not only fixes the problems but makes it perform better and get you to the title screen faster.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;RADV_PERFTEST=llvm PROTON_NO_ESYNC=1 %command% +in_terminal 1 +com_skipIntroVideo 1 +com_skipKeyPressOnLoadScreens 1 +com_skipSignInManager 1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you still encounter issues install the AMDVLK package &lt;a href=&quot;https://github.com/GPUOpen-Drivers/AMDVLK&quot;&gt;https://github.com/GPUOpen-Drivers/AMDVLK&lt;/a&gt;&lt;br /&gt;
&lt;em&gt;Note: Nvidia card users can&apos;t use this package and are currently having issues with Doom&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/g3UPxd8iUsU&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;All testing was done with a Linux box using an AMD Radeon RX580. Refer to the video above for a look at the performance. I have noticed a lot of people online complaining that they are still having performance problems, but all of them seem to be nVidia users.&lt;br /&gt;
All these fixes should be merged in to the official version of proton in a couple months and you shouldn&apos;t need to do any of this once this is done.&lt;/p&gt;
&lt;p&gt;Have Fun and Game On!&lt;/p&gt;
</description><pubDate>Mon, 23 Mar 2020 01:50:39 GMT</pubDate><content:encoded>&lt;p&gt;This post is here to help guide you through setting up doom eternal on Linux.&lt;/p&gt;

&lt;h2&gt;Requirements&lt;/h2&gt;
&lt;p&gt;We will be using Glorious Eggroll&apos;s version of proton which is very easy to install and update with an update script. You can manually install this if you don&apos;t want to do the &quot;easy way&quot;.&lt;/p&gt;
&lt;h2&gt;Custom Proton GE Edition Install&lt;/h2&gt;
&lt;p&gt;Run the following commands:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget https://raw.githubusercontent.com/flubberding/ProtonUpdater/master/cproton.sh
sudo chmod a+x cproton.sh
sh cproton.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You will be prompted if you want to update it just type yes.&lt;br /&gt;
This will install the new GE proton into the ~/.steam/root/compatibility.d (arch) and ~/.steam/compatibility.d (debian) respectively.&lt;/p&gt;
&lt;h2&gt;Modifying Steam Launch Options&lt;/h2&gt;
&lt;p&gt;By default, the default settings will still make it so you are unable to launch the game. I found using the following in steam launch options not only fixes the problems but makes it perform better and get you to the title screen faster.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;RADV_PERFTEST=llvm PROTON_NO_ESYNC=1 %command% +in_terminal 1 +com_skipIntroVideo 1 +com_skipKeyPressOnLoadScreens 1 +com_skipSignInManager 1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you still encounter issues install the AMDVLK package &lt;a href=&quot;https://github.com/GPUOpen-Drivers/AMDVLK&quot;&gt;https://github.com/GPUOpen-Drivers/AMDVLK&lt;/a&gt;&lt;br /&gt;
&lt;em&gt;Note: Nvidia card users can&apos;t use this package and are currently having issues with Doom&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/g3UPxd8iUsU&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;All testing was done with a Linux box using an AMD Radeon RX580. Refer to the video above for a look at the performance. I have noticed a lot of people online complaining that they are still having performance problems, but all of them seem to be nVidia users.&lt;br /&gt;
All these fixes should be merged in to the official version of proton in a couple months and you shouldn&apos;t need to do any of this once this is done.&lt;/p&gt;
&lt;p&gt;Have Fun and Game On!&lt;/p&gt;
</content:encoded></item><item><title>Zsh</title><link>https://christitus.com/zsh/</link><guid isPermaLink="true">https://christitus.com/zsh/</guid><description>&lt;p&gt;In this article, I go over my implementation of ZSH, which is a better shell alternative to BASH.&lt;/p&gt;

&lt;h2&gt;Why ZSH?&lt;/h2&gt;
&lt;p&gt;ZSH is an amazing shell that just makes everything a bit easier from auto suggestions, completing tasks you do regularly considerably faster.&lt;/p&gt;
&lt;h2&gt;Before you Begin: Dependencies&lt;/h2&gt;
&lt;p&gt;I built a resource for those starting out with my Github @ &lt;a href=&quot;https://github.com/ChrisTitusTech/zsh&quot;&gt;https://github.com/ChrisTitusTech/zsh&lt;/a&gt; and will be using many files from the project.&lt;/p&gt;
&lt;p&gt;Packages needed before you start:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;zsh - ZSH Shell&lt;/li&gt;
&lt;li&gt;zsh-syntax-highlighting - syntax highlighting for ZSH in standard repos&lt;/li&gt;
&lt;li&gt;autojump - jump to directories with j or jc for child or jo to open in file manager&lt;/li&gt;
&lt;li&gt;zsh-autosuggestions - Suggestions based on your history&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Initial Setup of ZSH&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;touch &quot;$HOME/.cache/zshhistory&quot;
#-- Setup Alias in $HOME/zsh/aliasrc
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo &apos;source ~/powerlevel10k/powerlevel10k.zsh-theme&apos; &amp;gt;&amp;gt; ~/.zshrc
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Complete Switch from BASH to ZSH&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;chsh $USER
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Then type &lt;code&gt;/bin/zsh&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;OR&lt;/em&gt; Edit &lt;code&gt;/etc/passwd&lt;/code&gt; and change /bin/bash to /bin/zsh&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/zsh-passwd.webp&quot; alt=&quot;ZSH Switch&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/gGmBUfMaWMU&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 19 Feb 2020 18:32:44 GMT</pubDate><content:encoded>&lt;p&gt;In this article, I go over my implementation of ZSH, which is a better shell alternative to BASH.&lt;/p&gt;

&lt;h2&gt;Why ZSH?&lt;/h2&gt;
&lt;p&gt;ZSH is an amazing shell that just makes everything a bit easier from auto suggestions, completing tasks you do regularly considerably faster.&lt;/p&gt;
&lt;h2&gt;Before you Begin: Dependencies&lt;/h2&gt;
&lt;p&gt;I built a resource for those starting out with my Github @ &lt;a href=&quot;https://github.com/ChrisTitusTech/zsh&quot;&gt;https://github.com/ChrisTitusTech/zsh&lt;/a&gt; and will be using many files from the project.&lt;/p&gt;
&lt;p&gt;Packages needed before you start:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;zsh - ZSH Shell&lt;/li&gt;
&lt;li&gt;zsh-syntax-highlighting - syntax highlighting for ZSH in standard repos&lt;/li&gt;
&lt;li&gt;autojump - jump to directories with j or jc for child or jo to open in file manager&lt;/li&gt;
&lt;li&gt;zsh-autosuggestions - Suggestions based on your history&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Initial Setup of ZSH&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;touch &quot;$HOME/.cache/zshhistory&quot;
#-- Setup Alias in $HOME/zsh/aliasrc
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo &apos;source ~/powerlevel10k/powerlevel10k.zsh-theme&apos; &amp;gt;&amp;gt; ~/.zshrc
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Complete Switch from BASH to ZSH&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;chsh $USER
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Then type &lt;code&gt;/bin/zsh&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;OR&lt;/em&gt; Edit &lt;code&gt;/etc/passwd&lt;/code&gt; and change /bin/bash to /bin/zsh&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2020/zsh-passwd.webp&quot; alt=&quot;ZSH Switch&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/gGmBUfMaWMU&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Lcars Screensaver</title><link>https://christitus.com/lcars-screensaver/</link><guid isPermaLink="true">https://christitus.com/lcars-screensaver/</guid><description>&lt;p&gt;This article goes over getting the LCARS screensaver by mewho working in Linux. This Screensaver was originally intended for Windows 9x and this is for fun!&lt;/p&gt;
&lt;h2&gt;Installation and Testing&lt;/h2&gt;
&lt;p&gt;First download the System47 Screensaver from &lt;a href=&quot;http://mewho.com&quot;&gt;mewho.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://mewho.com/system47/download1.htm&quot;&gt;LCARS Download&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Unzip the system47.zip&lt;/p&gt;
&lt;p&gt;Create a WINE bottle for the Screensaver to run in from terminal:&lt;br /&gt;
&lt;code&gt;WINEARCH=win32 WINEPREFIX=/home/$USER/.lcars winecfg&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Change the Windows Version to Windows XP&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Run the System47.exe in wine to install the screensaver&lt;br /&gt;
&lt;code&gt;WINEPREFIX=~/.lcars wine &apos;~/Downloads/system47 v2.2_setup.exe.exe&apos;&lt;/code&gt;&lt;br /&gt;
Install the Screen saver and quit&lt;/p&gt;
&lt;p&gt;Test the Screensaver in wine&lt;br /&gt;
&lt;code&gt;WINEPREFIX=~/.lcars wine &apos;/home/$USER/.lcars/drive_c/windows/system32/System47.scr&apos; /s&lt;/code&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Creating Screensaver Service&lt;/h2&gt;
&lt;p&gt;Creating the screensaver service is done in three sections: service dependencies installation, script creation, and systemd service.&lt;/p&gt;
&lt;h3&gt;Dependencies to install&lt;/h3&gt;
&lt;p&gt;Arch-based Installs &lt;code&gt;yay -S xscreensaver xprintidle&lt;/code&gt;&lt;br /&gt;
Debian-based Installs &lt;code&gt;apt install xscreensaver xprintidle&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Script Creation&lt;/h4&gt;
&lt;p&gt;Create &lt;a href=&quot;http://lcars.sh&quot;&gt;lcars.sh&lt;/a&gt; in your home directory (&lt;em&gt;replace titus with your user&lt;/em&gt;)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/sh

export DISPLAY=:0
# Wanted trigger timeout in milliseconds.
IDLE_TIME=$((5*60*1000))

# Sequence to execute when timeout triggers.
trigger_cmd() {
    WINEPREFIX=/home/titus/.lcars wine &apos;/home/titus/.lcars/drive_c/windows/system32/System47.scr&apos; /s
}

sleep_time=$IDLE_TIME
triggered=false

# ceil() instead of floor()
while sleep $(((sleep_time+999)/1000)); do
    idle=$(xprintidle)
    if [ $idle -ge $IDLE_TIME ]; then
        if ! $triggered; then
            trigger_cmd
            triggered=true
            sleep_time=$IDLE_TIME
        fi
    else
        triggered=false
        # Give 100 ms buffer to avoid frantic loops shortly before triggers.
        sleep_time=$((IDLE_TIME-idle+100))
    fi
done
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Service Creation&lt;/h4&gt;
&lt;p&gt;Create lcars.service (&lt;code&gt;sudo nano /etc/systemd/system/lcars.service&lt;/code&gt;)
&lt;em&gt;change titus to your user&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=Screensaver

[Service]
User=titus
Type=simple
ExecStart=/bin/bash /home/titus/lcars.sh

[Install]
WantedBy=multi-user.target
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Reload service daemon &lt;code&gt;sudo systemctl daemon-reload&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Start lcars service to test &lt;code&gt;sudo systemctl start lcars&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Verify service is running &lt;code&gt;sudo systemctl status lcars&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Enable on startup &lt;code&gt;sudo systemctl enable lcars&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/J2zasJz5vuA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 17 Jan 2020 23:43:17 GMT</pubDate><content:encoded>&lt;p&gt;This article goes over getting the LCARS screensaver by mewho working in Linux. This Screensaver was originally intended for Windows 9x and this is for fun!&lt;/p&gt;
&lt;h2&gt;Installation and Testing&lt;/h2&gt;
&lt;p&gt;First download the System47 Screensaver from &lt;a href=&quot;http://mewho.com&quot;&gt;mewho.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://mewho.com/system47/download1.htm&quot;&gt;LCARS Download&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Unzip the system47.zip&lt;/p&gt;
&lt;p&gt;Create a WINE bottle for the Screensaver to run in from terminal:&lt;br /&gt;
&lt;code&gt;WINEARCH=win32 WINEPREFIX=/home/$USER/.lcars winecfg&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Change the Windows Version to Windows XP&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Run the System47.exe in wine to install the screensaver&lt;br /&gt;
&lt;code&gt;WINEPREFIX=~/.lcars wine &apos;~/Downloads/system47 v2.2_setup.exe.exe&apos;&lt;/code&gt;&lt;br /&gt;
Install the Screen saver and quit&lt;/p&gt;
&lt;p&gt;Test the Screensaver in wine&lt;br /&gt;
&lt;code&gt;WINEPREFIX=~/.lcars wine &apos;/home/$USER/.lcars/drive_c/windows/system32/System47.scr&apos; /s&lt;/code&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Creating Screensaver Service&lt;/h2&gt;
&lt;p&gt;Creating the screensaver service is done in three sections: service dependencies installation, script creation, and systemd service.&lt;/p&gt;
&lt;h3&gt;Dependencies to install&lt;/h3&gt;
&lt;p&gt;Arch-based Installs &lt;code&gt;yay -S xscreensaver xprintidle&lt;/code&gt;&lt;br /&gt;
Debian-based Installs &lt;code&gt;apt install xscreensaver xprintidle&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Script Creation&lt;/h4&gt;
&lt;p&gt;Create &lt;a href=&quot;http://lcars.sh&quot;&gt;lcars.sh&lt;/a&gt; in your home directory (&lt;em&gt;replace titus with your user&lt;/em&gt;)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/sh

export DISPLAY=:0
# Wanted trigger timeout in milliseconds.
IDLE_TIME=$((5*60*1000))

# Sequence to execute when timeout triggers.
trigger_cmd() {
    WINEPREFIX=/home/titus/.lcars wine &apos;/home/titus/.lcars/drive_c/windows/system32/System47.scr&apos; /s
}

sleep_time=$IDLE_TIME
triggered=false

# ceil() instead of floor()
while sleep $(((sleep_time+999)/1000)); do
    idle=$(xprintidle)
    if [ $idle -ge $IDLE_TIME ]; then
        if ! $triggered; then
            trigger_cmd
            triggered=true
            sleep_time=$IDLE_TIME
        fi
    else
        triggered=false
        # Give 100 ms buffer to avoid frantic loops shortly before triggers.
        sleep_time=$((IDLE_TIME-idle+100))
    fi
done
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Service Creation&lt;/h4&gt;
&lt;p&gt;Create lcars.service (&lt;code&gt;sudo nano /etc/systemd/system/lcars.service&lt;/code&gt;)
&lt;em&gt;change titus to your user&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=Screensaver

[Service]
User=titus
Type=simple
ExecStart=/bin/bash /home/titus/lcars.sh

[Install]
WantedBy=multi-user.target
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Reload service daemon &lt;code&gt;sudo systemctl daemon-reload&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Start lcars service to test &lt;code&gt;sudo systemctl start lcars&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Verify service is running &lt;code&gt;sudo systemctl status lcars&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Enable on startup &lt;code&gt;sudo systemctl enable lcars&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/J2zasJz5vuA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>BTRFS Guide - Basic Commands, Snapshots, and RAID</title><link>https://christitus.com/btrfs-guide/</link><guid isPermaLink="true">https://christitus.com/btrfs-guide/</guid><description>&lt;p&gt;This guide goes over everything you need to know to get started on BTRFS. With that said we will be going over the basic structure of BTRFS and the things you should and should not do. &lt;/p&gt;
&lt;h2&gt;Creating a BTRFS Filesystem&lt;/h2&gt;
&lt;p&gt;Create the file system on an empty btrfs partition&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;mkfs.btrfs /dev/sda1&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Note: You will need to mount this file system after&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Now we need to make a subvolume &lt;em&gt;before&lt;/em&gt; we add data to the device&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;btrfs subvolume create /mnt/sda1&lt;/code&gt; &lt;em&gt;/mnt/sda1 is the mount point!&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;After this is complete you can now write data to your BTRFS volume and use all it capabilities.&lt;/p&gt;
&lt;p&gt;Basic BTRFS Layout&lt;br /&gt;
&lt;em&gt;Note: Top Level 5 is root and isn&apos;t a btrfs subvolume that can do snapshots and other btrfs features and therefore should not be mounted&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;toplevel root level 5
  +-- root\@ level 256 (subvolume root mounted at / id varies)
  +-- root\.snapshots level 256 (typical snapshot subvolume)
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Basic Commands&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Disk free&lt;br /&gt;
&lt;code&gt;sudo btrfs fi show&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Output:&lt;br /&gt;
&lt;img src=&quot;/images/2020/btrfs/fishow.webp&quot; alt=&quot;File System Output&quot; /&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Disk Usage&lt;br /&gt;
&lt;code&gt;sudo btrfs fi du /&lt;/code&gt; &lt;em&gt;Note: you can make / any other mount point&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Scrub SubVolume &lt;em&gt;Recommended running every week!&lt;/em&gt;&lt;br /&gt;
&lt;code&gt;sudo btrfs scrub start /&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Balance Subvolume for Performance&lt;br /&gt;
&lt;code&gt;sudo btrfs balance start -musage=50 -dusage=50 /&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Note: Use the musgae and dusage filters to only balance used blocks above 50 percent utilization&lt;/em&gt;&lt;br /&gt;
&lt;code&gt;sudo btrfs balance cancel /&lt;/code&gt; &lt;em&gt;Stops running balance&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;List Subvolumes &lt;em&gt;based on mountpoint&lt;/em&gt;&lt;br /&gt;
&lt;code&gt;sudo btrfs subv list /home&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Output:&lt;br /&gt;
&lt;img src=&quot;/images/2020/btrfs/subv-list.webp&quot; alt=&quot;Subvolume Output&quot; /&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Mount Subvolume&lt;br /&gt;
&lt;code&gt;sudo mount -o subvolid=267 /dev/sda1 /media/games&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;OR add this to&lt;/em&gt; &lt;code&gt;/etc/fstab&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;UUID=IDGOESHERE /media/games rw,exec,subvolid=267 0 0&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Snapshots&lt;/h2&gt;
&lt;p&gt;Snapshots are one of the best things about BTRFS and I absolutely love them. They are incredible powerful and beneficial.&lt;/p&gt;
&lt;p&gt;So Lets run through some scenarios when you use Snapshots.&lt;/p&gt;
&lt;h3&gt;Create Snapshot&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;sudo btrfs subv snapshot /home /home/.snapshots/2020-01-13&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Using this you can revert the snapshot by simply editing the &lt;code&gt;/etc/fstab&lt;/code&gt; and changing the subvol=2020-01-13 or the corresponding subvolid you get from &lt;code&gt;sudo btrfs subv list /home&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Restore Snapshot&lt;/h4&gt;
&lt;p&gt;Restore Snapshot after reboot and successful rollback&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;sudo btrfs subv delete /home&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo btrfs subv snapshot /home/.snapshots/2020-01-13 /home&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Now simply restore your fstab and reboot to be back on the /home subvolume.&lt;/p&gt;
&lt;p&gt;The reason to do it using this method is to verify the data first. If it doesn&apos;t work out you can simply change the &lt;code&gt;/etc/fstab&lt;/code&gt; back and you will be back to where you started.&lt;/p&gt;
&lt;h2&gt;Multiple disks and RAID&lt;/h2&gt;
&lt;p&gt;Oh boy, here we go. This is such a badly misunderstood subject and if you aren&apos;t careful you will be causing more problems than you are looking to solve. So with that let&apos;s get into RAID. I will &lt;em&gt;NOT&lt;/em&gt; be cover RAID 5 as it is &lt;em&gt;unstable&lt;/em&gt; and SHOULD NOT BE USED!&lt;/p&gt;
&lt;p&gt;Must know commands for multiple disks:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Add Disks before creating subvolume: &lt;code&gt;sudo btrfs device add /dev/sda1 /dev/sdb1&lt;/code&gt;&lt;br /&gt;
Add Disk to existing subvolume: &lt;code&gt;sudo btrfs device add /dev/sdb1 /home&lt;/code&gt;&lt;br /&gt;
Delete Disk from subvolume: &lt;code&gt;sudo btrfs device delete /dev/sdb1 /home&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Creating the RAID File System:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;RAID 1: &lt;code&gt;sudo btrfs -m raid1 -d raid1 /dev/sda1 /dev/sdb1&lt;/code&gt;&lt;br /&gt;
RAID 10: &lt;code&gt;sudo btrfs -m raid10 -d raid10 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Convert to to RAID 1 after adding disk to existing subvolume&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;btrfs balance start -mconvert=raid1 -dconvert=raid1 /home&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I could put RAID 0 here... but honestly you should just use EXT4 or XFS if you are looking for performance. It would be better than using BTRFS!&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/J2QP4onqJKI&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 13 Jan 2020 22:36:18 GMT</pubDate><content:encoded>&lt;p&gt;This guide goes over everything you need to know to get started on BTRFS. With that said we will be going over the basic structure of BTRFS and the things you should and should not do. &lt;/p&gt;
&lt;h2&gt;Creating a BTRFS Filesystem&lt;/h2&gt;
&lt;p&gt;Create the file system on an empty btrfs partition&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;mkfs.btrfs /dev/sda1&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Note: You will need to mount this file system after&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Now we need to make a subvolume &lt;em&gt;before&lt;/em&gt; we add data to the device&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;btrfs subvolume create /mnt/sda1&lt;/code&gt; &lt;em&gt;/mnt/sda1 is the mount point!&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;After this is complete you can now write data to your BTRFS volume and use all it capabilities.&lt;/p&gt;
&lt;p&gt;Basic BTRFS Layout&lt;br /&gt;
&lt;em&gt;Note: Top Level 5 is root and isn&apos;t a btrfs subvolume that can do snapshots and other btrfs features and therefore should not be mounted&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;toplevel root level 5
  +-- root\@ level 256 (subvolume root mounted at / id varies)
  +-- root\.snapshots level 256 (typical snapshot subvolume)
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Basic Commands&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Disk free&lt;br /&gt;
&lt;code&gt;sudo btrfs fi show&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Output:&lt;br /&gt;
&lt;img src=&quot;/images/2020/btrfs/fishow.webp&quot; alt=&quot;File System Output&quot; /&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Disk Usage&lt;br /&gt;
&lt;code&gt;sudo btrfs fi du /&lt;/code&gt; &lt;em&gt;Note: you can make / any other mount point&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Scrub SubVolume &lt;em&gt;Recommended running every week!&lt;/em&gt;&lt;br /&gt;
&lt;code&gt;sudo btrfs scrub start /&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Balance Subvolume for Performance&lt;br /&gt;
&lt;code&gt;sudo btrfs balance start -musage=50 -dusage=50 /&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Note: Use the musgae and dusage filters to only balance used blocks above 50 percent utilization&lt;/em&gt;&lt;br /&gt;
&lt;code&gt;sudo btrfs balance cancel /&lt;/code&gt; &lt;em&gt;Stops running balance&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;List Subvolumes &lt;em&gt;based on mountpoint&lt;/em&gt;&lt;br /&gt;
&lt;code&gt;sudo btrfs subv list /home&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Output:&lt;br /&gt;
&lt;img src=&quot;/images/2020/btrfs/subv-list.webp&quot; alt=&quot;Subvolume Output&quot; /&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Mount Subvolume&lt;br /&gt;
&lt;code&gt;sudo mount -o subvolid=267 /dev/sda1 /media/games&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;OR add this to&lt;/em&gt; &lt;code&gt;/etc/fstab&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;UUID=IDGOESHERE /media/games rw,exec,subvolid=267 0 0&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Snapshots&lt;/h2&gt;
&lt;p&gt;Snapshots are one of the best things about BTRFS and I absolutely love them. They are incredible powerful and beneficial.&lt;/p&gt;
&lt;p&gt;So Lets run through some scenarios when you use Snapshots.&lt;/p&gt;
&lt;h3&gt;Create Snapshot&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;sudo btrfs subv snapshot /home /home/.snapshots/2020-01-13&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Using this you can revert the snapshot by simply editing the &lt;code&gt;/etc/fstab&lt;/code&gt; and changing the subvol=2020-01-13 or the corresponding subvolid you get from &lt;code&gt;sudo btrfs subv list /home&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Restore Snapshot&lt;/h4&gt;
&lt;p&gt;Restore Snapshot after reboot and successful rollback&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;sudo btrfs subv delete /home&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo btrfs subv snapshot /home/.snapshots/2020-01-13 /home&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Now simply restore your fstab and reboot to be back on the /home subvolume.&lt;/p&gt;
&lt;p&gt;The reason to do it using this method is to verify the data first. If it doesn&apos;t work out you can simply change the &lt;code&gt;/etc/fstab&lt;/code&gt; back and you will be back to where you started.&lt;/p&gt;
&lt;h2&gt;Multiple disks and RAID&lt;/h2&gt;
&lt;p&gt;Oh boy, here we go. This is such a badly misunderstood subject and if you aren&apos;t careful you will be causing more problems than you are looking to solve. So with that let&apos;s get into RAID. I will &lt;em&gt;NOT&lt;/em&gt; be cover RAID 5 as it is &lt;em&gt;unstable&lt;/em&gt; and SHOULD NOT BE USED!&lt;/p&gt;
&lt;p&gt;Must know commands for multiple disks:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Add Disks before creating subvolume: &lt;code&gt;sudo btrfs device add /dev/sda1 /dev/sdb1&lt;/code&gt;&lt;br /&gt;
Add Disk to existing subvolume: &lt;code&gt;sudo btrfs device add /dev/sdb1 /home&lt;/code&gt;&lt;br /&gt;
Delete Disk from subvolume: &lt;code&gt;sudo btrfs device delete /dev/sdb1 /home&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Creating the RAID File System:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;RAID 1: &lt;code&gt;sudo btrfs -m raid1 -d raid1 /dev/sda1 /dev/sdb1&lt;/code&gt;&lt;br /&gt;
RAID 10: &lt;code&gt;sudo btrfs -m raid10 -d raid10 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Convert to to RAID 1 after adding disk to existing subvolume&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;btrfs balance start -mconvert=raid1 -dconvert=raid1 /home&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I could put RAID 0 here... but honestly you should just use EXT4 or XFS if you are looking for performance. It would be better than using BTRFS!&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/J2QP4onqJKI&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Hugo Static Site Guide</title><link>https://christitus.com/hugo-guide/</link><guid isPermaLink="true">https://christitus.com/hugo-guide/</guid><description>&lt;p&gt;This article goes over the basics of hugo and guides you through the process of using a static site generator.&lt;/p&gt;

&lt;h2&gt;Installing Hugo&lt;/h2&gt;
&lt;p&gt;Arch-Based Users: &lt;code&gt;yay -S hugo&lt;/code&gt;&lt;br /&gt;
Debian-Based Users: &lt;code&gt;sudo apt install hugo&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Note: Debian packages are old and I recommend downloading the latest version of hugo from github&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Github Repo for Hugo (Latest Versions and Notes)&lt;br /&gt;
&lt;a href=&quot;https://github.com/gohugoio/hugo&quot;&gt;Hugo GitHub&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://gohugo.io&quot;&gt;Official Site&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Create your first site and install a theme using the &lt;a href=&quot;https://gohugo.io/getting-started/quick-start/&quot;&gt;Quick Start&lt;/a&gt; Page.&lt;/p&gt;
&lt;h2&gt;Common Hugo Commands&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;hugo&lt;/code&gt; - builds static files in the &lt;code&gt;siteroot/public&lt;/code&gt; folder&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hugo server&lt;/code&gt; - runs a test site so you can login to &lt;a href=&quot;http://127.0.0.1:1313&quot;&gt;http://127.0.0.1:1313&lt;/a&gt; and see your changes before pushing live&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hugo new posts/dir/newpost.md&lt;/code&gt; - you can make new posts on the fly with all your templates (see below)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The First Changes&lt;/h2&gt;
&lt;p&gt;I made several changes when I first switched to HUGO and these were the changes I made.&lt;/p&gt;
&lt;h3&gt;Theme Modification&lt;/h3&gt;
&lt;p&gt;I downloaded the the &lt;a href=&quot;https://github.com/vimux/mainroad&quot;&gt;Mainroad&lt;/a&gt; Theme and installed it during the Quick Start. &lt;em&gt;Note: My Debian system had an old version of HUGO 0.40 and I had to update before the theme worked.&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;Changing Theme Widgets&lt;/h4&gt;
&lt;h5&gt;Social Widget&lt;/h5&gt;
&lt;p&gt;I first started to change the &lt;em&gt;social widget&lt;/em&gt; by adding YouTube and Twitch from the following file &lt;code&gt;siteroot/themes/mainroad/layouts/partials/widgets/social.html&lt;/code&gt;.&lt;br /&gt;
The Most challengeing Part of this was the SVG files used by mainroad. However, once I figured out the SVG format can be edited in a simple text editor and I mirrored the size and types from the existing SVG files they showed up.&lt;/p&gt;
&lt;p&gt;Here are the Edits I made to &lt;em&gt;social.html&lt;/em&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{{- with .Site.Params.widgets.social.twitch }}
  &amp;lt;div class=&quot;widget-social__item widget__item&quot;&amp;gt;
   &amp;lt;a class=&quot;widget-social__link widget__link btn&quot; title=&quot;Twitch&quot; rel=&quot;noopener noreferrer&quot; href=&quot;https://twitch.tv/{{ . }}&quot; target=&quot;_blank&quot;&amp;gt;
    {{ partial &quot;svg/twitch.svg&quot; (dict &quot;class&quot; &quot;widget-social__link-icon&quot;) }}
    &amp;lt;span&amp;gt;Twitch Live Streams&amp;lt;/span&amp;gt;
   &amp;lt;/a&amp;gt;
  &amp;lt;/div&amp;gt;
  {{- end }}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Basically after getting the SVG setup and putting the twitch.svg and youtube.svg in this path &lt;code&gt;siteroot/mainroad/layouts/partials/svg&lt;/code&gt; I was able to get the Social widget exactly how I wanted.&lt;/p&gt;
&lt;h5&gt;Tags Widget&lt;/h5&gt;
&lt;p&gt;Next up was fixing the tags on the sidebar. They were blocky and quite ugly, where I wanted a traditional tag cloud that you see on many other sites to help users navigate your content. So I began looking at other projects that had the proper code. I found the following code snippit:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{{ if not (eq (len $.Site.Taxonomies.tags) 0) }}
    {{ $fontUnit := &quot;rem&quot; }}
    {{ $largestFontSize := 2.0 }}
    {{ $largestFontSize := 2.5 }}
    {{ $smallestFontSize := 1.0 }}
    {{ $fontSpread := sub $largestFontSize $smallestFontSize }}
    {{ $max := add (len (index $.Site.Taxonomies.tags.ByCount 0).Pages) 1 }}
    {{ $min := len (index $.Site.Taxonomies.tags.ByCount.Reverse 0).Pages }}
    {{ $spread := sub $max $min }}
    {{ $fontStep := div $fontSpread $spread }}
&amp;lt;div class=&quot;widget-taglist widget&quot;&amp;gt;
  &amp;lt;h4 class=&quot;widget__title&quot;&amp;gt;{{ T &quot;tags_title&quot; }}&amp;lt;/h4&amp;gt;
   &amp;lt;div class=&quot;widget__content&quot;&amp;gt;
    &amp;lt;div id=&quot;tag-cloud&quot; style=&quot;padding: 5px 15px&quot;&amp;gt;
        {{ range $name, $taxonomy := $.Site.Taxonomies.tags }}
            {{ $currentTagCount := len $taxonomy.Pages }}
            {{ $currentFontSize := (add $smallestFontSize (mul (sub $currentTagCount $min) $fontStep) ) }}
            {{ $count := len $taxonomy.Pages }}
            {{ $weigth := div (sub (math.Log $count) (math.Log $min)) (sub (math.Log $max) (math.Log $min)) }}
            {{ $currentFontSize := (add $smallestFontSize (mul (sub $largestFontSize $smallestFontSize) $weigth) ) }}
            &amp;lt;!--Current font size: {{$currentFontSize}}--&amp;gt;
            &amp;lt;a href=&quot;{{ &quot;/tags/&quot; | relLangURL }}{{ $name | urlize }}&quot; style=&quot;font-size:{{$currentFontSize}}{{$fontUnit}}&quot;&amp;gt;{{ $name }}&amp;lt;/a&amp;gt;
        {{ end }}
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
{{ end }}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After replacing &lt;code&gt;siteroot/themes/mainroad/layouts/partials/widgets/taglist.html&lt;/code&gt; with the following code. The tag cloud was complete.&lt;/p&gt;
&lt;h4&gt;Header/Footer Modification&lt;/h4&gt;
&lt;p&gt;Replacing the Header and footer was extremely easy as it is just plain HTML. The files are located in &lt;code&gt;siteroot/themes/mainroad/layouts/partials/header.html or footer.html&lt;/code&gt;. You can leave the stock, but I wanted to add a privacy policy and terms of service to be compliant.&lt;/p&gt;
&lt;h4&gt;Table of Contents Changes&lt;/h4&gt;
&lt;p&gt;I replaced the title &quot;PAGE CONTENTS&quot; with share buttons using a share-buttons.html I created. This could all be done in the post-toc.html file, but I wanted to keep it modular and not make too many edits to the theme. Here were my changes:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;siteroot/themes/mainroad/layouts/partials/post-toc.html&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{{ if .Param &quot;toc&quot; }}
&amp;lt;div class=&quot;post__toc toc&quot;&amp;gt;
 &amp;lt;div class=&quot;toc__title&quot;&amp;gt;{{ partial &quot;share-buttons.html&quot; . }}&amp;lt;/div&amp;gt;
 &amp;lt;div class=&quot;toc__menu&quot;&amp;gt;
  {{ .TableOfContents }}
 &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
{{ end }}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: I added the &lt;code&gt;{{ partial &quot;share-buttons.html&quot; . }}&lt;/code&gt; to this and removed PAGE CONTENTS text&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;/siteroot/layouts/partials/share-buttons.html&lt;/em&gt; - NEW FILE&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{{ $pageurl := .Permalink }}

&amp;lt;style&amp;gt;
#share-buttons {display: inline-block; vertical-align: middle; }
#share-buttons:after {content: &quot;&quot;; display: block; clear: both;}
#share-buttons &amp;gt; div {
position: relative;
text-align: left; 
height: 36px; 
width: 32px; 
float: left; 
text-align: center;
}
#share-buttons &amp;gt; div &amp;gt; svg {height: 16px; fill: #d5d5d5; margin-top: 10px;}
#share-buttons &amp;gt; div:hover {cursor: pointer;}
#share-buttons &amp;gt; div.facebook:hover &amp;gt; svg {fill: #3B5998;}
#share-buttons &amp;gt; div.twitter:hover &amp;gt; svg {fill: #55ACEE;}
#share-buttons &amp;gt; div.linkedin:hover &amp;gt; svg {fill: #0077b5;}
#share-buttons &amp;gt; div.pinterest:hover &amp;gt; svg {fill: #CB2027;}
#share-buttons &amp;gt; div.mail:hover &amp;gt; svg {fill: #7D7D7D;}
#share-buttons &amp;gt; div.instagram:hover &amp;gt; svg {fill: #C73B92;}
#share-buttons &amp;gt; div.facebook &amp;gt; svg {height: 18px; margin-top: 9px;}
#share-buttons &amp;gt; div.twitter &amp;gt; svg {height: 20px; margin-top: 8px;}
#share-buttons &amp;gt; div.linkedin &amp;gt; svg {height: 19px; margin-top: 7px;}
#share-buttons &amp;gt; div.pinterest &amp;gt; svg {height: 20px; margin-top: 9px;}
#share-buttons &amp;gt; div.mail &amp;gt; svg {height: 14px; margin-top: 11px;}
&amp;lt;/style&amp;gt;

&amp;lt;span style=&quot;color: silver;&quot;&amp;gt;Share on: &amp;lt;/span&amp;gt;&amp;lt;div id=&quot;share-buttons&quot;&amp;gt;
&amp;lt;div class=&quot;facebook&quot; title=&quot;Share this on Facebook&quot; onclick=&quot;window.open(&apos;http://www.facebook.com/share.php?u={{ $pageurl }}&apos;);&quot;&amp;gt;&amp;lt;svg viewBox=&quot;0 0 1792 1792&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&amp;gt;&amp;lt;path d=&quot;M1343 12v264h-157q-86 0-116 36t-30 108v189h293l-39 296h-254v759h-306v-759h-255v-296h255v-218q0-186 104-288.5t277-102.5q147 0 228 12z&quot;/&amp;gt;&amp;lt;/svg&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;twitter&quot; title=&quot;Share this on Twitter&quot; onclick=&quot;window.open(&apos;http://twitter.com/home?status={{ $pageurl }}&apos;);&quot;&amp;gt;&amp;lt;svg viewBox=&quot;0 0 1792 1792&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&amp;gt;&amp;lt;path d=&quot;M1684 408q-67 98-162 167 1 14 1 42 0 130-38 259.5t-115.5 248.5-184.5 210.5-258 146-323 54.5q-271 0-496-145 35 4 78 4 225 0 401-138-105-2-188-64.5t-114-159.5q33 5 61 5 43 0 85-11-112-23-185.5-111.5t-73.5-205.5v-4q68 38 146 41-66-44-105-115t-39-154q0-88 44-163 121 149 294.5 238.5t371.5 99.5q-8-38-8-74 0-134 94.5-228.5t228.5-94.5q140 0 236 102 109-21 205-78-37 115-142 178 93-10 186-50z&quot;/&amp;gt;&amp;lt;/svg&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;linkedin&quot; title=&quot;Share this on Linkedin&quot; onclick=&quot;window.open(&apos;https://www.linkedin.com/shareArticle?mini=true&amp;amp;url={{ $pageurl }}&amp;amp;title=&amp;amp;summary=&amp;amp;source=&apos;);&quot;&amp;gt;&amp;lt;svg viewBox=&quot;0 0 1792 1792&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&amp;gt;&amp;lt;path d=&quot;M477 625v991h-330v-991h330zm21-306q1 73-50.5 122t-135.5 49h-2q-82 0-132-49t-50-122q0-74 51.5-122.5t134.5-48.5 133 48.5 51 122.5zm1166 729v568h-329v-530q0-105-40.5-164.5t-126.5-59.5q-63 0-105.5 34.5t-63.5 85.5q-11 30-11 81v553h-329q2-399 2-647t-1-296l-1-48h329v144h-2q20-32 41-56t56.5-52 87-43.5 114.5-15.5q171 0 275 113.5t104 332.5z&quot;/&amp;gt;&amp;lt;/svg&amp;gt;&amp;lt;/div&amp;gt;
{{ if .Params.image }}&amp;lt;div class=&quot;pinterest&quot; title=&quot;Share this on Pinterest&quot; onclick=&quot;window.open(&apos;https://pinterest.com/pin/create/button/?url=&amp;amp;media={{ .Params.image }}&amp;amp;description=&apos;);&quot;&amp;gt;&amp;lt;svg viewBox=&quot;0 0 1792 1792&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&amp;gt;&amp;lt;path d=&quot;M256 597q0-108 37.5-203.5t103.5-166.5 152-123 185-78 202-26q158 0 294 66.5t221 193.5 85 287q0 96-19 188t-60 177-100 149.5-145 103-189 38.5q-68 0-135-32t-96-88q-10 39-28 112.5t-23.5 95-20.5 71-26 71-32 62.5-46 77.5-62 86.5l-14 5-9-10q-15-157-15-188 0-92 21.5-206.5t66.5-287.5 52-203q-32-65-32-169 0-83 52-156t132-73q61 0 95 40.5t34 102.5q0 66-44 191t-44 187q0 63 45 104.5t109 41.5q55 0 102-25t78.5-68 56-95 38-110.5 20-111 6.5-99.5q0-173-109.5-269.5t-285.5-96.5q-200 0-334 129.5t-134 328.5q0 44 12.5 85t27 65 27 45.5 12.5 30.5q0 28-15 73t-37 45q-2 0-17-3-51-15-90.5-56t-61-94.5-32.5-108-11-106.5z&quot;/&amp;gt;&amp;lt;/svg&amp;gt;&amp;lt;/div&amp;gt;{{ end }}
&amp;lt;div class=&quot;mail&quot; title=&quot;Share this through Email&quot; onclick=&quot;window.open(&apos;mailto:?&amp;amp;body={{ $pageurl }}&apos;);&quot;&amp;gt;&amp;lt;svg viewBox=&quot;0 0 1792 1792&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&amp;gt;&amp;lt;path d=&quot;M1792 710v794q0 66-47 113t-113 47h-1472q-66 0-113-47t-47-113v-794q44 49 101 87 362 246 497 345 57 42 92.5 65.5t94.5 48 110 24.5h2q51 0 110-24.5t94.5-48 92.5-65.5q170-123 498-345 57-39 100-87zm0-294q0 79-49 151t-122 123q-376 261-468 325-10 7-42.5 30.5t-54 38-52 32.5-57.5 27-50 9h-2q-23 0-50-9t-57.5-27-52-32.5-54-38-42.5-30.5q-91-64-262-182.5t-205-142.5q-62-42-117-115.5t-55-136.5q0-78 41.5-130t118.5-52h1472q65 0 112.5 47t47.5 113z&quot;/&amp;gt;&amp;lt;/svg&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Adding AdSense and Custom Scripts to All Pages&lt;/h4&gt;
&lt;p&gt;To add specific scripts to all pages, such as AdSense, you will need to modify &lt;code&gt;siteroot/themes/mainroad/_defaults/baseof.html&lt;/code&gt;. I added the following before the &lt;code&gt;&amp;lt;/head&amp;gt;&lt;/code&gt; of this file to populate AdSense. You could put Analytics in here as well, but it isn&apos;t needed since mainroad theme has the option in &lt;code&gt;config.toml&lt;/code&gt;. Here are my modifications:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;baseof.html&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{{- if not .Site.IsServer }}
  {{ template &quot;_internal/google_analytics_async.html&quot; . }}
  {{ partial &quot;adsense-auto.html&quot; . }}
 {{- end }}
&amp;lt;/head&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;*siteroot/layouts/partials/adsense-auto.html_ - NEW FILE&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;script data-ad-client=&quot;ca-pub-000000000000000&quot; async src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;_Note: Make sure to use your &lt;em&gt;ca-pub-IDGOESHERE&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Configuration of config.toml&lt;/h3&gt;
&lt;p&gt;In your siteroot you will see this file that you will need to configure. Most users will simply edit this and away they go. Everything in this file worked pretty darn well. There was a couple spots that tripped me up which I will go over now.&lt;/p&gt;
&lt;h4&gt;BaseURL&lt;/h4&gt;
&lt;p&gt;Make sure you fill this out completely. I messed up the automated sitemap.xml because I simply put / instead of my entire address. This is what I have in the file now: &lt;code&gt;baseURL = &quot;https://christitus.com/&quot;&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Analytics, Social, and Title/Description&lt;/h4&gt;
&lt;p&gt;All of these options worked perfectly and I had no issues.&lt;/p&gt;
&lt;h4&gt;Menu&lt;/h4&gt;
&lt;p&gt;The last problem I had was the menu at the top of my theme. I soon learned there was a syntax to the config.toml file that I missed. I simply added this to the bottom and changed the weight to sort the menu properly. Here is that code snippit:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[menu]

  [[menu.main]]
    identifier = &quot;home&quot;
    name = &quot;Home&quot;
    pre = &quot;&amp;lt;i class=&apos;fa fa-heart&apos;&amp;gt;&amp;lt;/i&amp;gt;&quot;
    url = &quot;/&quot;
    weight = -110

  [[menu.main]]
    name = &quot;Donate&quot;
    post = &quot;&quot;
    pre = &quot;&amp;lt;i class=&apos;fa fa-road&apos;&amp;gt;&amp;lt;/i&amp;gt;&quot;
    url = &quot;https://www.patreon.com/christitustech&quot;
    weight = -105

  [[menu.main]]
    name = &quot;Remote Support&quot;
    post = &quot;&quot;
    pre = &quot;&amp;lt;i class=&apos;fa fa-road&apos;&amp;gt;&amp;lt;/i&amp;gt;&quot;
    url = &quot;https://download.teamviewer.com/download/TeamViewerQS.exe&quot;
    weight = -100
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: I added external site links and a proper home button&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Templates to Optimze My Workflow&lt;/h3&gt;
&lt;p&gt;This is where HUGO really shines and saves me a TON of time compared to WordPress and the like. Simply modifying the &lt;code&gt;siteroot/archetypes/default.md&lt;/code&gt; file to put all the things I normally have in a post. Here is what I use:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href=&quot;http://default.md&quot;&gt;default.md&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
title: &quot;{{ replace .Name &quot;-&quot; &quot; &quot; | title }}&quot;

date: {{ .Date }}
url: /{{ .Name }}/
image: images/2020-thumbs/{{ .Name }}.webp
categories:
  - Linux
  - Windows
  - Networking
tags:
  - Ubuntu
draft: true
---
&amp;lt;!--more--&amp;gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now everytime I run &lt;code&gt;hugo new posts/newpost.md&lt;/code&gt; it will fill in the Title, date, custom url, thumbnail, add the more directive for list view, and my closing phrase.&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/6JaBian3vgI&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This has changed my life and has made it so I can make posts like this one for people to follow. This entire post took me about an hour to write and would have take twice as long if I were to do it in WordPress.&lt;/p&gt;
</description><pubDate>Wed, 08 Jan 2020 21:59:19 GMT</pubDate><content:encoded>&lt;p&gt;This article goes over the basics of hugo and guides you through the process of using a static site generator.&lt;/p&gt;

&lt;h2&gt;Installing Hugo&lt;/h2&gt;
&lt;p&gt;Arch-Based Users: &lt;code&gt;yay -S hugo&lt;/code&gt;&lt;br /&gt;
Debian-Based Users: &lt;code&gt;sudo apt install hugo&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Note: Debian packages are old and I recommend downloading the latest version of hugo from github&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Github Repo for Hugo (Latest Versions and Notes)&lt;br /&gt;
&lt;a href=&quot;https://github.com/gohugoio/hugo&quot;&gt;Hugo GitHub&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://gohugo.io&quot;&gt;Official Site&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Create your first site and install a theme using the &lt;a href=&quot;https://gohugo.io/getting-started/quick-start/&quot;&gt;Quick Start&lt;/a&gt; Page.&lt;/p&gt;
&lt;h2&gt;Common Hugo Commands&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;hugo&lt;/code&gt; - builds static files in the &lt;code&gt;siteroot/public&lt;/code&gt; folder&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hugo server&lt;/code&gt; - runs a test site so you can login to &lt;a href=&quot;http://127.0.0.1:1313&quot;&gt;http://127.0.0.1:1313&lt;/a&gt; and see your changes before pushing live&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hugo new posts/dir/newpost.md&lt;/code&gt; - you can make new posts on the fly with all your templates (see below)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The First Changes&lt;/h2&gt;
&lt;p&gt;I made several changes when I first switched to HUGO and these were the changes I made.&lt;/p&gt;
&lt;h3&gt;Theme Modification&lt;/h3&gt;
&lt;p&gt;I downloaded the the &lt;a href=&quot;https://github.com/vimux/mainroad&quot;&gt;Mainroad&lt;/a&gt; Theme and installed it during the Quick Start. &lt;em&gt;Note: My Debian system had an old version of HUGO 0.40 and I had to update before the theme worked.&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;Changing Theme Widgets&lt;/h4&gt;
&lt;h5&gt;Social Widget&lt;/h5&gt;
&lt;p&gt;I first started to change the &lt;em&gt;social widget&lt;/em&gt; by adding YouTube and Twitch from the following file &lt;code&gt;siteroot/themes/mainroad/layouts/partials/widgets/social.html&lt;/code&gt;.&lt;br /&gt;
The Most challengeing Part of this was the SVG files used by mainroad. However, once I figured out the SVG format can be edited in a simple text editor and I mirrored the size and types from the existing SVG files they showed up.&lt;/p&gt;
&lt;p&gt;Here are the Edits I made to &lt;em&gt;social.html&lt;/em&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{{- with .Site.Params.widgets.social.twitch }}
  &amp;lt;div class=&quot;widget-social__item widget__item&quot;&amp;gt;
   &amp;lt;a class=&quot;widget-social__link widget__link btn&quot; title=&quot;Twitch&quot; rel=&quot;noopener noreferrer&quot; href=&quot;https://twitch.tv/{{ . }}&quot; target=&quot;_blank&quot;&amp;gt;
    {{ partial &quot;svg/twitch.svg&quot; (dict &quot;class&quot; &quot;widget-social__link-icon&quot;) }}
    &amp;lt;span&amp;gt;Twitch Live Streams&amp;lt;/span&amp;gt;
   &amp;lt;/a&amp;gt;
  &amp;lt;/div&amp;gt;
  {{- end }}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Basically after getting the SVG setup and putting the twitch.svg and youtube.svg in this path &lt;code&gt;siteroot/mainroad/layouts/partials/svg&lt;/code&gt; I was able to get the Social widget exactly how I wanted.&lt;/p&gt;
&lt;h5&gt;Tags Widget&lt;/h5&gt;
&lt;p&gt;Next up was fixing the tags on the sidebar. They were blocky and quite ugly, where I wanted a traditional tag cloud that you see on many other sites to help users navigate your content. So I began looking at other projects that had the proper code. I found the following code snippit:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{{ if not (eq (len $.Site.Taxonomies.tags) 0) }}
    {{ $fontUnit := &quot;rem&quot; }}
    {{ $largestFontSize := 2.0 }}
    {{ $largestFontSize := 2.5 }}
    {{ $smallestFontSize := 1.0 }}
    {{ $fontSpread := sub $largestFontSize $smallestFontSize }}
    {{ $max := add (len (index $.Site.Taxonomies.tags.ByCount 0).Pages) 1 }}
    {{ $min := len (index $.Site.Taxonomies.tags.ByCount.Reverse 0).Pages }}
    {{ $spread := sub $max $min }}
    {{ $fontStep := div $fontSpread $spread }}
&amp;lt;div class=&quot;widget-taglist widget&quot;&amp;gt;
  &amp;lt;h4 class=&quot;widget__title&quot;&amp;gt;{{ T &quot;tags_title&quot; }}&amp;lt;/h4&amp;gt;
   &amp;lt;div class=&quot;widget__content&quot;&amp;gt;
    &amp;lt;div id=&quot;tag-cloud&quot; style=&quot;padding: 5px 15px&quot;&amp;gt;
        {{ range $name, $taxonomy := $.Site.Taxonomies.tags }}
            {{ $currentTagCount := len $taxonomy.Pages }}
            {{ $currentFontSize := (add $smallestFontSize (mul (sub $currentTagCount $min) $fontStep) ) }}
            {{ $count := len $taxonomy.Pages }}
            {{ $weigth := div (sub (math.Log $count) (math.Log $min)) (sub (math.Log $max) (math.Log $min)) }}
            {{ $currentFontSize := (add $smallestFontSize (mul (sub $largestFontSize $smallestFontSize) $weigth) ) }}
            &amp;lt;!--Current font size: {{$currentFontSize}}--&amp;gt;
            &amp;lt;a href=&quot;{{ &quot;/tags/&quot; | relLangURL }}{{ $name | urlize }}&quot; style=&quot;font-size:{{$currentFontSize}}{{$fontUnit}}&quot;&amp;gt;{{ $name }}&amp;lt;/a&amp;gt;
        {{ end }}
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
{{ end }}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After replacing &lt;code&gt;siteroot/themes/mainroad/layouts/partials/widgets/taglist.html&lt;/code&gt; with the following code. The tag cloud was complete.&lt;/p&gt;
&lt;h4&gt;Header/Footer Modification&lt;/h4&gt;
&lt;p&gt;Replacing the Header and footer was extremely easy as it is just plain HTML. The files are located in &lt;code&gt;siteroot/themes/mainroad/layouts/partials/header.html or footer.html&lt;/code&gt;. You can leave the stock, but I wanted to add a privacy policy and terms of service to be compliant.&lt;/p&gt;
&lt;h4&gt;Table of Contents Changes&lt;/h4&gt;
&lt;p&gt;I replaced the title &quot;PAGE CONTENTS&quot; with share buttons using a share-buttons.html I created. This could all be done in the post-toc.html file, but I wanted to keep it modular and not make too many edits to the theme. Here were my changes:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;siteroot/themes/mainroad/layouts/partials/post-toc.html&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{{ if .Param &quot;toc&quot; }}
&amp;lt;div class=&quot;post__toc toc&quot;&amp;gt;
 &amp;lt;div class=&quot;toc__title&quot;&amp;gt;{{ partial &quot;share-buttons.html&quot; . }}&amp;lt;/div&amp;gt;
 &amp;lt;div class=&quot;toc__menu&quot;&amp;gt;
  {{ .TableOfContents }}
 &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
{{ end }}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: I added the &lt;code&gt;{{ partial &quot;share-buttons.html&quot; . }}&lt;/code&gt; to this and removed PAGE CONTENTS text&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;/siteroot/layouts/partials/share-buttons.html&lt;/em&gt; - NEW FILE&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{{ $pageurl := .Permalink }}

&amp;lt;style&amp;gt;
#share-buttons {display: inline-block; vertical-align: middle; }
#share-buttons:after {content: &quot;&quot;; display: block; clear: both;}
#share-buttons &amp;gt; div {
position: relative;
text-align: left; 
height: 36px; 
width: 32px; 
float: left; 
text-align: center;
}
#share-buttons &amp;gt; div &amp;gt; svg {height: 16px; fill: #d5d5d5; margin-top: 10px;}
#share-buttons &amp;gt; div:hover {cursor: pointer;}
#share-buttons &amp;gt; div.facebook:hover &amp;gt; svg {fill: #3B5998;}
#share-buttons &amp;gt; div.twitter:hover &amp;gt; svg {fill: #55ACEE;}
#share-buttons &amp;gt; div.linkedin:hover &amp;gt; svg {fill: #0077b5;}
#share-buttons &amp;gt; div.pinterest:hover &amp;gt; svg {fill: #CB2027;}
#share-buttons &amp;gt; div.mail:hover &amp;gt; svg {fill: #7D7D7D;}
#share-buttons &amp;gt; div.instagram:hover &amp;gt; svg {fill: #C73B92;}
#share-buttons &amp;gt; div.facebook &amp;gt; svg {height: 18px; margin-top: 9px;}
#share-buttons &amp;gt; div.twitter &amp;gt; svg {height: 20px; margin-top: 8px;}
#share-buttons &amp;gt; div.linkedin &amp;gt; svg {height: 19px; margin-top: 7px;}
#share-buttons &amp;gt; div.pinterest &amp;gt; svg {height: 20px; margin-top: 9px;}
#share-buttons &amp;gt; div.mail &amp;gt; svg {height: 14px; margin-top: 11px;}
&amp;lt;/style&amp;gt;

&amp;lt;span style=&quot;color: silver;&quot;&amp;gt;Share on: &amp;lt;/span&amp;gt;&amp;lt;div id=&quot;share-buttons&quot;&amp;gt;
&amp;lt;div class=&quot;facebook&quot; title=&quot;Share this on Facebook&quot; onclick=&quot;window.open(&apos;http://www.facebook.com/share.php?u={{ $pageurl }}&apos;);&quot;&amp;gt;&amp;lt;svg viewBox=&quot;0 0 1792 1792&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&amp;gt;&amp;lt;path d=&quot;M1343 12v264h-157q-86 0-116 36t-30 108v189h293l-39 296h-254v759h-306v-759h-255v-296h255v-218q0-186 104-288.5t277-102.5q147 0 228 12z&quot;/&amp;gt;&amp;lt;/svg&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;twitter&quot; title=&quot;Share this on Twitter&quot; onclick=&quot;window.open(&apos;http://twitter.com/home?status={{ $pageurl }}&apos;);&quot;&amp;gt;&amp;lt;svg viewBox=&quot;0 0 1792 1792&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&amp;gt;&amp;lt;path d=&quot;M1684 408q-67 98-162 167 1 14 1 42 0 130-38 259.5t-115.5 248.5-184.5 210.5-258 146-323 54.5q-271 0-496-145 35 4 78 4 225 0 401-138-105-2-188-64.5t-114-159.5q33 5 61 5 43 0 85-11-112-23-185.5-111.5t-73.5-205.5v-4q68 38 146 41-66-44-105-115t-39-154q0-88 44-163 121 149 294.5 238.5t371.5 99.5q-8-38-8-74 0-134 94.5-228.5t228.5-94.5q140 0 236 102 109-21 205-78-37 115-142 178 93-10 186-50z&quot;/&amp;gt;&amp;lt;/svg&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;linkedin&quot; title=&quot;Share this on Linkedin&quot; onclick=&quot;window.open(&apos;https://www.linkedin.com/shareArticle?mini=true&amp;amp;url={{ $pageurl }}&amp;amp;title=&amp;amp;summary=&amp;amp;source=&apos;);&quot;&amp;gt;&amp;lt;svg viewBox=&quot;0 0 1792 1792&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&amp;gt;&amp;lt;path d=&quot;M477 625v991h-330v-991h330zm21-306q1 73-50.5 122t-135.5 49h-2q-82 0-132-49t-50-122q0-74 51.5-122.5t134.5-48.5 133 48.5 51 122.5zm1166 729v568h-329v-530q0-105-40.5-164.5t-126.5-59.5q-63 0-105.5 34.5t-63.5 85.5q-11 30-11 81v553h-329q2-399 2-647t-1-296l-1-48h329v144h-2q20-32 41-56t56.5-52 87-43.5 114.5-15.5q171 0 275 113.5t104 332.5z&quot;/&amp;gt;&amp;lt;/svg&amp;gt;&amp;lt;/div&amp;gt;
{{ if .Params.image }}&amp;lt;div class=&quot;pinterest&quot; title=&quot;Share this on Pinterest&quot; onclick=&quot;window.open(&apos;https://pinterest.com/pin/create/button/?url=&amp;amp;media={{ .Params.image }}&amp;amp;description=&apos;);&quot;&amp;gt;&amp;lt;svg viewBox=&quot;0 0 1792 1792&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&amp;gt;&amp;lt;path d=&quot;M256 597q0-108 37.5-203.5t103.5-166.5 152-123 185-78 202-26q158 0 294 66.5t221 193.5 85 287q0 96-19 188t-60 177-100 149.5-145 103-189 38.5q-68 0-135-32t-96-88q-10 39-28 112.5t-23.5 95-20.5 71-26 71-32 62.5-46 77.5-62 86.5l-14 5-9-10q-15-157-15-188 0-92 21.5-206.5t66.5-287.5 52-203q-32-65-32-169 0-83 52-156t132-73q61 0 95 40.5t34 102.5q0 66-44 191t-44 187q0 63 45 104.5t109 41.5q55 0 102-25t78.5-68 56-95 38-110.5 20-111 6.5-99.5q0-173-109.5-269.5t-285.5-96.5q-200 0-334 129.5t-134 328.5q0 44 12.5 85t27 65 27 45.5 12.5 30.5q0 28-15 73t-37 45q-2 0-17-3-51-15-90.5-56t-61-94.5-32.5-108-11-106.5z&quot;/&amp;gt;&amp;lt;/svg&amp;gt;&amp;lt;/div&amp;gt;{{ end }}
&amp;lt;div class=&quot;mail&quot; title=&quot;Share this through Email&quot; onclick=&quot;window.open(&apos;mailto:?&amp;amp;body={{ $pageurl }}&apos;);&quot;&amp;gt;&amp;lt;svg viewBox=&quot;0 0 1792 1792&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&amp;gt;&amp;lt;path d=&quot;M1792 710v794q0 66-47 113t-113 47h-1472q-66 0-113-47t-47-113v-794q44 49 101 87 362 246 497 345 57 42 92.5 65.5t94.5 48 110 24.5h2q51 0 110-24.5t94.5-48 92.5-65.5q170-123 498-345 57-39 100-87zm0-294q0 79-49 151t-122 123q-376 261-468 325-10 7-42.5 30.5t-54 38-52 32.5-57.5 27-50 9h-2q-23 0-50-9t-57.5-27-52-32.5-54-38-42.5-30.5q-91-64-262-182.5t-205-142.5q-62-42-117-115.5t-55-136.5q0-78 41.5-130t118.5-52h1472q65 0 112.5 47t47.5 113z&quot;/&amp;gt;&amp;lt;/svg&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Adding AdSense and Custom Scripts to All Pages&lt;/h4&gt;
&lt;p&gt;To add specific scripts to all pages, such as AdSense, you will need to modify &lt;code&gt;siteroot/themes/mainroad/_defaults/baseof.html&lt;/code&gt;. I added the following before the &lt;code&gt;&amp;lt;/head&amp;gt;&lt;/code&gt; of this file to populate AdSense. You could put Analytics in here as well, but it isn&apos;t needed since mainroad theme has the option in &lt;code&gt;config.toml&lt;/code&gt;. Here are my modifications:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;baseof.html&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{{- if not .Site.IsServer }}
  {{ template &quot;_internal/google_analytics_async.html&quot; . }}
  {{ partial &quot;adsense-auto.html&quot; . }}
 {{- end }}
&amp;lt;/head&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;*siteroot/layouts/partials/adsense-auto.html_ - NEW FILE&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;script data-ad-client=&quot;ca-pub-000000000000000&quot; async src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;_Note: Make sure to use your &lt;em&gt;ca-pub-IDGOESHERE&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Configuration of config.toml&lt;/h3&gt;
&lt;p&gt;In your siteroot you will see this file that you will need to configure. Most users will simply edit this and away they go. Everything in this file worked pretty darn well. There was a couple spots that tripped me up which I will go over now.&lt;/p&gt;
&lt;h4&gt;BaseURL&lt;/h4&gt;
&lt;p&gt;Make sure you fill this out completely. I messed up the automated sitemap.xml because I simply put / instead of my entire address. This is what I have in the file now: &lt;code&gt;baseURL = &quot;https://christitus.com/&quot;&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Analytics, Social, and Title/Description&lt;/h4&gt;
&lt;p&gt;All of these options worked perfectly and I had no issues.&lt;/p&gt;
&lt;h4&gt;Menu&lt;/h4&gt;
&lt;p&gt;The last problem I had was the menu at the top of my theme. I soon learned there was a syntax to the config.toml file that I missed. I simply added this to the bottom and changed the weight to sort the menu properly. Here is that code snippit:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[menu]

  [[menu.main]]
    identifier = &quot;home&quot;
    name = &quot;Home&quot;
    pre = &quot;&amp;lt;i class=&apos;fa fa-heart&apos;&amp;gt;&amp;lt;/i&amp;gt;&quot;
    url = &quot;/&quot;
    weight = -110

  [[menu.main]]
    name = &quot;Donate&quot;
    post = &quot;&quot;
    pre = &quot;&amp;lt;i class=&apos;fa fa-road&apos;&amp;gt;&amp;lt;/i&amp;gt;&quot;
    url = &quot;https://www.patreon.com/christitustech&quot;
    weight = -105

  [[menu.main]]
    name = &quot;Remote Support&quot;
    post = &quot;&quot;
    pre = &quot;&amp;lt;i class=&apos;fa fa-road&apos;&amp;gt;&amp;lt;/i&amp;gt;&quot;
    url = &quot;https://download.teamviewer.com/download/TeamViewerQS.exe&quot;
    weight = -100
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note: I added external site links and a proper home button&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Templates to Optimze My Workflow&lt;/h3&gt;
&lt;p&gt;This is where HUGO really shines and saves me a TON of time compared to WordPress and the like. Simply modifying the &lt;code&gt;siteroot/archetypes/default.md&lt;/code&gt; file to put all the things I normally have in a post. Here is what I use:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href=&quot;http://default.md&quot;&gt;default.md&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
title: &quot;{{ replace .Name &quot;-&quot; &quot; &quot; | title }}&quot;

date: {{ .Date }}
url: /{{ .Name }}/
image: images/2020-thumbs/{{ .Name }}.webp
categories:
  - Linux
  - Windows
  - Networking
tags:
  - Ubuntu
draft: true
---
&amp;lt;!--more--&amp;gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now everytime I run &lt;code&gt;hugo new posts/newpost.md&lt;/code&gt; it will fill in the Title, date, custom url, thumbnail, add the more directive for list view, and my closing phrase.&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/6JaBian3vgI&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This has changed my life and has made it so I can make posts like this one for people to follow. This entire post took me about an hour to write and would have take twice as long if I were to do it in WordPress.&lt;/p&gt;
</content:encoded></item><item><title>LightDM Configuration</title><link>https://christitus.com/lightdm-configuration/</link><guid isPermaLink="true">https://christitus.com/lightdm-configuration/</guid><description>&lt;p&gt;In this article I go over lightdm configuration. This will teach you how to modify lightdm to choose a default desktop environment, theme, autologin, and even a VNC connection. &lt;/p&gt;
&lt;p&gt;Reference Articles:&lt;br /&gt;
&lt;a href=&quot;https://wiki.ubuntu.com/LightDM&quot;&gt;Ubuntu Wiki&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://wiki.archlinux.org/index.php/LightDM&quot;&gt;Arch Wiki&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://wiki.debian.org/LightDM&quot;&gt;Debian Wiki&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;For Debian based systems, install LightDM by typing &lt;code&gt;sudo apt install lightdm&lt;/code&gt;&lt;br /&gt;
For Arch based systems, install LightDM by typing &lt;code&gt;sudo pacman -S lightdm&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Activating LightDM on startup&lt;/h3&gt;
&lt;p&gt;Before you can enable the lightdm service you will need to disable your current display manager.&lt;/p&gt;
&lt;p&gt;For disabling SDDM (KDE Systems) type &lt;code&gt;sudo systemctl disable sddm&lt;/code&gt;&lt;br /&gt;
For disabling GDM (Gnome Systems) type &lt;code&gt;sudo systemctl disable gdm&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Start out with opening up your &lt;code&gt;/etc/lightdm/lightdm.conf&lt;/code&gt; and this is where most of the modifications will take place.&lt;/p&gt;
&lt;p&gt;I will go over the 4 sections in the configuration that most will want to change or modify.&lt;/p&gt;
&lt;h3&gt;Changing the Theme&lt;/h3&gt;
&lt;p&gt;lightdm.conf&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Seat:*]
#type=local
#pam-service=lightdm
#pam-autologin-service=lightdm-autologin
#pam-greeter-service=lightdm-greeter
#xserver-command=X
#xmir-command=Xmir
#xserver-config=
#xserver-layout=
#xserver-allow-tcp=false
#xserver-share=true
#xserver-hostname=
#xserver-display-number=
#xdmcp-manager=
#xdmcp-port=177
#xdmcp-key=
greeter-session=lightdm-slick-greeter ### CHANGE THIS 
#greeter-hide-users=false
#greeter-allow-guest=true
#greeter-show-manual-login=false
#greeter-show-remote-login=true
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Install what ever theme you want, this is called a greeter in lightdm, and then change the line above. After the changes are made you can either reboot or type &lt;code&gt;sudo systemctl restart lightdm&lt;/code&gt; &lt;em&gt;Please Note: This will log you out&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Changing the Default Desktop Environment&lt;/h3&gt;
&lt;p&gt;lightdm.conf&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Seat:*]
#type=local
#pam-service=lightdm
#pam-autologin-service=lightdm-autologin
#pam-greeter-service=lightdm-greeter
#xserver-command=X
#xmir-command=Xmir
#xserver-config=
#xserver-layout=
#xserver-allow-tcp=false
#xserver-share=true
#xserver-hostname=
#xserver-display-number=
#xdmcp-manager=
#xdmcp-port=177
#xdmcp-key=
greeter-session=lightdm-slick-greeter
#greeter-hide-users=false
#greeter-allow-guest=true
#greeter-show-manual-login=false
#greeter-show-remote-login=true
user-session=default ################ CHANGE THIS
#allow-user-switching=true
#allow-guest=true
#guest-session=
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To specify a specific desktop environment you need to change the user-session line to be your desktop environment. For example I use the awesome window manager for mine and I put &lt;code&gt;user-session=awesome&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Note: If you don&apos;t know the name, the desktop environment list can be found with listing .desktop file from /usr/share/xsessions/*.desktop&lt;/em&gt;&lt;br /&gt;
For complete listing of user sessions type: &lt;code&gt;ls /usr/share/xsessions/*.desktop&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;AutoLogin with LightDM&lt;/h3&gt;
&lt;p&gt;Change the following part of the file to autologin. &lt;em&gt;Note: This does pose a security risk and should never be done in a business&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;lightdm.conf Under &lt;code&gt;[Seat:*]&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;autologin-guest=false
autologin-user=username
autologin-user-timeout=0
autologin-in-background=false
#autologin-session=
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I generally uncomment the following lines above and just change this line &lt;code&gt;autologin-user=username&lt;/code&gt; and then it will autologin that user on the next reboot. &lt;em&gt;Note: You can use the &lt;code&gt;autologin-guest&lt;/code&gt; instead of user to have it autologin as a guest account.&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;VNC Connection&lt;/h3&gt;
&lt;p&gt;At the buttom of the lightdm.conf file you will see VNC connection information. This information uses the &lt;code&gt;tigervnc&lt;/code&gt; package and also is done using secure channel. This means you must establish a SSH connection with a portforward before you can connect to VNC. Example: &lt;code&gt;ssh 192.168.69.10 -L 9901:localhost:5901&lt;/code&gt; This establishes ssh and port forwards your local port 9901 to 5901 of the remote machine. Then you could launch VNC viewer with &lt;code&gt;vncviewer localhost:9901&lt;/code&gt;. Even though this says localhost it is forwarding the request through SSH to the remote machine.&lt;/p&gt;
&lt;p&gt;Now with that framework lets look at the conf file:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#
# VNC Server configuration
#
# enabled = True if VNC connections should be allowed
# command = Command to run Xvnc server with
# port = TCP/IP port to listen for connections on
# listen-address = Host/address to listen for VNC connections (use all addresses if not present)
# width = Width of display to use
# height = Height of display to use
# depth = Color depth of display to use
#
[VNCServer]
#enabled=false
#command=Xvnc
#port=5900
#listen-address=
#width=1024
#height=768
#depth=8
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The main things to change here are &lt;code&gt;enabled=true&lt;/code&gt; &lt;code&gt;width - height - depth&lt;/code&gt; and then you are off. My typical defaults would look like the following:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[VNCServer]
enabled=true
command=Xvnc
port=5900
#listen-address=
width=1920
height=1080
depth=16
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/_dYqisDIcC0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 08 Jan 2020 14:09:34 GMT</pubDate><content:encoded>&lt;p&gt;In this article I go over lightdm configuration. This will teach you how to modify lightdm to choose a default desktop environment, theme, autologin, and even a VNC connection. &lt;/p&gt;
&lt;p&gt;Reference Articles:&lt;br /&gt;
&lt;a href=&quot;https://wiki.ubuntu.com/LightDM&quot;&gt;Ubuntu Wiki&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://wiki.archlinux.org/index.php/LightDM&quot;&gt;Arch Wiki&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://wiki.debian.org/LightDM&quot;&gt;Debian Wiki&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;For Debian based systems, install LightDM by typing &lt;code&gt;sudo apt install lightdm&lt;/code&gt;&lt;br /&gt;
For Arch based systems, install LightDM by typing &lt;code&gt;sudo pacman -S lightdm&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Activating LightDM on startup&lt;/h3&gt;
&lt;p&gt;Before you can enable the lightdm service you will need to disable your current display manager.&lt;/p&gt;
&lt;p&gt;For disabling SDDM (KDE Systems) type &lt;code&gt;sudo systemctl disable sddm&lt;/code&gt;&lt;br /&gt;
For disabling GDM (Gnome Systems) type &lt;code&gt;sudo systemctl disable gdm&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Start out with opening up your &lt;code&gt;/etc/lightdm/lightdm.conf&lt;/code&gt; and this is where most of the modifications will take place.&lt;/p&gt;
&lt;p&gt;I will go over the 4 sections in the configuration that most will want to change or modify.&lt;/p&gt;
&lt;h3&gt;Changing the Theme&lt;/h3&gt;
&lt;p&gt;lightdm.conf&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Seat:*]
#type=local
#pam-service=lightdm
#pam-autologin-service=lightdm-autologin
#pam-greeter-service=lightdm-greeter
#xserver-command=X
#xmir-command=Xmir
#xserver-config=
#xserver-layout=
#xserver-allow-tcp=false
#xserver-share=true
#xserver-hostname=
#xserver-display-number=
#xdmcp-manager=
#xdmcp-port=177
#xdmcp-key=
greeter-session=lightdm-slick-greeter ### CHANGE THIS 
#greeter-hide-users=false
#greeter-allow-guest=true
#greeter-show-manual-login=false
#greeter-show-remote-login=true
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Install what ever theme you want, this is called a greeter in lightdm, and then change the line above. After the changes are made you can either reboot or type &lt;code&gt;sudo systemctl restart lightdm&lt;/code&gt; &lt;em&gt;Please Note: This will log you out&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Changing the Default Desktop Environment&lt;/h3&gt;
&lt;p&gt;lightdm.conf&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Seat:*]
#type=local
#pam-service=lightdm
#pam-autologin-service=lightdm-autologin
#pam-greeter-service=lightdm-greeter
#xserver-command=X
#xmir-command=Xmir
#xserver-config=
#xserver-layout=
#xserver-allow-tcp=false
#xserver-share=true
#xserver-hostname=
#xserver-display-number=
#xdmcp-manager=
#xdmcp-port=177
#xdmcp-key=
greeter-session=lightdm-slick-greeter
#greeter-hide-users=false
#greeter-allow-guest=true
#greeter-show-manual-login=false
#greeter-show-remote-login=true
user-session=default ################ CHANGE THIS
#allow-user-switching=true
#allow-guest=true
#guest-session=
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To specify a specific desktop environment you need to change the user-session line to be your desktop environment. For example I use the awesome window manager for mine and I put &lt;code&gt;user-session=awesome&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Note: If you don&apos;t know the name, the desktop environment list can be found with listing .desktop file from /usr/share/xsessions/*.desktop&lt;/em&gt;&lt;br /&gt;
For complete listing of user sessions type: &lt;code&gt;ls /usr/share/xsessions/*.desktop&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;AutoLogin with LightDM&lt;/h3&gt;
&lt;p&gt;Change the following part of the file to autologin. &lt;em&gt;Note: This does pose a security risk and should never be done in a business&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;lightdm.conf Under &lt;code&gt;[Seat:*]&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;autologin-guest=false
autologin-user=username
autologin-user-timeout=0
autologin-in-background=false
#autologin-session=
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I generally uncomment the following lines above and just change this line &lt;code&gt;autologin-user=username&lt;/code&gt; and then it will autologin that user on the next reboot. &lt;em&gt;Note: You can use the &lt;code&gt;autologin-guest&lt;/code&gt; instead of user to have it autologin as a guest account.&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;VNC Connection&lt;/h3&gt;
&lt;p&gt;At the buttom of the lightdm.conf file you will see VNC connection information. This information uses the &lt;code&gt;tigervnc&lt;/code&gt; package and also is done using secure channel. This means you must establish a SSH connection with a portforward before you can connect to VNC. Example: &lt;code&gt;ssh 192.168.69.10 -L 9901:localhost:5901&lt;/code&gt; This establishes ssh and port forwards your local port 9901 to 5901 of the remote machine. Then you could launch VNC viewer with &lt;code&gt;vncviewer localhost:9901&lt;/code&gt;. Even though this says localhost it is forwarding the request through SSH to the remote machine.&lt;/p&gt;
&lt;p&gt;Now with that framework lets look at the conf file:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#
# VNC Server configuration
#
# enabled = True if VNC connections should be allowed
# command = Command to run Xvnc server with
# port = TCP/IP port to listen for connections on
# listen-address = Host/address to listen for VNC connections (use all addresses if not present)
# width = Width of display to use
# height = Height of display to use
# depth = Color depth of display to use
#
[VNCServer]
#enabled=false
#command=Xvnc
#port=5900
#listen-address=
#width=1024
#height=768
#depth=8
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The main things to change here are &lt;code&gt;enabled=true&lt;/code&gt; &lt;code&gt;width - height - depth&lt;/code&gt; and then you are off. My typical defaults would look like the following:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[VNCServer]
enabled=true
command=Xvnc
port=5900
#listen-address=
width=1920
height=1080
depth=16
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/_dYqisDIcC0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>How To Setup a VPN Kill Switch Server</title><link>https://christitus.com/vpn-kill-switch/</link><guid isPermaLink="true">https://christitus.com/vpn-kill-switch/</guid><description>&lt;p&gt;This will show you how to set up a VPN Kill Switch so all traffic will come from that server. For this server, I am using CentOS, but you can easily use Ubuntu server if you are more familiar with that. &lt;/p&gt;
&lt;h2&gt;Install packages&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/12/instal.webp&quot; alt=&quot;install image&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo apt install openvpn ufw -y&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;*Note: use apt instead of dnf on Ubuntu or Debian Servers&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Set Static IP&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;sudo nmtuisudo nmcli connection down eth0 &amp;amp;&amp;amp; sudo nmcli connection up eth0&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Download OVPN Files&lt;/h2&gt;
&lt;p&gt;My recommendation for a public VPN provider at the time of writing was &lt;a href=&quot;https://www.expressvpn.com/&quot;&gt;ExpressVPN&lt;/a&gt;.
&lt;strong&gt;However, you can use these instructions on ANY VPN that provides ovpn files which any reputable VPN provider has.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;mv ~/Downloads/client.ovpn /etc/openvpn/test.conf&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;Service creation&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/12/sysinstall.webp&quot; alt=&quot;sysinstall image&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ls /lib/systemd/system/&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;*Check for openvpn-client@ or openvpn@&lt;/em&gt;&lt;br /&gt;
&lt;code&gt;sudo systemctl start openvpn@test&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Disable ipv6 and Secure System&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/12/sysctl.webp&quot; alt=&quot;sysctl&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo nano /etc/sysctl.conf&lt;/code&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;sudo sysctl -p&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Verify Ipv6 is disabled&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;cat /proc/sys/net/ipv6/conf/all/disable_ipv6&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo sysctl --all | grep disable_ipv6&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Firewall ufw blocks – VPN Kill Switch&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/12/vpnsetup.webp&quot; alt=&quot;install image&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo nano /etc/default/ufw&lt;/code&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;IPV6=no&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Whitelist Local Area Network&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;sudo ufw allow in to 192.168.1.0/24&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo ufw allow out to 192.168.1.0/24&lt;/code&gt;&lt;br /&gt;
&lt;strong&gt;Block All Incoming and Outgoing Traffic by Default&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;sudo ufw default deny outgoing&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo ufw default deny incoming&lt;/code&gt;&lt;br /&gt;
&lt;strong&gt;Whitelist VPN Port for VPN Establishment&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;sudo ufw allow out to any port 1194 proto udp&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;*check port by doing head /etc/openvpn/expressvpn.conf&lt;/em&gt;&lt;br /&gt;
&lt;strong&gt;Whitelist VPN Tunnel&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;sudo ufw allow out on tun0 from any to any&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo ufw allow in on tun0 from any to any&lt;/code&gt;&lt;br /&gt;
&lt;strong&gt;Enable Firewall&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;sudo ufw enable&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;External Program Setup on Server&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/12/transmission.webp&quot; alt=&quot;install image&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;X11 Forwarding&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/auePeI8vZA8&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;p&gt;&lt;strong&gt;Transmission daemon&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;sudo apt install transmission-daemon&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo systemctl stop transmission-daemon&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo nano /etc/transmission-daemon/settings.json&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;*enable rpc and whitelist, add blocklist&lt;/em&gt;&lt;br /&gt;
&lt;code&gt;sudo systemctl start transmission-daemon&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Full Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/wc-Ti8UoPoA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 02 Dec 2019 05:31:59 GMT</pubDate><content:encoded>&lt;p&gt;This will show you how to set up a VPN Kill Switch so all traffic will come from that server. For this server, I am using CentOS, but you can easily use Ubuntu server if you are more familiar with that. &lt;/p&gt;
&lt;h2&gt;Install packages&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/12/instal.webp&quot; alt=&quot;install image&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo apt install openvpn ufw -y&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;*Note: use apt instead of dnf on Ubuntu or Debian Servers&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Set Static IP&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;sudo nmtuisudo nmcli connection down eth0 &amp;amp;&amp;amp; sudo nmcli connection up eth0&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Download OVPN Files&lt;/h2&gt;
&lt;p&gt;My recommendation for a public VPN provider at the time of writing was &lt;a href=&quot;https://www.expressvpn.com/&quot;&gt;ExpressVPN&lt;/a&gt;.
&lt;strong&gt;However, you can use these instructions on ANY VPN that provides ovpn files which any reputable VPN provider has.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;mv ~/Downloads/client.ovpn /etc/openvpn/test.conf&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;Service creation&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/12/sysinstall.webp&quot; alt=&quot;sysinstall image&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ls /lib/systemd/system/&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;*Check for openvpn-client@ or openvpn@&lt;/em&gt;&lt;br /&gt;
&lt;code&gt;sudo systemctl start openvpn@test&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Disable ipv6 and Secure System&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/12/sysctl.webp&quot; alt=&quot;sysctl&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo nano /etc/sysctl.conf&lt;/code&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;sudo sysctl -p&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Verify Ipv6 is disabled&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;cat /proc/sys/net/ipv6/conf/all/disable_ipv6&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo sysctl --all | grep disable_ipv6&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Firewall ufw blocks – VPN Kill Switch&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/12/vpnsetup.webp&quot; alt=&quot;install image&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo nano /etc/default/ufw&lt;/code&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;IPV6=no&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Whitelist Local Area Network&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;sudo ufw allow in to 192.168.1.0/24&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo ufw allow out to 192.168.1.0/24&lt;/code&gt;&lt;br /&gt;
&lt;strong&gt;Block All Incoming and Outgoing Traffic by Default&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;sudo ufw default deny outgoing&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo ufw default deny incoming&lt;/code&gt;&lt;br /&gt;
&lt;strong&gt;Whitelist VPN Port for VPN Establishment&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;sudo ufw allow out to any port 1194 proto udp&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;*check port by doing head /etc/openvpn/expressvpn.conf&lt;/em&gt;&lt;br /&gt;
&lt;strong&gt;Whitelist VPN Tunnel&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;sudo ufw allow out on tun0 from any to any&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo ufw allow in on tun0 from any to any&lt;/code&gt;&lt;br /&gt;
&lt;strong&gt;Enable Firewall&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;sudo ufw enable&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;External Program Setup on Server&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/12/transmission.webp&quot; alt=&quot;install image&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;X11 Forwarding&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/auePeI8vZA8&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;p&gt;&lt;strong&gt;Transmission daemon&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;sudo apt install transmission-daemon&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo systemctl stop transmission-daemon&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo nano /etc/transmission-daemon/settings.json&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;*enable rpc and whitelist, add blocklist&lt;/em&gt;&lt;br /&gt;
&lt;code&gt;sudo systemctl start transmission-daemon&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Full Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/wc-Ti8UoPoA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>LVM (Logical Volume Management) – Combine Physical Drives and more!</title><link>https://christitus.com/lvm-guide/</link><guid isPermaLink="true">https://christitus.com/lvm-guide/</guid><description>&lt;p&gt;LVM is a very cool volume management tool. It can be used for a variety of tasks and this guide explains all the things LVM can do. I also do an example video of combining physical hard drives using LVM. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Acronyms you must know!&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;PV&lt;/strong&gt; – Physical Volume&lt;br /&gt;
&lt;strong&gt;VG&lt;/strong&gt; – Volume Group&lt;br /&gt;
&lt;strong&gt;LV&lt;/strong&gt; – Logical Volume&lt;/p&gt;&lt;figure class=&quot;wp-block-image&quot;&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/11/LVM.webp&quot; alt=&quot;lvm-key&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;LVM Commands&lt;/h2&gt;
&lt;h3&gt;LVM Layer 1 – Hard Drives, Partitions, and Physical Volumes&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;lvmdiskscan&lt;/code&gt; – system readout of volumes and partitions&lt;br /&gt;
&lt;code&gt;pvdisplay&lt;/code&gt; – display detailed info on physical volumes&lt;br /&gt;
&lt;code&gt;pvscan&lt;/code&gt; – display disks with physical volumes&lt;br /&gt;
&lt;code&gt;pvcreate /dev/sda1&lt;/code&gt; – create a physical volume from sda1&lt;br /&gt;
&lt;code&gt;pvchange -x n /dev/sda1&lt;/code&gt; – Disallow using a disk partition&lt;br /&gt;
&lt;code&gt;pvresize /dev/sda1&lt;/code&gt; – resize sda1 PV to use all of the partition&lt;br /&gt;
&lt;code&gt;pvresize --setphysicalvolumesize 140G /dev/sda1&lt;/code&gt; – resize sda1 to 140g&lt;br /&gt;
&lt;code&gt;pvmove /dev/sda1&lt;/code&gt; – can move data out of sda1 to other PVs in VG. Note: Free disk space equivalent to data moved is needed elsewhere.
&lt;code&gt;pvremove /dev/sda1&lt;/code&gt; – delete Physical volume&lt;/p&gt;
&lt;h3&gt;LVM Layer 2 – Volume Groups&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;vgcreate vg1 /dev/sda1 /dev/sdb1&lt;/code&gt; – create a volume group from two drives&lt;br /&gt;
&lt;code&gt;vgextend vg1 /dev/sdb1&lt;/code&gt; – add PV to the volume group&lt;br /&gt;
&lt;code&gt;vgdisplay vg1&lt;/code&gt; – Display details on a volume group&lt;br /&gt;
&lt;code&gt;vgscan&lt;/code&gt; – list volume groups&lt;br /&gt;
&lt;code&gt;vgreduce vg1 /dev/sda1&lt;/code&gt; – Removes the drive from vg1&lt;br /&gt;
&lt;em&gt;Note: use pvmove /dev/sda1 before removing the drive from vg1&lt;/em&gt;&lt;br /&gt;
&lt;code&gt;vgchange&lt;/code&gt; – you can activate/deactive and change perameteres&lt;br /&gt;
&lt;code&gt;vgremove vg1&lt;/code&gt; – Remove volume group vg1&lt;br /&gt;
&lt;code&gt;vgsplit&lt;/code&gt; and &lt;code&gt;vgmerge&lt;/code&gt; can split and merge volume groups&lt;br /&gt;
&lt;code&gt;vgrename&lt;/code&gt;– renames a volume group&lt;/p&gt;
&lt;h3&gt;LVM Layer 3 – Logical Volumes and File Systems&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;lvcreate -L 10G vg1&lt;/code&gt; – create a 10 GB logical volume on volume group vg1&lt;br /&gt;
&lt;code&gt;lvchange&lt;/code&gt; and &lt;code&gt;lvreduce&lt;/code&gt; are commands that typically aren’t used&lt;br /&gt;
&lt;code&gt;lvrename&lt;/code&gt;– rename logical volume&lt;br /&gt;
&lt;code&gt;lvremove&lt;/code&gt; – removes a logical volume&lt;br /&gt;
&lt;code&gt;lvscan&lt;/code&gt; – shows logical volumes&lt;br /&gt;
&lt;code&gt;lvdisplay&lt;/code&gt; – shows details on logical volumes&lt;br /&gt;
&lt;code&gt;lvextend -l +100%FREE /dev/vg1/lv1&lt;/code&gt;– One of the most common commands used to extend logical volume lv1 that takes up ALL of the remaining free space on the volume group vg1.&lt;br /&gt;
&lt;code&gt;resize2fs /dev/vg1/lv1&lt;/code&gt; – resize the file system to the size of the logical volume lv1.&lt;/p&gt;
&lt;h2&gt;LVM conclusion&lt;/h2&gt;
&lt;p&gt;LVM is fantastic for managing a system, but remember that the more drives you make in a volume group that the likely it is to fail. Instead of having one point of failure you can open yourself up for multiple points when making a large system with multiple drives.&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/scMkYQxBtJ4&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/figure&gt;</description><pubDate>Fri, 08 Nov 2019 23:06:31 GMT</pubDate><content:encoded>&lt;p&gt;LVM is a very cool volume management tool. It can be used for a variety of tasks and this guide explains all the things LVM can do. I also do an example video of combining physical hard drives using LVM. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Acronyms you must know!&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;PV&lt;/strong&gt; – Physical Volume&lt;br /&gt;
&lt;strong&gt;VG&lt;/strong&gt; – Volume Group&lt;br /&gt;
&lt;strong&gt;LV&lt;/strong&gt; – Logical Volume&lt;/p&gt;&lt;figure class=&quot;wp-block-image&quot;&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/11/LVM.webp&quot; alt=&quot;lvm-key&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;LVM Commands&lt;/h2&gt;
&lt;h3&gt;LVM Layer 1 – Hard Drives, Partitions, and Physical Volumes&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;lvmdiskscan&lt;/code&gt; – system readout of volumes and partitions&lt;br /&gt;
&lt;code&gt;pvdisplay&lt;/code&gt; – display detailed info on physical volumes&lt;br /&gt;
&lt;code&gt;pvscan&lt;/code&gt; – display disks with physical volumes&lt;br /&gt;
&lt;code&gt;pvcreate /dev/sda1&lt;/code&gt; – create a physical volume from sda1&lt;br /&gt;
&lt;code&gt;pvchange -x n /dev/sda1&lt;/code&gt; – Disallow using a disk partition&lt;br /&gt;
&lt;code&gt;pvresize /dev/sda1&lt;/code&gt; – resize sda1 PV to use all of the partition&lt;br /&gt;
&lt;code&gt;pvresize --setphysicalvolumesize 140G /dev/sda1&lt;/code&gt; – resize sda1 to 140g&lt;br /&gt;
&lt;code&gt;pvmove /dev/sda1&lt;/code&gt; – can move data out of sda1 to other PVs in VG. Note: Free disk space equivalent to data moved is needed elsewhere.
&lt;code&gt;pvremove /dev/sda1&lt;/code&gt; – delete Physical volume&lt;/p&gt;
&lt;h3&gt;LVM Layer 2 – Volume Groups&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;vgcreate vg1 /dev/sda1 /dev/sdb1&lt;/code&gt; – create a volume group from two drives&lt;br /&gt;
&lt;code&gt;vgextend vg1 /dev/sdb1&lt;/code&gt; – add PV to the volume group&lt;br /&gt;
&lt;code&gt;vgdisplay vg1&lt;/code&gt; – Display details on a volume group&lt;br /&gt;
&lt;code&gt;vgscan&lt;/code&gt; – list volume groups&lt;br /&gt;
&lt;code&gt;vgreduce vg1 /dev/sda1&lt;/code&gt; – Removes the drive from vg1&lt;br /&gt;
&lt;em&gt;Note: use pvmove /dev/sda1 before removing the drive from vg1&lt;/em&gt;&lt;br /&gt;
&lt;code&gt;vgchange&lt;/code&gt; – you can activate/deactive and change perameteres&lt;br /&gt;
&lt;code&gt;vgremove vg1&lt;/code&gt; – Remove volume group vg1&lt;br /&gt;
&lt;code&gt;vgsplit&lt;/code&gt; and &lt;code&gt;vgmerge&lt;/code&gt; can split and merge volume groups&lt;br /&gt;
&lt;code&gt;vgrename&lt;/code&gt;– renames a volume group&lt;/p&gt;
&lt;h3&gt;LVM Layer 3 – Logical Volumes and File Systems&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;lvcreate -L 10G vg1&lt;/code&gt; – create a 10 GB logical volume on volume group vg1&lt;br /&gt;
&lt;code&gt;lvchange&lt;/code&gt; and &lt;code&gt;lvreduce&lt;/code&gt; are commands that typically aren’t used&lt;br /&gt;
&lt;code&gt;lvrename&lt;/code&gt;– rename logical volume&lt;br /&gt;
&lt;code&gt;lvremove&lt;/code&gt; – removes a logical volume&lt;br /&gt;
&lt;code&gt;lvscan&lt;/code&gt; – shows logical volumes&lt;br /&gt;
&lt;code&gt;lvdisplay&lt;/code&gt; – shows details on logical volumes&lt;br /&gt;
&lt;code&gt;lvextend -l +100%FREE /dev/vg1/lv1&lt;/code&gt;– One of the most common commands used to extend logical volume lv1 that takes up ALL of the remaining free space on the volume group vg1.&lt;br /&gt;
&lt;code&gt;resize2fs /dev/vg1/lv1&lt;/code&gt; – resize the file system to the size of the logical volume lv1.&lt;/p&gt;
&lt;h2&gt;LVM conclusion&lt;/h2&gt;
&lt;p&gt;LVM is fantastic for managing a system, but remember that the more drives you make in a volume group that the likely it is to fail. Instead of having one point of failure you can open yourself up for multiple points when making a large system with multiple drives.&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/scMkYQxBtJ4&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/figure&gt;</content:encoded></item><item><title>Hackintosh Ryzen Install</title><link>https://christitus.com/hackintosh-ryzen-install/</link><guid isPermaLink="true">https://christitus.com/hackintosh-ryzen-install/</guid><description>&lt;p&gt;Here is the basic install instruction for the Hackintosh Ryzen install that I used on my Ryzen 2700 with an RX 580. &lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/10/usb-drive.webp&quot; alt=&quot;usb-drive&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Download DMG File for Flash Drive&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;The original XLNC forum post and Clover/Enoch downloads are no longer
available. This 2019 guide is preserved for historical reference. For a
current approach, use &lt;a href=&quot;https://dortania.github.io/OpenCore-Install-Guide/&quot;&gt;Dortania&apos;s OpenCore Install Guide&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Burn DMG File with TransMac (Windows) or DD (Linux)&lt;/h2&gt;
&lt;h3&gt;TransMac Download (Windows) &lt;a href=&quot;https://www.acutesystems.com/scrtm.htm&quot;&gt;https://www.acutesystems.com/scrtm.htm&lt;/a&gt;&lt;/h3&gt;
&lt;h3&gt;DD (Linux)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Install DMG2IMG &lt;code&gt;$ sudo apt install dmg2img&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$ sudo dmg2img macoshs_download.dmg macoshs_drive.iso&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$ sudo dd if=macoshs_drive.iso of=/dev/sdX bs=1M&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/10/bios-1.webp&quot; alt=&quot;bios-1&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Change Your PC’s BIOS Settings for your Hackintosh Ryzen Install&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;HPET (High Precision Timers) =Enabled&lt;/li&gt;
&lt;li&gt;SATA Mode = AHCI&lt;/li&gt;
&lt;li&gt;Execute Disable Bit = Enabled&lt;/li&gt;
&lt;li&gt;Max CPUID Value Limit = Disabled&lt;/li&gt;
&lt;li&gt;BIOS EHCI Handoff = Enabled&lt;/li&gt;
&lt;li&gt;Legacy USB Support = Enabled&lt;/li&gt;
&lt;li&gt;CSM (Legacy BIOS Mode) = Disabled&lt;/li&gt;
&lt;li&gt;UEFI options should be enabled&lt;/li&gt;
&lt;li&gt;XHCI and EHCI Hand-Off = Enabled&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/10/MacOSX.webp&quot; alt=&quot;MacOSX&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Insert Media and Start Installation&lt;/h2&gt;
&lt;p&gt;Boot into macOS by using the USB media. Once in the launcher start disk utility and partition the disk for macOS.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/10/diskutility.webp&quot; alt=&quot;diskutility&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Once you have partitioned your drive, you will need to go ahead and continue the installation. Complete the installation and reboot your PC.&lt;/p&gt;
&lt;p&gt;Launch back into the USB Drive Installer and this time we will launch terminal. From Terminal we will run the command &lt;strong&gt;XLNC&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/10/xlnc.webp&quot; alt=&quot;xlnc&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Select the following options when the XLNC installer pops up:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Bronya&lt;/li&gt;
&lt;li&gt;Post Install
&lt;ul&gt;
&lt;li&gt;Type: YourDiskName&lt;/li&gt;
&lt;li&gt;y to all the following questions&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Reboot again, but this time when we launch the USB Menu, we will launch into the macOS we just created&lt;/p&gt;
&lt;p&gt;Setup your Mac with your account and details&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/10/clover.webp&quot; alt=&quot;clover&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Download the Clover Configurator Utility
&lt;a href=&quot;https://mackie100projects.altervista.org/download-clover-configurator/&quot;&gt;https://mackie100projects.altervista.org/download-clover-configurator/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Mount both the EFI partition from the USB and the Recovery HD&lt;/p&gt;
&lt;p&gt;Copy the EFI Folder from the USB to the Recovery HD and then unmount both partitions and reboot your PC!&lt;/p&gt;
&lt;p&gt;FINISHED with the Hackintosh Ryzen Install!&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.bitchute.com/video/P943EtODU3dH/&quot;&gt;https://www.bitchute.com/video/P943EtODU3dH/&lt;/a&gt;&lt;/p&gt;
</description><pubDate>Tue, 29 Oct 2019 01:13:21 GMT</pubDate><content:encoded>&lt;p&gt;Here is the basic install instruction for the Hackintosh Ryzen install that I used on my Ryzen 2700 with an RX 580. &lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/10/usb-drive.webp&quot; alt=&quot;usb-drive&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Download DMG File for Flash Drive&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;The original XLNC forum post and Clover/Enoch downloads are no longer
available. This 2019 guide is preserved for historical reference. For a
current approach, use &lt;a href=&quot;https://dortania.github.io/OpenCore-Install-Guide/&quot;&gt;Dortania&apos;s OpenCore Install Guide&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Burn DMG File with TransMac (Windows) or DD (Linux)&lt;/h2&gt;
&lt;h3&gt;TransMac Download (Windows) &lt;a href=&quot;https://www.acutesystems.com/scrtm.htm&quot;&gt;https://www.acutesystems.com/scrtm.htm&lt;/a&gt;&lt;/h3&gt;
&lt;h3&gt;DD (Linux)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Install DMG2IMG &lt;code&gt;$ sudo apt install dmg2img&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$ sudo dmg2img macoshs_download.dmg macoshs_drive.iso&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$ sudo dd if=macoshs_drive.iso of=/dev/sdX bs=1M&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/10/bios-1.webp&quot; alt=&quot;bios-1&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Change Your PC’s BIOS Settings for your Hackintosh Ryzen Install&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;HPET (High Precision Timers) =Enabled&lt;/li&gt;
&lt;li&gt;SATA Mode = AHCI&lt;/li&gt;
&lt;li&gt;Execute Disable Bit = Enabled&lt;/li&gt;
&lt;li&gt;Max CPUID Value Limit = Disabled&lt;/li&gt;
&lt;li&gt;BIOS EHCI Handoff = Enabled&lt;/li&gt;
&lt;li&gt;Legacy USB Support = Enabled&lt;/li&gt;
&lt;li&gt;CSM (Legacy BIOS Mode) = Disabled&lt;/li&gt;
&lt;li&gt;UEFI options should be enabled&lt;/li&gt;
&lt;li&gt;XHCI and EHCI Hand-Off = Enabled&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/10/MacOSX.webp&quot; alt=&quot;MacOSX&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Insert Media and Start Installation&lt;/h2&gt;
&lt;p&gt;Boot into macOS by using the USB media. Once in the launcher start disk utility and partition the disk for macOS.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/10/diskutility.webp&quot; alt=&quot;diskutility&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Once you have partitioned your drive, you will need to go ahead and continue the installation. Complete the installation and reboot your PC.&lt;/p&gt;
&lt;p&gt;Launch back into the USB Drive Installer and this time we will launch terminal. From Terminal we will run the command &lt;strong&gt;XLNC&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/10/xlnc.webp&quot; alt=&quot;xlnc&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Select the following options when the XLNC installer pops up:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Bronya&lt;/li&gt;
&lt;li&gt;Post Install
&lt;ul&gt;
&lt;li&gt;Type: YourDiskName&lt;/li&gt;
&lt;li&gt;y to all the following questions&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Reboot again, but this time when we launch the USB Menu, we will launch into the macOS we just created&lt;/p&gt;
&lt;p&gt;Setup your Mac with your account and details&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/10/clover.webp&quot; alt=&quot;clover&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Download the Clover Configurator Utility
&lt;a href=&quot;https://mackie100projects.altervista.org/download-clover-configurator/&quot;&gt;https://mackie100projects.altervista.org/download-clover-configurator/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Mount both the EFI partition from the USB and the Recovery HD&lt;/p&gt;
&lt;p&gt;Copy the EFI Folder from the USB to the Recovery HD and then unmount both partitions and reboot your PC!&lt;/p&gt;
&lt;p&gt;FINISHED with the Hackintosh Ryzen Install!&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.bitchute.com/video/P943EtODU3dH/&quot;&gt;https://www.bitchute.com/video/P943EtODU3dH/&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>Clean Up Windows 10</title><link>https://christitus.com/clean-up-windows-10/</link><guid isPermaLink="true">https://christitus.com/clean-up-windows-10/</guid><description>&lt;p&gt;In this article, we will clean up Windows 10. This will include debloat, startup maintenance, system tweaks, and privacy settings. These 3 stages are broken down below and will help maintain a healthy Windows 10 system. I’d recommend re-running these steps every 6 months. &lt;/p&gt;
&lt;h2&gt;July 2021 Update - CTT Official Debloat Launched&lt;/h2&gt;
&lt;p&gt;Check out the updated debloat and utility toolbox here: &lt;a href=&quot;https://christitus.com/debloat-windows-10-2020/&quot;&gt;https://christitus.com/debloat-windows-10-2020/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Old Content is below with an older method of debloating Windows 10.&lt;/p&gt;
&lt;h2&gt;Step 1: Debloat Windows 10&lt;/h2&gt;
&lt;p&gt;We will be utilizing PowerShell to clean up Windows 10 and get rid of a bunch of useless bloat that is included with it.&lt;/p&gt;
&lt;h3&gt;Download PowerShell Script&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/10/Screenshot_20191014_144201.webp&quot; alt=&quot;Screenshot_20191014_144201&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;Run PowerShell Script&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/10/runcmd.webp&quot; alt=&quot;runcmd&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;iex ((New-Object System.Net.WebClient).DownloadString(&apos;https://git.io/debloat&apos;))&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: This will remove many apps in the Microsoft Store. Games, Office 365 and things that utilize the Microsoft Store. If unsure, use the customize blacklist and only tick the boxes of things you want to remove!&lt;/strong&gt;&lt;br /&gt;
Source: &lt;a href=&quot;https://github.com/Sycnex/Windows10Debloater&quot;&gt;https://github.com/Sycnex/Windows10Debloater&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Step 2: Clean Up Windows 10 Startup&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/10/taskmanager.webp&quot; alt=&quot;taskmanager&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Launch Task Manager&lt;/strong&gt; and then click the startup tab. You need to disable any unneeded programs from here.&lt;/p&gt;
&lt;h3&gt;Changing Startup Programs (Advanced Users)&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/10/startup10.webp&quot; alt=&quot;startup10&quot; /&gt;&lt;/p&gt;
&lt;p&gt;You can change startup programs from Start-Run-Type:&lt;code&gt;shell:startup&lt;/code&gt; and Start-Run-Type: &lt;code&gt;shell:common startup&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;You can also modify startup programs using registry editor HKCU or &lt;code&gt;HKLM\Software\Microsoft\Windows\CurrrentVersion\Run&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Cleanup &lt;strong&gt;Task Scheduler&lt;/strong&gt;, as it accumulates many things that cause an install to be slow and is vital when you clean up Windows 10.&lt;/p&gt;
&lt;h2&gt;Step 3: System Tweaks and Privacy&lt;/h2&gt;
&lt;p&gt;There is literally hundreds of settings in Windows 10 that are privacy concerns and why I’d recommend using a 3rd party software for this. However, you can do all the same tweaks by simply going through settings and doing all these manually. That said, I recommend using O&amp;amp;O Shutup10 for optimal tweaks and privacy.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/10/oo-shutup10.webp&quot; alt=&quot;oo-shutup10&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Download: &lt;a href=&quot;https://www.oo-software.com/en/shutup10&quot;&gt;https://www.oo-software.com/en/shutup10&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I also tell everyone to use the &lt;strong&gt;recommended settings&lt;/strong&gt; as the other settings can have unintended consequences.&lt;/p&gt;
&lt;h3&gt;Other Recommended Settings&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Turn off Hibernation:&lt;/strong&gt; powercfg /hibernate off&lt;br /&gt;
&lt;strong&gt;Modify Applications Menu:&lt;/strong&gt; explorer shell:AppsFolder&lt;br /&gt;
&lt;strong&gt;Change Windows 10 Start Menu:&lt;/strong&gt; shell:StartMenuAllPrograms or shell:Start Menu&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/mWHiP9K8fQ0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 14 Oct 2019 20:08:01 GMT</pubDate><content:encoded>&lt;p&gt;In this article, we will clean up Windows 10. This will include debloat, startup maintenance, system tweaks, and privacy settings. These 3 stages are broken down below and will help maintain a healthy Windows 10 system. I’d recommend re-running these steps every 6 months. &lt;/p&gt;
&lt;h2&gt;July 2021 Update - CTT Official Debloat Launched&lt;/h2&gt;
&lt;p&gt;Check out the updated debloat and utility toolbox here: &lt;a href=&quot;https://christitus.com/debloat-windows-10-2020/&quot;&gt;https://christitus.com/debloat-windows-10-2020/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Old Content is below with an older method of debloating Windows 10.&lt;/p&gt;
&lt;h2&gt;Step 1: Debloat Windows 10&lt;/h2&gt;
&lt;p&gt;We will be utilizing PowerShell to clean up Windows 10 and get rid of a bunch of useless bloat that is included with it.&lt;/p&gt;
&lt;h3&gt;Download PowerShell Script&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/10/Screenshot_20191014_144201.webp&quot; alt=&quot;Screenshot_20191014_144201&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;Run PowerShell Script&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/10/runcmd.webp&quot; alt=&quot;runcmd&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;iex ((New-Object System.Net.WebClient).DownloadString(&apos;https://git.io/debloat&apos;))&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: This will remove many apps in the Microsoft Store. Games, Office 365 and things that utilize the Microsoft Store. If unsure, use the customize blacklist and only tick the boxes of things you want to remove!&lt;/strong&gt;&lt;br /&gt;
Source: &lt;a href=&quot;https://github.com/Sycnex/Windows10Debloater&quot;&gt;https://github.com/Sycnex/Windows10Debloater&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Step 2: Clean Up Windows 10 Startup&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/10/taskmanager.webp&quot; alt=&quot;taskmanager&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Launch Task Manager&lt;/strong&gt; and then click the startup tab. You need to disable any unneeded programs from here.&lt;/p&gt;
&lt;h3&gt;Changing Startup Programs (Advanced Users)&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/10/startup10.webp&quot; alt=&quot;startup10&quot; /&gt;&lt;/p&gt;
&lt;p&gt;You can change startup programs from Start-Run-Type:&lt;code&gt;shell:startup&lt;/code&gt; and Start-Run-Type: &lt;code&gt;shell:common startup&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;You can also modify startup programs using registry editor HKCU or &lt;code&gt;HKLM\Software\Microsoft\Windows\CurrrentVersion\Run&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Cleanup &lt;strong&gt;Task Scheduler&lt;/strong&gt;, as it accumulates many things that cause an install to be slow and is vital when you clean up Windows 10.&lt;/p&gt;
&lt;h2&gt;Step 3: System Tweaks and Privacy&lt;/h2&gt;
&lt;p&gt;There is literally hundreds of settings in Windows 10 that are privacy concerns and why I’d recommend using a 3rd party software for this. However, you can do all the same tweaks by simply going through settings and doing all these manually. That said, I recommend using O&amp;amp;O Shutup10 for optimal tweaks and privacy.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/10/oo-shutup10.webp&quot; alt=&quot;oo-shutup10&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Download: &lt;a href=&quot;https://www.oo-software.com/en/shutup10&quot;&gt;https://www.oo-software.com/en/shutup10&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I also tell everyone to use the &lt;strong&gt;recommended settings&lt;/strong&gt; as the other settings can have unintended consequences.&lt;/p&gt;
&lt;h3&gt;Other Recommended Settings&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Turn off Hibernation:&lt;/strong&gt; powercfg /hibernate off&lt;br /&gt;
&lt;strong&gt;Modify Applications Menu:&lt;/strong&gt; explorer shell:AppsFolder&lt;br /&gt;
&lt;strong&gt;Change Windows 10 Start Menu:&lt;/strong&gt; shell:StartMenuAllPrograms or shell:Start Menu&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/mWHiP9K8fQ0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>How to Secure A Web Server</title><link>https://christitus.com/secure-web-server/</link><guid isPermaLink="true">https://christitus.com/secure-web-server/</guid><description>&lt;p&gt;In this article, I show you all the steps needed to secure a web server and improve your security. I recommend doing all of these things on every installation. Also, just because you secure your server doesn’t mean you can neglect it. I highly recommend monitoring it and adjusting security as needed. Monitoring is required for proper security in my opinion. &lt;/p&gt;
&lt;h2&gt;Secure A Web Server Steps&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/10/firewall-png-577x359.webp&quot; alt=&quot;firewall-png-577359&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Install UFW&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get update  
sudo apt-get install ufw  
sudo ufw limit 22/tcp  
sudo ufw allow 80/tcp  
sudo ufw allow 443/tcp  
sudo ufw enable
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Verify&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;sudo ufw status&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do Global blocks&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo ufw default deny incoming  
sudo ufw default allow outgoing
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/09/ssh.webp&quot; alt=&quot;ssh&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Change SSH to Key&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Remote Machine&lt;/strong&gt;: &lt;code&gt;ssh-keygen -t rsa&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Transfer to Server&lt;/h3&gt;
&lt;h4&gt;Method 1&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;Transfer pub ssh key to server&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;scp ~/.ssh/id_rsa.pub user@server.com:~
cat ~/id_rsa.pub &amp;gt;&amp;gt; ~/.ssh/authorized_keys
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Method 2&lt;/h4&gt;
&lt;p&gt;Copy key and place in authorized_key file in one command&lt;br /&gt;
&lt;code&gt;ssh-copy-id -i ~/.ssh/id_rsa.pub user@server.com&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Secure a Web Server Disabling Password Auth through SSH&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Change the following lines in /etc/sshd_config&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no
PermitRootLogin no
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Edit /etc/sysctl.conf&lt;/h2&gt;
&lt;p&gt;Enable security features&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/10/settings.webp&quot; alt=&quot;settings&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Prevent IP Spoof /etc/host.conf&lt;/h2&gt;
&lt;p&gt;Change File to mirror below:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;​order bind,hosts
multi on
nospoof on
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Install Fail2Ban&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Check Listening Ports&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;netstat -tunlp&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;You will now have completed the basics of a secure web server!&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/7pJKBL9x6bY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Thu, 10 Oct 2019 13:37:49 GMT</pubDate><content:encoded>&lt;p&gt;In this article, I show you all the steps needed to secure a web server and improve your security. I recommend doing all of these things on every installation. Also, just because you secure your server doesn’t mean you can neglect it. I highly recommend monitoring it and adjusting security as needed. Monitoring is required for proper security in my opinion. &lt;/p&gt;
&lt;h2&gt;Secure A Web Server Steps&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/10/firewall-png-577x359.webp&quot; alt=&quot;firewall-png-577359&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Install UFW&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get update  
sudo apt-get install ufw  
sudo ufw limit 22/tcp  
sudo ufw allow 80/tcp  
sudo ufw allow 443/tcp  
sudo ufw enable
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Verify&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;sudo ufw status&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do Global blocks&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo ufw default deny incoming  
sudo ufw default allow outgoing
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/09/ssh.webp&quot; alt=&quot;ssh&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Change SSH to Key&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Remote Machine&lt;/strong&gt;: &lt;code&gt;ssh-keygen -t rsa&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Transfer to Server&lt;/h3&gt;
&lt;h4&gt;Method 1&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;Transfer pub ssh key to server&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;scp ~/.ssh/id_rsa.pub user@server.com:~
cat ~/id_rsa.pub &amp;gt;&amp;gt; ~/.ssh/authorized_keys
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Method 2&lt;/h4&gt;
&lt;p&gt;Copy key and place in authorized_key file in one command&lt;br /&gt;
&lt;code&gt;ssh-copy-id -i ~/.ssh/id_rsa.pub user@server.com&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Secure a Web Server Disabling Password Auth through SSH&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Change the following lines in /etc/sshd_config&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no
PermitRootLogin no
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Edit /etc/sysctl.conf&lt;/h2&gt;
&lt;p&gt;Enable security features&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/10/settings.webp&quot; alt=&quot;settings&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Prevent IP Spoof /etc/host.conf&lt;/h2&gt;
&lt;p&gt;Change File to mirror below:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;​order bind,hosts
multi on
nospoof on
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Install Fail2Ban&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Check Listening Ports&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;netstat -tunlp&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;You will now have completed the basics of a secure web server!&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/7pJKBL9x6bY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>How to Learn Linux</title><link>https://christitus.com/learn-linux/</link><guid isPermaLink="true">https://christitus.com/learn-linux/</guid><description>&lt;p&gt;This article gives you the resources on how to learn Linux. If I am missing a resource, be sure and comment so I can add it.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src=&quot;/images/2019/10/wiki.webp&quot; alt=&quot;wiki&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;/images/2019/10/help.webp&quot; alt=&quot;help&quot; /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://wiki.archlinux.org/&quot;&gt;Arch Linux Wiki&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://discord.gg/yDAqap7Y7Q&quot;&gt;CTT Discord&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://wiki.debian.org/&quot;&gt;Debian Wiki&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://discord.gg/fedora&quot;&gt;Fedora&apos;s Discord&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://wiki.ubuntu.com/&quot;&gt;Ubuntu Wiki&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://www.reddit.com/r/linux4noobs/&quot;&gt;Linux4Noobs&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://en.opensuse.org/Main_Page&quot;&gt;OpenSUSE Wiki&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://www.linuxquestions.org/questions/&quot;&gt;Linux Questions Forums&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://fedoraproject.org/wiki/Fedora_Project_Wiki&quot;&gt;Fedora Wiki&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://ubuntuforums.org/index.php&quot;&gt;Ubuntu Forums&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://bbs.archlinux.org/&quot;&gt;Arch Linux Forums&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src=&quot;/images/2019/10/playbutton.webp&quot; alt=&quot;videos&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;/images/2019/10/Screenwriting-Websites.webp&quot; alt=&quot;externalsites&quot; /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.youtube.com/playlist?list=PLc7fktTRMBowM-n5VXCUobY0eddQ1H4YV&quot;&gt;CTT Linux Tutorial Videos&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://itsfoss.com/?&quot;&gt;It&apos;s FOSS&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://theurbanpenguin.github.io/&quot;&gt;The Urban Penguin&apos;s Linux Tutorials&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://www.linuxuprising.com/&quot;&gt;Linux Uprising&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.pluralsight.com/&quot;&gt;Pluralsight (Classroom Style Courses - PAID)&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://linoxide.com/&quot;&gt;Lin0xide&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Video Overview of Learning Resources&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/a2qblT7o4mE&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Thu, 10 Oct 2019 01:42:05 GMT</pubDate><content:encoded>&lt;p&gt;This article gives you the resources on how to learn Linux. If I am missing a resource, be sure and comment so I can add it.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src=&quot;/images/2019/10/wiki.webp&quot; alt=&quot;wiki&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;/images/2019/10/help.webp&quot; alt=&quot;help&quot; /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://wiki.archlinux.org/&quot;&gt;Arch Linux Wiki&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://discord.gg/yDAqap7Y7Q&quot;&gt;CTT Discord&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://wiki.debian.org/&quot;&gt;Debian Wiki&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://discord.gg/fedora&quot;&gt;Fedora&apos;s Discord&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://wiki.ubuntu.com/&quot;&gt;Ubuntu Wiki&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://www.reddit.com/r/linux4noobs/&quot;&gt;Linux4Noobs&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://en.opensuse.org/Main_Page&quot;&gt;OpenSUSE Wiki&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://www.linuxquestions.org/questions/&quot;&gt;Linux Questions Forums&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://fedoraproject.org/wiki/Fedora_Project_Wiki&quot;&gt;Fedora Wiki&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://ubuntuforums.org/index.php&quot;&gt;Ubuntu Forums&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://bbs.archlinux.org/&quot;&gt;Arch Linux Forums&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src=&quot;/images/2019/10/playbutton.webp&quot; alt=&quot;videos&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;/images/2019/10/Screenwriting-Websites.webp&quot; alt=&quot;externalsites&quot; /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.youtube.com/playlist?list=PLc7fktTRMBowM-n5VXCUobY0eddQ1H4YV&quot;&gt;CTT Linux Tutorial Videos&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://itsfoss.com/?&quot;&gt;It&apos;s FOSS&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://theurbanpenguin.github.io/&quot;&gt;The Urban Penguin&apos;s Linux Tutorials&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://www.linuxuprising.com/&quot;&gt;Linux Uprising&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://www.pluralsight.com/&quot;&gt;Pluralsight (Classroom Style Courses - PAID)&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://linoxide.com/&quot;&gt;Lin0xide&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Video Overview of Learning Resources&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/a2qblT7o4mE&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Custom Kernel in Linux</title><link>https://christitus.com/custom-kernel/</link><guid isPermaLink="true">https://christitus.com/custom-kernel/</guid><description>&lt;p&gt;This Guide walks your through how to install a custom kernel on Linux. I will go over performing this in a Debian-based system and an Arch-based system. Please note that the arch based system requires you to build the kernel yourself and will take much longer. &lt;/p&gt;
&lt;p&gt;Custom kernels in Linux are based on the Zen project and have some workstation/desktop optimizations. They are &lt;strong&gt;NOT&lt;/strong&gt; meant for server installations. These are meant for those using Linux Desktop and utilizing it for Gaming, Production, etc. and overall I don’t recommend using these. However, if you like to tinker and squeeze every bit of performance out of your kernel than you can proceed.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/09/debian.svg&quot; alt=&quot;debian&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Custom Kernel on Ubuntu / Debian / Mint / Pop OS&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Official Site &lt;a href=&quot;https://liquorix.net/&quot;&gt;https://liquorix.net/&lt;/a&gt; for the Liquorix Kernel.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Vanilla Debian&lt;/strong&gt; requires a bit of a long command to install the custom kernel, but works fine.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;codename=&quot;$(find /etc/apt -type f -name &apos;*.list&apos; | xargs grep -E &apos;^deb&apos; | awk &apos;{print $3}&apos; | grep -Eo &apos;^[a-z]+&apos; | sort | uniq -c | sort -n | tail -n1 | grep -Eo &apos;[a-z]+$&apos;)&quot; &amp;amp;&amp;amp; sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install apt-transport-https &amp;amp;&amp;amp; echo -e &quot;deb http://liquorix.net/debian $codename maindeb-src http://liquorix.net/debian $codename main# Mirrors:## Unit193 - France# deb http://mirror.unit193.net/liquorix $codename main# deb-src http://mirror.unit193.net/liquorix $codename main&quot; | sudo tee /etc/apt/sources.list.d/liquorix.list &amp;amp;&amp;amp; curl https://liquorix.net/linux-liquorix.pub | sudo apt-key add - &amp;amp;&amp;amp; sudo apt-get update&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ubuntu,&lt;/strong&gt; &lt;strong&gt;Linux&lt;/strong&gt; &lt;strong&gt;Mint&lt;/strong&gt;, and &lt;strong&gt;Pop&lt;/strong&gt; &lt;strong&gt;OS&lt;/strong&gt;! are quite a bit shorter for the install.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo add-apt-repository ppa:damentz/liquorix &amp;amp;&amp;amp; sudo apt-get update&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo apt-get install linux-image-liquorix-amd64 linux-headers-liquorix-amd64&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/09/arch.webp&quot; alt=&quot;arch&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Custom Kernel on Arch Linux, Manjaro, etc&lt;/h2&gt;
&lt;p&gt;For Arch-based systems the command to run is simplier than all of the above. However, this is &lt;strong&gt;BUILDING&lt;/strong&gt; a kernel and on a low-end system this will take &lt;strong&gt;HOURS&lt;/strong&gt;.
&lt;em&gt;Example: On my AMD Ryzen 2700 with 16 threads and 8 cores, this took almost 60 minutes!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;yay -S linux-lqx&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Note: This uses yay as the AUR helper. you may need to change this if you use something else like Yaourt, pacaur, trizen, etc.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;For modifying which Kernel you are going to boot in check out these videos going over modifying GRUB&lt;/p&gt;
&lt;h2&gt;Custom Boot (Grub, Rescue, and UKUU) YouTube Videos&lt;/h2&gt;
&lt;p&gt;The following videos will help you if you need to revert your kernel or setup multiple kernels to boot into your Linux installation. This is highly recommended.&lt;/p&gt;
&lt;p&gt;Grub Customizer: &lt;a href=&quot;https://www.youtube.com/watch?v=3s7qBJ-H7vw&quot;&gt;https://www.youtube.com/watch?v=3s7qBJ-H7vw&lt;/a&gt;&lt;br /&gt;
Grub Rescue: &lt;a href=&quot;https://www.youtube.com/watch?v=r7meKJsjqfY&quot;&gt;https://www.youtube.com/watch?v=r7meKJsjqfY&lt;/a&gt;&lt;br /&gt;
Kernel Upgrade with UKUU: &lt;a href=&quot;https://www.youtube.com/watch?v=fnn_MzosdwA&quot;&gt;https://www.youtube.com/watch?v=fnn_MzosdwA&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/nd0MysqLDB0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Sun, 29 Sep 2019 00:32:45 GMT</pubDate><content:encoded>&lt;p&gt;This Guide walks your through how to install a custom kernel on Linux. I will go over performing this in a Debian-based system and an Arch-based system. Please note that the arch based system requires you to build the kernel yourself and will take much longer. &lt;/p&gt;
&lt;p&gt;Custom kernels in Linux are based on the Zen project and have some workstation/desktop optimizations. They are &lt;strong&gt;NOT&lt;/strong&gt; meant for server installations. These are meant for those using Linux Desktop and utilizing it for Gaming, Production, etc. and overall I don’t recommend using these. However, if you like to tinker and squeeze every bit of performance out of your kernel than you can proceed.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/09/debian.svg&quot; alt=&quot;debian&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Custom Kernel on Ubuntu / Debian / Mint / Pop OS&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Official Site &lt;a href=&quot;https://liquorix.net/&quot;&gt;https://liquorix.net/&lt;/a&gt; for the Liquorix Kernel.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Vanilla Debian&lt;/strong&gt; requires a bit of a long command to install the custom kernel, but works fine.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;codename=&quot;$(find /etc/apt -type f -name &apos;*.list&apos; | xargs grep -E &apos;^deb&apos; | awk &apos;{print $3}&apos; | grep -Eo &apos;^[a-z]+&apos; | sort | uniq -c | sort -n | tail -n1 | grep -Eo &apos;[a-z]+$&apos;)&quot; &amp;amp;&amp;amp; sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install apt-transport-https &amp;amp;&amp;amp; echo -e &quot;deb http://liquorix.net/debian $codename maindeb-src http://liquorix.net/debian $codename main# Mirrors:## Unit193 - France# deb http://mirror.unit193.net/liquorix $codename main# deb-src http://mirror.unit193.net/liquorix $codename main&quot; | sudo tee /etc/apt/sources.list.d/liquorix.list &amp;amp;&amp;amp; curl https://liquorix.net/linux-liquorix.pub | sudo apt-key add - &amp;amp;&amp;amp; sudo apt-get update&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ubuntu,&lt;/strong&gt; &lt;strong&gt;Linux&lt;/strong&gt; &lt;strong&gt;Mint&lt;/strong&gt;, and &lt;strong&gt;Pop&lt;/strong&gt; &lt;strong&gt;OS&lt;/strong&gt;! are quite a bit shorter for the install.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo add-apt-repository ppa:damentz/liquorix &amp;amp;&amp;amp; sudo apt-get update&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo apt-get install linux-image-liquorix-amd64 linux-headers-liquorix-amd64&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/09/arch.webp&quot; alt=&quot;arch&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Custom Kernel on Arch Linux, Manjaro, etc&lt;/h2&gt;
&lt;p&gt;For Arch-based systems the command to run is simplier than all of the above. However, this is &lt;strong&gt;BUILDING&lt;/strong&gt; a kernel and on a low-end system this will take &lt;strong&gt;HOURS&lt;/strong&gt;.
&lt;em&gt;Example: On my AMD Ryzen 2700 with 16 threads and 8 cores, this took almost 60 minutes!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;yay -S linux-lqx&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Note: This uses yay as the AUR helper. you may need to change this if you use something else like Yaourt, pacaur, trizen, etc.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;For modifying which Kernel you are going to boot in check out these videos going over modifying GRUB&lt;/p&gt;
&lt;h2&gt;Custom Boot (Grub, Rescue, and UKUU) YouTube Videos&lt;/h2&gt;
&lt;p&gt;The following videos will help you if you need to revert your kernel or setup multiple kernels to boot into your Linux installation. This is highly recommended.&lt;/p&gt;
&lt;p&gt;Grub Customizer: &lt;a href=&quot;https://www.youtube.com/watch?v=3s7qBJ-H7vw&quot;&gt;https://www.youtube.com/watch?v=3s7qBJ-H7vw&lt;/a&gt;&lt;br /&gt;
Grub Rescue: &lt;a href=&quot;https://www.youtube.com/watch?v=r7meKJsjqfY&quot;&gt;https://www.youtube.com/watch?v=r7meKJsjqfY&lt;/a&gt;&lt;br /&gt;
Kernel Upgrade with UKUU: &lt;a href=&quot;https://www.youtube.com/watch?v=fnn_MzosdwA&quot;&gt;https://www.youtube.com/watch?v=fnn_MzosdwA&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/nd0MysqLDB0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Linux File System | Directory Structure</title><link>https://christitus.com/linux-file-system/</link><guid isPermaLink="true">https://christitus.com/linux-file-system/</guid><description>&lt;p&gt;This article details the Linux File System and it’s directory structure.&lt;/p&gt;
&lt;h2&gt;Linux File System – Root&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;/&lt;/strong&gt; -This is the root directory which should contain only the directories needed at the top level of the file structure&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/bin&lt;/strong&gt; – This is where the executable files are located. These files are available to all users, but do not add programs manually here&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/dev&lt;/strong&gt; – These are devices in your system – Not Mounted!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/etc&lt;/strong&gt; – Superuser directory commands, configuration files, disk configuration files, valid user lists, groups, ethernet, hosts, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/lib&lt;/strong&gt; – Contains shared library files and sometimes other kernel-related files&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/boot&lt;/strong&gt; – Contains files for booting the system /boot/efi for EFI systems&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/home&lt;/strong&gt; – Contains the home directory for users and other accounts&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/media&lt;/strong&gt; – Typically used to mount permanent file systems&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/mnt&lt;/strong&gt; – Used to mount other temporary file systems, such as cdrom and floppy for the CD-ROM drive and floppy diskette drive, respectively&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/proc&lt;/strong&gt; – Contains all processes marked as a file by process number or other information that is dynamic to the system&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/tmp&lt;/strong&gt; – Holds temporary files used between system boots&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/usr&lt;/strong&gt; – (Unix System Resource) Used for miscellaneous purposes, and can be used by many users. Includes administrative commands, shared files, library files, and others&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/var&lt;/strong&gt; – Typically contains variable-length files such as log and print files and any other type of file that may contain a variable amount of data&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/sbin&lt;/strong&gt; – Contains binary (executable) files, usually for system administration. For example, fdisk and ifconfig utlities&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/kernel&lt;/strong&gt; – Contains kernel files&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Home Directory Structure&lt;/h2&gt;
&lt;p&gt;/home/user is the home directory for your user and it is often abbreviated with a ~. Folders starting with a period are hidden and can be looked at via options in file browser or &lt;code&gt;ls -al&lt;/code&gt; in terminal.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;~/.cache&lt;/strong&gt; – Cache files for that user&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;~/.config&lt;/strong&gt; – User Configuration files for your programs.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;~/.local/share&lt;/strong&gt; – User Configuration files for your system. Edit Application in start menu, modify system configurations for your user, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;~/.ssh&lt;/strong&gt; – SSH configuration and keys&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;~/.vnc&lt;/strong&gt; – VNC remote desktop configuration files&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;~/.steam&lt;/strong&gt; – default steam location for games and config files&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;~/.bashrc&lt;/strong&gt; (FILE) – This file controls shortcuts and aliases that you use in Terminal&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This details the Linux File System and should give you a better understanding of how to navigate around in not only a Linux system, but any UNIX based OS for that matter.&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/roES8iAaJEM&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 23 Sep 2019 17:23:00 GMT</pubDate><content:encoded>&lt;p&gt;This article details the Linux File System and it’s directory structure.&lt;/p&gt;
&lt;h2&gt;Linux File System – Root&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;/&lt;/strong&gt; -This is the root directory which should contain only the directories needed at the top level of the file structure&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/bin&lt;/strong&gt; – This is where the executable files are located. These files are available to all users, but do not add programs manually here&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/dev&lt;/strong&gt; – These are devices in your system – Not Mounted!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/etc&lt;/strong&gt; – Superuser directory commands, configuration files, disk configuration files, valid user lists, groups, ethernet, hosts, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/lib&lt;/strong&gt; – Contains shared library files and sometimes other kernel-related files&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/boot&lt;/strong&gt; – Contains files for booting the system /boot/efi for EFI systems&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/home&lt;/strong&gt; – Contains the home directory for users and other accounts&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/media&lt;/strong&gt; – Typically used to mount permanent file systems&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/mnt&lt;/strong&gt; – Used to mount other temporary file systems, such as cdrom and floppy for the CD-ROM drive and floppy diskette drive, respectively&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/proc&lt;/strong&gt; – Contains all processes marked as a file by process number or other information that is dynamic to the system&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/tmp&lt;/strong&gt; – Holds temporary files used between system boots&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/usr&lt;/strong&gt; – (Unix System Resource) Used for miscellaneous purposes, and can be used by many users. Includes administrative commands, shared files, library files, and others&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/var&lt;/strong&gt; – Typically contains variable-length files such as log and print files and any other type of file that may contain a variable amount of data&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/sbin&lt;/strong&gt; – Contains binary (executable) files, usually for system administration. For example, fdisk and ifconfig utlities&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;/kernel&lt;/strong&gt; – Contains kernel files&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Home Directory Structure&lt;/h2&gt;
&lt;p&gt;/home/user is the home directory for your user and it is often abbreviated with a ~. Folders starting with a period are hidden and can be looked at via options in file browser or &lt;code&gt;ls -al&lt;/code&gt; in terminal.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;~/.cache&lt;/strong&gt; – Cache files for that user&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;~/.config&lt;/strong&gt; – User Configuration files for your programs.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;~/.local/share&lt;/strong&gt; – User Configuration files for your system. Edit Application in start menu, modify system configurations for your user, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;~/.ssh&lt;/strong&gt; – SSH configuration and keys&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;~/.vnc&lt;/strong&gt; – VNC remote desktop configuration files&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;~/.steam&lt;/strong&gt; – default steam location for games and config files&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;~/.bashrc&lt;/strong&gt; (FILE) – This file controls shortcuts and aliases that you use in Terminal&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This details the Linux File System and should give you a better understanding of how to navigate around in not only a Linux system, but any UNIX based OS for that matter.&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/roES8iAaJEM&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>How to Setup a VPN Server and Clients Using OpenVPN</title><link>https://christitus.com/openvpn-server/</link><guid isPermaLink="true">https://christitus.com/openvpn-server/</guid><description>&lt;p&gt;In this article, I go over how to setup a VPN Server and clients using OpenVPN. this will cover the setup process of the remote machine and then connecting to it via both Linux and Windows client machines. &lt;/p&gt;
&lt;h2&gt;OpenVPN Server Setup&lt;/h2&gt;
&lt;p&gt;This is the Installation script I use to setup a secure OpenVPN Server&lt;br /&gt;
&lt;a href=&quot;https://github.com/angristan/openvpn-install&quot;&gt;https://github.com/angristan/openvpn-install&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Run the following script as root or add sudo to the &lt;a href=&quot;http://install.sh&quot;&gt;install.sh&lt;/a&gt; script&lt;br /&gt;
&lt;code&gt;curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;chmod +x openvpn-install.sh&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;AUTO_INSTALL=y ./openvpn-install.sh&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;you will need to enable the OpenVPN service to auto-start so the VPN stays up after reboot.&lt;br /&gt;
&lt;code&gt;sudo systemctl enable openvpn&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Troubleshooting&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/09/tun-isnot-available.webp&quot; alt=&quot;tun-isnot-available&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TUN is not available&lt;/strong&gt;&lt;br /&gt;
-Certain VPS servers do not have TUN enabled by default. Create the follow script and run it on startup to fix this issue.&lt;/p&gt;
&lt;p&gt;-Create /usr/sbin/enabletun.sh&lt;br /&gt;
&lt;code&gt;#!/bin/bash&lt;/code&gt;
&lt;code&gt;mkdir /dev/net&lt;/code&gt;
&lt;code&gt;mknod /dev/net/tun c 10 200&lt;/code&gt;
&lt;code&gt;chmod 0666 /dev/net/tun&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;-Mark /usr/sbin/enabletun.sh executable&lt;br /&gt;
&lt;code&gt;chmod +x /usr/sbin/enabletun.sh&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;-Run this script on startup by adding the following to /etc/rc.local&lt;br /&gt;
&lt;code&gt;/usr/sbin/tunscript.sh || exit 1&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;exit 0&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Client Setup&lt;/h2&gt;
&lt;h3&gt;Linux Client Setup&lt;/h3&gt;
&lt;p&gt;Install OpenVPN for Network Manager&lt;br /&gt;
&lt;strong&gt;Debian-Based&lt;/strong&gt; &lt;code&gt;sudo apt install network-manager-openvpn&lt;/code&gt;&lt;br /&gt;
&lt;strong&gt;Arch-Based&lt;/strong&gt; &lt;code&gt;sudo pacman -S networkmanager-openvpn&lt;/code&gt;&lt;br /&gt;
&lt;strong&gt;Gnome-Based DEs&lt;/strong&gt; &lt;code&gt;sudo apt install network-manager-openvpn-gnome&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Copy OVPN file to /etc/openvpn/client/client.ovpn&lt;br /&gt;
Test client configuration in Terminal:&lt;br /&gt;
&lt;code&gt;sudo openvpn /etc/openvpn/client/client.ovpn&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/09/import-vpn.webp&quot; alt=&quot;import-vpn&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Network manager Import VPN Connection: client.ovpn&lt;br /&gt;
Note: &lt;em&gt;Certificates stored in ~/.local/share/networkmanagement/certificates&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Connect via your Network Manager&lt;/p&gt;
&lt;h3&gt;Linux Client Troubleshooting&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/09/tls-issue.webp&quot; alt=&quot;tls-issue&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Verify TLS key file is enabled and created. This is a known issue on KDE desktops. If it isn’t make sure to create it using the last TLS portion of the ovpn file.&lt;/p&gt;
&lt;h3&gt;Windows Client Setup&lt;/h3&gt;
&lt;p&gt;Download OpenVPN client for your Windows @ &lt;a href=&quot;https://openvpn.net/community-downloads/&quot;&gt;https://openvpn.net/community-downloads/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/09/clientovpn-winscp.webp?fit=1024%2C451&amp;amp;ssl=1&quot; alt=&quot;clientovpn-winscp&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Copy your client.ovpn from the server (WinSCP to connect and copy) and place the file in C:\Program Files\OpenVPN\config&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/09/openvpnconnect.webp&quot; alt=&quot;openvpnconnect&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Run the program and right click the icon in the tray and connect&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/CBJMl9MILbg&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Sat, 21 Sep 2019 04:45:08 GMT</pubDate><content:encoded>&lt;p&gt;In this article, I go over how to setup a VPN Server and clients using OpenVPN. this will cover the setup process of the remote machine and then connecting to it via both Linux and Windows client machines. &lt;/p&gt;
&lt;h2&gt;OpenVPN Server Setup&lt;/h2&gt;
&lt;p&gt;This is the Installation script I use to setup a secure OpenVPN Server&lt;br /&gt;
&lt;a href=&quot;https://github.com/angristan/openvpn-install&quot;&gt;https://github.com/angristan/openvpn-install&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Run the following script as root or add sudo to the &lt;a href=&quot;http://install.sh&quot;&gt;install.sh&lt;/a&gt; script&lt;br /&gt;
&lt;code&gt;curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;chmod +x openvpn-install.sh&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;AUTO_INSTALL=y ./openvpn-install.sh&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;you will need to enable the OpenVPN service to auto-start so the VPN stays up after reboot.&lt;br /&gt;
&lt;code&gt;sudo systemctl enable openvpn&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Troubleshooting&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/09/tun-isnot-available.webp&quot; alt=&quot;tun-isnot-available&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TUN is not available&lt;/strong&gt;&lt;br /&gt;
-Certain VPS servers do not have TUN enabled by default. Create the follow script and run it on startup to fix this issue.&lt;/p&gt;
&lt;p&gt;-Create /usr/sbin/enabletun.sh&lt;br /&gt;
&lt;code&gt;#!/bin/bash&lt;/code&gt;
&lt;code&gt;mkdir /dev/net&lt;/code&gt;
&lt;code&gt;mknod /dev/net/tun c 10 200&lt;/code&gt;
&lt;code&gt;chmod 0666 /dev/net/tun&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;-Mark /usr/sbin/enabletun.sh executable&lt;br /&gt;
&lt;code&gt;chmod +x /usr/sbin/enabletun.sh&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;-Run this script on startup by adding the following to /etc/rc.local&lt;br /&gt;
&lt;code&gt;/usr/sbin/tunscript.sh || exit 1&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;exit 0&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Client Setup&lt;/h2&gt;
&lt;h3&gt;Linux Client Setup&lt;/h3&gt;
&lt;p&gt;Install OpenVPN for Network Manager&lt;br /&gt;
&lt;strong&gt;Debian-Based&lt;/strong&gt; &lt;code&gt;sudo apt install network-manager-openvpn&lt;/code&gt;&lt;br /&gt;
&lt;strong&gt;Arch-Based&lt;/strong&gt; &lt;code&gt;sudo pacman -S networkmanager-openvpn&lt;/code&gt;&lt;br /&gt;
&lt;strong&gt;Gnome-Based DEs&lt;/strong&gt; &lt;code&gt;sudo apt install network-manager-openvpn-gnome&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Copy OVPN file to /etc/openvpn/client/client.ovpn&lt;br /&gt;
Test client configuration in Terminal:&lt;br /&gt;
&lt;code&gt;sudo openvpn /etc/openvpn/client/client.ovpn&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/09/import-vpn.webp&quot; alt=&quot;import-vpn&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Network manager Import VPN Connection: client.ovpn&lt;br /&gt;
Note: &lt;em&gt;Certificates stored in ~/.local/share/networkmanagement/certificates&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Connect via your Network Manager&lt;/p&gt;
&lt;h3&gt;Linux Client Troubleshooting&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/09/tls-issue.webp&quot; alt=&quot;tls-issue&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Verify TLS key file is enabled and created. This is a known issue on KDE desktops. If it isn’t make sure to create it using the last TLS portion of the ovpn file.&lt;/p&gt;
&lt;h3&gt;Windows Client Setup&lt;/h3&gt;
&lt;p&gt;Download OpenVPN client for your Windows @ &lt;a href=&quot;https://openvpn.net/community-downloads/&quot;&gt;https://openvpn.net/community-downloads/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/09/clientovpn-winscp.webp?fit=1024%2C451&amp;amp;ssl=1&quot; alt=&quot;clientovpn-winscp&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Copy your client.ovpn from the server (WinSCP to connect and copy) and place the file in C:\Program Files\OpenVPN\config&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/09/openvpnconnect.webp&quot; alt=&quot;openvpnconnect&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Run the program and right click the icon in the tray and connect&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/CBJMl9MILbg&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>The Ultimate SSH Guide</title><link>https://christitus.com/ssh-guide/</link><guid isPermaLink="true">https://christitus.com/ssh-guide/</guid><description>&lt;p&gt;This is an SSH guide to help you set up, configure, connect, and transfer files using SSH. &lt;/p&gt;
&lt;h2&gt;Setup SSH&lt;/h2&gt;
&lt;h2&gt;Install SSH on your system&lt;/h2&gt;
&lt;h3&gt;Debian-Based&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;sudo apt install openssh-server -y&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;CentOS/Fedora&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;sudo yum -y install openssh-server&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Arch&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;sudo pacman -S openssh&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Run SSH server on startup&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl start ssh
sudo systemctl enable ssh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;**Note: sshd instead of ssh for arch&lt;/p&gt;
&lt;h2&gt;Configure SSH&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Make sure ufw isn’t blocking ssh and enable it for passthrough.&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo ufw allow ssh
sudo ufw limit ssh
sudo ufw enable  
sudo ufw status
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Options for /etc/ssh/sshd_config&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;PasswordAuthentication yes/no&lt;/code&gt;
&lt;em&gt;* No should be used when facing the internet and key authentication must be used for security&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;AllowTcpForwarding yes&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;X11Forwarding yes&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;* This is used to forward GUI programs (Xming required for Windows)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;AllowUsers Fred Wilma&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;DenyUsers Dino Pebbles&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;* Block and Allow certain users&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Security of a SSH Server&lt;/h3&gt;
&lt;p&gt;It should be noted that if you open up your firewall and port forward port 22 on a standard SSH server install… you will probably be hacked. This is extremely reckless and should never be done. I highly recommend doing &lt;strong&gt;ALL&lt;/strong&gt; of the following measures if opening up SSH to the outside world.&lt;/p&gt;
&lt;p&gt;First, obscure the SSH port by changing it in the sshd_config file&lt;br /&gt;
&lt;code&gt;# Change Default port 22 to 2222&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;Port 2222&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Second, disable Password Authentication and use ssh keys instead. This is a complex procedure and recommend using the following script to optimize the encryption and setup process.&lt;br /&gt;
&lt;a href=&quot;https://github.com/angristan/openvpn-install&quot;&gt;https://github.com/angristan/openvpn-install&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Third, verify you are using tar-pitting or rate limiting on your SSH port. This will prevent brute force attacks&lt;br /&gt;
&lt;code&gt;ufw limit proto tcp from any port 2222&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;*Note this can also be done via iptables and it needs to be modified to your SSH port.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Connect via SSH&lt;/h2&gt;
&lt;h2&gt;Linux terminal&lt;/h2&gt;
&lt;p&gt;ssh username@serverip&lt;/p&gt;
&lt;h2&gt;Windows&lt;/h2&gt;
&lt;p&gt;PuTTY &lt;a href=&quot;https://putty.org/&quot;&gt;https://putty.org/&lt;/a&gt; (ssh program)&lt;/p&gt;
&lt;p&gt;Xming required for X11 forwarding &lt;a href=&quot;https://sourceforge.net/projects/xming/&quot;&gt;https://sourceforge.net/projects/xming/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Verify X11 Forwarding in PuTTY options&lt;/p&gt;
&lt;h2&gt;Video Walkthrough SSH Access&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/w_OwmqjAcn0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h2&gt;Transfer Files via SSH&lt;/h2&gt;
&lt;p&gt;The difference between SFTP and SCP by default are one is interactive and the other isn’t. SCP is faster, but can’t be resumed where SFTP and slower and can be.&lt;/p&gt;
&lt;h2&gt;Linux&lt;/h2&gt;
&lt;p&gt;Use the native file browser, in the location bar type the following:&lt;br /&gt;
&lt;code&gt;sftp://192.168.1.10&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Using the terminal&lt;/h3&gt;
&lt;p&gt;Syntax: &lt;strong&gt;&lt;code&gt;scp&lt;/code&gt;&lt;/strong&gt; &lt;code&gt;source destination&lt;/code&gt;&lt;br /&gt;
Remote PC Syntax: &lt;code&gt;username@serverip:/path/to/file&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Example: &lt;code&gt;scp localfile username@serverip:/remote/server/path&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Windows File Transfer&lt;/h2&gt;
&lt;p&gt;WinSCP is my recommended transfer tool.
&lt;a href=&quot;https://winscp.net/eng/index.php&quot;&gt;https://winscp.net/eng/index.php&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;pscp.exe for command line. &lt;a href=&quot;https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html&quot;&gt;https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html&lt;/a&gt;&lt;/p&gt;
</description><pubDate>Wed, 18 Sep 2019 21:55:20 GMT</pubDate><content:encoded>&lt;p&gt;This is an SSH guide to help you set up, configure, connect, and transfer files using SSH. &lt;/p&gt;
&lt;h2&gt;Setup SSH&lt;/h2&gt;
&lt;h2&gt;Install SSH on your system&lt;/h2&gt;
&lt;h3&gt;Debian-Based&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;sudo apt install openssh-server -y&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;CentOS/Fedora&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;sudo yum -y install openssh-server&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Arch&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;sudo pacman -S openssh&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Run SSH server on startup&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl start ssh
sudo systemctl enable ssh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;**Note: sshd instead of ssh for arch&lt;/p&gt;
&lt;h2&gt;Configure SSH&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Make sure ufw isn’t blocking ssh and enable it for passthrough.&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo ufw allow ssh
sudo ufw limit ssh
sudo ufw enable  
sudo ufw status
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Options for /etc/ssh/sshd_config&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;PasswordAuthentication yes/no&lt;/code&gt;
&lt;em&gt;* No should be used when facing the internet and key authentication must be used for security&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;AllowTcpForwarding yes&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;X11Forwarding yes&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;* This is used to forward GUI programs (Xming required for Windows)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;AllowUsers Fred Wilma&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;DenyUsers Dino Pebbles&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;* Block and Allow certain users&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Security of a SSH Server&lt;/h3&gt;
&lt;p&gt;It should be noted that if you open up your firewall and port forward port 22 on a standard SSH server install… you will probably be hacked. This is extremely reckless and should never be done. I highly recommend doing &lt;strong&gt;ALL&lt;/strong&gt; of the following measures if opening up SSH to the outside world.&lt;/p&gt;
&lt;p&gt;First, obscure the SSH port by changing it in the sshd_config file&lt;br /&gt;
&lt;code&gt;# Change Default port 22 to 2222&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;Port 2222&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Second, disable Password Authentication and use ssh keys instead. This is a complex procedure and recommend using the following script to optimize the encryption and setup process.&lt;br /&gt;
&lt;a href=&quot;https://github.com/angristan/openvpn-install&quot;&gt;https://github.com/angristan/openvpn-install&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Third, verify you are using tar-pitting or rate limiting on your SSH port. This will prevent brute force attacks&lt;br /&gt;
&lt;code&gt;ufw limit proto tcp from any port 2222&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;*Note this can also be done via iptables and it needs to be modified to your SSH port.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Connect via SSH&lt;/h2&gt;
&lt;h2&gt;Linux terminal&lt;/h2&gt;
&lt;p&gt;ssh username@serverip&lt;/p&gt;
&lt;h2&gt;Windows&lt;/h2&gt;
&lt;p&gt;PuTTY &lt;a href=&quot;https://putty.org/&quot;&gt;https://putty.org/&lt;/a&gt; (ssh program)&lt;/p&gt;
&lt;p&gt;Xming required for X11 forwarding &lt;a href=&quot;https://sourceforge.net/projects/xming/&quot;&gt;https://sourceforge.net/projects/xming/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Verify X11 Forwarding in PuTTY options&lt;/p&gt;
&lt;h2&gt;Video Walkthrough SSH Access&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/w_OwmqjAcn0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h2&gt;Transfer Files via SSH&lt;/h2&gt;
&lt;p&gt;The difference between SFTP and SCP by default are one is interactive and the other isn’t. SCP is faster, but can’t be resumed where SFTP and slower and can be.&lt;/p&gt;
&lt;h2&gt;Linux&lt;/h2&gt;
&lt;p&gt;Use the native file browser, in the location bar type the following:&lt;br /&gt;
&lt;code&gt;sftp://192.168.1.10&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Using the terminal&lt;/h3&gt;
&lt;p&gt;Syntax: &lt;strong&gt;&lt;code&gt;scp&lt;/code&gt;&lt;/strong&gt; &lt;code&gt;source destination&lt;/code&gt;&lt;br /&gt;
Remote PC Syntax: &lt;code&gt;username@serverip:/path/to/file&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Example: &lt;code&gt;scp localfile username@serverip:/remote/server/path&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Windows File Transfer&lt;/h2&gt;
&lt;p&gt;WinSCP is my recommended transfer tool.
&lt;a href=&quot;https://winscp.net/eng/index.php&quot;&gt;https://winscp.net/eng/index.php&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;pscp.exe for command line. &lt;a href=&quot;https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html&quot;&gt;https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>Update to the Latest Version of GIMP</title><link>https://christitus.com/latest-version-of-gimp/</link><guid isPermaLink="true">https://christitus.com/latest-version-of-gimp/</guid><description>&lt;p&gt;Here are instructions on how to Update to the latest version of GIMP. This is vital to make sure you get the newest and best features for GIMP. The old versions of gimp that come bundled with Ubuntu 18 and prior aren’t nearly as good as Gimp 2.10+. &lt;/p&gt;
&lt;p&gt;Start by launching terminal and adding the GIMP repository&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo add-apt-repository ppa:otto-kesselgulasch/gimp&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Verify the apt updates and if it doesn’t run the following command&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo apt-get update&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Now simply install GIMP and it will automatically update to the latest version of GIMP from now on&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo apt-get install gimp&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Here is a video walkthrough of install special GIMP scripts as well if you want to unlock the complete capabilities of GIMP.&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/CysfnD7dYwM&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 16 Sep 2019 00:55:12 GMT</pubDate><content:encoded>&lt;p&gt;Here are instructions on how to Update to the latest version of GIMP. This is vital to make sure you get the newest and best features for GIMP. The old versions of gimp that come bundled with Ubuntu 18 and prior aren’t nearly as good as Gimp 2.10+. &lt;/p&gt;
&lt;p&gt;Start by launching terminal and adding the GIMP repository&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo add-apt-repository ppa:otto-kesselgulasch/gimp&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Verify the apt updates and if it doesn’t run the following command&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo apt-get update&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Now simply install GIMP and it will automatically update to the latest version of GIMP from now on&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo apt-get install gimp&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Here is a video walkthrough of install special GIMP scripts as well if you want to unlock the complete capabilities of GIMP.&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/CysfnD7dYwM&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Grub Rescue | Repairing your Bootloader</title><link>https://christitus.com/grub-rescue/</link><guid isPermaLink="true">https://christitus.com/grub-rescue/</guid><description>&lt;p&gt;Lets go over Grub Rescue and repairing your bootloader. This is a very misunderstood topic and by learn basic syntax you will be able to repair your GRUB very easily. Here are 4 methods of doing a GRUB Rescue. &lt;/p&gt;
&lt;h2&gt;Repairing from a GRUB &amp;gt; Prompt&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Find your Hard drive&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;ls&lt;/code&gt;
&lt;em&gt;Output Example:
(hd0) (hd0,msdos2) (hd0,msdos1)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;List Root partition on each drive til you find your Install&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;ls (hd0,msdos2)/&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Check for the directory listing, if nothing, move to next&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Now that we have found the proper drive lets boot to it&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;grub&amp;gt; set root=(hd0,msdos2)&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;grub&amp;gt; linux /boot/vmlinu (tab complete) root=/dev/sda1 (or the root linux partition)&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;grub&amp;gt; initrd /boot/initrd (tab complete)&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;grub&amp;gt; boot&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Repairing from a GRUB Rescue &amp;gt; Prompt&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Find your Hard drive&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;ls&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Output Example:
(hd0) (hd0,msdos2) (hd0,msdos1)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;List Root partition on each drive til you find your Install&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;ls (hd0,msdos2)/&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Check for the&lt;/em&gt; &lt;em&gt;directory&lt;/em&gt; &lt;em&gt;listing, if nothing, move to next&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Now that we have found the proper drive lets boot to it&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;grub rescue&amp;gt; set prefix=(hd0,msdos2)/boot/grub&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;grub rescue&amp;gt; set root=(hd0,msdos2)&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;grub rescue&amp;gt; insmod normal&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;grub rescue&amp;gt; normal&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;grub rescue&amp;gt; insmod linux&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;grub rescue&amp;gt; linux /boot/vmlinu (tab complete) root=/dev/sda1 (or the root linux partition)&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;grub rescue&amp;gt; initrd /boot/initrd (tab complete)&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;grub rescue&amp;gt; boot&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/04/grub.webp&quot; alt=&quot;grub&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Fix GRUB Permanently&lt;/h2&gt;
&lt;p&gt;Now that we are booted in from GRUB Rescue, we can begin work with repairing our grub permanently. First we rebuild the /boot/grub/grub.cfg file:&lt;/p&gt;
&lt;p&gt;Debian-based Distributions use &lt;strong&gt;update-grub&lt;/strong&gt;&lt;br /&gt;
Other Distributions use &lt;strong&gt;grub-mkconfig -o /boot/grub/grub.cfg&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;With the Configuration rebuilt, we now simply need to reinstall grub&lt;/p&gt;
&lt;p&gt;&lt;code&gt;grub-install /dev/sda&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: /dev/sda is the DEVICE…&lt;/em&gt;&lt;strong&gt;NOT THE PARTITION&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;Other Methods of Repairing GRUB&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Use a &lt;a href=&quot;https://www.supergrubdisk.org/&quot;&gt;Super Grub2 Disk image&lt;/a&gt; on a USB drive to repair&lt;/li&gt;
&lt;li&gt;Use a vanilla server distribution pen drive to boot to prompt, then chroot to your existing install and reinstall GRUB.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Video Walkthroughs&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/r7meKJsjqfY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 01 Apr 2019 22:21:10 GMT</pubDate><content:encoded>&lt;p&gt;Lets go over Grub Rescue and repairing your bootloader. This is a very misunderstood topic and by learn basic syntax you will be able to repair your GRUB very easily. Here are 4 methods of doing a GRUB Rescue. &lt;/p&gt;
&lt;h2&gt;Repairing from a GRUB &amp;gt; Prompt&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Find your Hard drive&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;ls&lt;/code&gt;
&lt;em&gt;Output Example:
(hd0) (hd0,msdos2) (hd0,msdos1)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;List Root partition on each drive til you find your Install&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;ls (hd0,msdos2)/&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Check for the directory listing, if nothing, move to next&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Now that we have found the proper drive lets boot to it&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;grub&amp;gt; set root=(hd0,msdos2)&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;grub&amp;gt; linux /boot/vmlinu (tab complete) root=/dev/sda1 (or the root linux partition)&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;grub&amp;gt; initrd /boot/initrd (tab complete)&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;grub&amp;gt; boot&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Repairing from a GRUB Rescue &amp;gt; Prompt&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Find your Hard drive&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;ls&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Output Example:
(hd0) (hd0,msdos2) (hd0,msdos1)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;List Root partition on each drive til you find your Install&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;ls (hd0,msdos2)/&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Check for the&lt;/em&gt; &lt;em&gt;directory&lt;/em&gt; &lt;em&gt;listing, if nothing, move to next&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Now that we have found the proper drive lets boot to it&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;grub rescue&amp;gt; set prefix=(hd0,msdos2)/boot/grub&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;grub rescue&amp;gt; set root=(hd0,msdos2)&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;grub rescue&amp;gt; insmod normal&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;grub rescue&amp;gt; normal&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;grub rescue&amp;gt; insmod linux&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;grub rescue&amp;gt; linux /boot/vmlinu (tab complete) root=/dev/sda1 (or the root linux partition)&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;grub rescue&amp;gt; initrd /boot/initrd (tab complete)&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;grub rescue&amp;gt; boot&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/04/grub.webp&quot; alt=&quot;grub&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Fix GRUB Permanently&lt;/h2&gt;
&lt;p&gt;Now that we are booted in from GRUB Rescue, we can begin work with repairing our grub permanently. First we rebuild the /boot/grub/grub.cfg file:&lt;/p&gt;
&lt;p&gt;Debian-based Distributions use &lt;strong&gt;update-grub&lt;/strong&gt;&lt;br /&gt;
Other Distributions use &lt;strong&gt;grub-mkconfig -o /boot/grub/grub.cfg&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;With the Configuration rebuilt, we now simply need to reinstall grub&lt;/p&gt;
&lt;p&gt;&lt;code&gt;grub-install /dev/sda&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: /dev/sda is the DEVICE…&lt;/em&gt;&lt;strong&gt;NOT THE PARTITION&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;Other Methods of Repairing GRUB&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Use a &lt;a href=&quot;https://www.supergrubdisk.org/&quot;&gt;Super Grub2 Disk image&lt;/a&gt; on a USB drive to repair&lt;/li&gt;
&lt;li&gt;Use a vanilla server distribution pen drive to boot to prompt, then chroot to your existing install and reinstall GRUB.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Video Walkthroughs&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/r7meKJsjqfY&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>WordPress on Google Cloud Platform</title><link>https://christitus.com/wordpress-google-cloud-platform/</link><guid isPermaLink="true">https://christitus.com/wordpress-google-cloud-platform/</guid><description>&lt;p&gt;I am going over hosting WordPress on Google Cloud Platform in this article. This is a step by step guide on how to set up and host a WordPress website using a fresh installation. &lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/03/nas_theapplication_3216.webp&quot; alt=&quot;nas_theapplication_3216&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Step 1: Fresh VM&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Note: Be sure and install gcloud &lt;a href=&quot;https://cloud.google.com/sdk/docs/downloads-apt-get&quot;&gt;https://cloud.google.com/sdk/docs/downloads-apt-get&lt;/a&gt;
Setup Project and VM (micro)&lt;/em&gt;&lt;br /&gt;
&lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Step 2: Install Swap&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo fallocate -l 1G /swapfile  
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576  
sudo chmod 600 /swapfile  
sudo mkswap /swapfile  
sudo swapon /swapfile  
sudo nano /etc/fstab  
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;/swapfile swap swap defaults 0 0&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/03/apache2.webp&quot; alt=&quot;apache2&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Step 3: Install LAMP Stack (Linux, Apache, MySQL, and PHP)&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install tasksel
sudo tasksel install lamp-server
sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/03/Internet_Line-20-512.webp&quot; alt=&quot;Internet_Line-20-512&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Step 4: Configure Domain&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Setup DNS&lt;/strong&gt;&lt;br /&gt;
-Go to your web domain registrar and create A record pointing to your new server&lt;br /&gt;
&lt;strong&gt;Configure Apache conf for website&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;Directory /var/www/example.com&amp;gt;  
        Require all granted  
&amp;lt;/Directory&amp;gt;  
&amp;lt;VirtualHost *:80&amp;gt;  
        ServerName &amp;lt;a rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot; href=&quot;http://example.com/&quot;&amp;gt;example.com&amp;lt;/a&amp;gt;  
        ServerAlias &amp;lt;a rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot; href=&quot;http://www.example.com/&quot;&amp;gt;www.example.com&amp;lt;/a&amp;gt;  
        ServerAdmin webmaster@localhost  
        DocumentRoot /var/www/example.com  
&amp;lt;/VirtualHost&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;$ mkdir -p /var/www/example.com&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ a2dissite 000-default.conf&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;$ a2ensite example.com.conf&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;$ systemctl reload apache2&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/03/san.webp&quot; alt=&quot;san&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Step 5: Prep Database and PHP&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Create database&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ mysql -u root  
&amp;gt; CREATE DATABASE wordpress;  
&amp;gt; GRANT ALL ON wordpress.* TO &apos;wordpressuser&apos; IDENTIFIED BY &apos;Secure1234!&apos;;  
&amp;gt; quit  
$ mysql_secure_installation
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Edit /etc/php/7.2/apache2/php.ini&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;max\_input\_time = 30  
upload\_max\_filesize = 20M  
post\_max\_size = 21M
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/03/WordPress-Logo-Download-PNG.webp&quot; alt=&quot;WordPress-Logo-Download-PNG&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Step 6: Install WordPress on Google Cloud Platform&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://codex.wordpress.org/Installing_WordPress&quot;&gt;https://codex.wordpress.org/Installing_WordPress&lt;/a&gt;&lt;br /&gt;
&lt;code&gt;$ wget https://wordpress.org/latest.tar.gz&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;$ tar -xzvf latest.tar.gz&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Step 7: Tune the new install and MPM_Prefork.conf&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/richardforth/apache2buddy/master/apache2buddy.pl&quot;&gt;https://raw.githubusercontent.com/richardforth/apache2buddy/master/apache2buddy.pl&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Step 8: Troubleshooting&lt;/h3&gt;
&lt;p&gt;One important addition to setting up WordPress. Permission errors with the WordPress installation can be fixed with the following command.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ chown -R www-data:www-data /var/www/html/*&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This adds permissions for the Apache server user to use the files in the webpage directory.&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/vIJdypOqlL4&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;p&gt;In Conclusion, you now have WordPress on Google Cloud Platform. Enjoy the experience and let me know in the comments if you have any issues.&lt;/p&gt;
&lt;p&gt;I live stream on &lt;a href=&quot;https://twitch.tv/christitustech&quot;&gt;Twitch&lt;/a&gt; and encourage you to drop in and ask a question. I regularly publish on &lt;a href=&quot;https://www.youtube.com/c/ChrisTitusTech&quot;&gt;YouTube&lt;/a&gt; and &lt;a href=&quot;/&quot;&gt;christitus.com&lt;/a&gt;, but if you need immediate assistance, check out the Terminal Cafe with &lt;a href=&quot;https://discord.gg/yDAqap7Y7Q&quot;&gt;Discord Invite Link&lt;/a&gt;.&lt;/p&gt;
</description><pubDate>Thu, 14 Mar 2019 15:23:56 GMT</pubDate><content:encoded>&lt;p&gt;I am going over hosting WordPress on Google Cloud Platform in this article. This is a step by step guide on how to set up and host a WordPress website using a fresh installation. &lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/03/nas_theapplication_3216.webp&quot; alt=&quot;nas_theapplication_3216&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Step 1: Fresh VM&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Note: Be sure and install gcloud &lt;a href=&quot;https://cloud.google.com/sdk/docs/downloads-apt-get&quot;&gt;https://cloud.google.com/sdk/docs/downloads-apt-get&lt;/a&gt;
Setup Project and VM (micro)&lt;/em&gt;&lt;br /&gt;
&lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Step 2: Install Swap&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo fallocate -l 1G /swapfile  
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576  
sudo chmod 600 /swapfile  
sudo mkswap /swapfile  
sudo swapon /swapfile  
sudo nano /etc/fstab  
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;/swapfile swap swap defaults 0 0&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/03/apache2.webp&quot; alt=&quot;apache2&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Step 3: Install LAMP Stack (Linux, Apache, MySQL, and PHP)&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install tasksel
sudo tasksel install lamp-server
sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/03/Internet_Line-20-512.webp&quot; alt=&quot;Internet_Line-20-512&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Step 4: Configure Domain&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Setup DNS&lt;/strong&gt;&lt;br /&gt;
-Go to your web domain registrar and create A record pointing to your new server&lt;br /&gt;
&lt;strong&gt;Configure Apache conf for website&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;Directory /var/www/example.com&amp;gt;  
        Require all granted  
&amp;lt;/Directory&amp;gt;  
&amp;lt;VirtualHost *:80&amp;gt;  
        ServerName &amp;lt;a rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot; href=&quot;http://example.com/&quot;&amp;gt;example.com&amp;lt;/a&amp;gt;  
        ServerAlias &amp;lt;a rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot; href=&quot;http://www.example.com/&quot;&amp;gt;www.example.com&amp;lt;/a&amp;gt;  
        ServerAdmin webmaster@localhost  
        DocumentRoot /var/www/example.com  
&amp;lt;/VirtualHost&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;$ mkdir -p /var/www/example.com&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ a2dissite 000-default.conf&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;$ a2ensite example.com.conf&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;$ systemctl reload apache2&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/03/san.webp&quot; alt=&quot;san&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Step 5: Prep Database and PHP&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Create database&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ mysql -u root  
&amp;gt; CREATE DATABASE wordpress;  
&amp;gt; GRANT ALL ON wordpress.* TO &apos;wordpressuser&apos; IDENTIFIED BY &apos;Secure1234!&apos;;  
&amp;gt; quit  
$ mysql_secure_installation
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Edit /etc/php/7.2/apache2/php.ini&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;max\_input\_time = 30  
upload\_max\_filesize = 20M  
post\_max\_size = 21M
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/03/WordPress-Logo-Download-PNG.webp&quot; alt=&quot;WordPress-Logo-Download-PNG&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Step 6: Install WordPress on Google Cloud Platform&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://codex.wordpress.org/Installing_WordPress&quot;&gt;https://codex.wordpress.org/Installing_WordPress&lt;/a&gt;&lt;br /&gt;
&lt;code&gt;$ wget https://wordpress.org/latest.tar.gz&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;$ tar -xzvf latest.tar.gz&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Step 7: Tune the new install and MPM_Prefork.conf&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/richardforth/apache2buddy/master/apache2buddy.pl&quot;&gt;https://raw.githubusercontent.com/richardforth/apache2buddy/master/apache2buddy.pl&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Step 8: Troubleshooting&lt;/h3&gt;
&lt;p&gt;One important addition to setting up WordPress. Permission errors with the WordPress installation can be fixed with the following command.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ chown -R www-data:www-data /var/www/html/*&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This adds permissions for the Apache server user to use the files in the webpage directory.&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/vIJdypOqlL4&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;p&gt;In Conclusion, you now have WordPress on Google Cloud Platform. Enjoy the experience and let me know in the comments if you have any issues.&lt;/p&gt;
&lt;p&gt;I live stream on &lt;a href=&quot;https://twitch.tv/christitustech&quot;&gt;Twitch&lt;/a&gt; and encourage you to drop in and ask a question. I regularly publish on &lt;a href=&quot;https://www.youtube.com/c/ChrisTitusTech&quot;&gt;YouTube&lt;/a&gt; and &lt;a href=&quot;/&quot;&gt;christitus.com&lt;/a&gt;, but if you need immediate assistance, check out the Terminal Cafe with &lt;a href=&quot;https://discord.gg/yDAqap7Y7Q&quot;&gt;Discord Invite Link&lt;/a&gt;.&lt;/p&gt;
</content:encoded></item><item><title>Aptitude Explained</title><link>https://christitus.com/aptitude-explained/</link><guid isPermaLink="true">https://christitus.com/aptitude-explained/</guid><description>&lt;p&gt;In this article, I am going over the aptitude command and explaining all of the commands and usage that goes with its usage. &lt;/p&gt;
&lt;h2&gt;Install Aptitude&lt;/h2&gt;
&lt;p&gt;Run the following command to install aptitude and task select: &lt;strong&gt;sudo apt install aptitude tasksel&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;Why Aptitude?&lt;/h2&gt;
&lt;p&gt;Aptitude provides greater dependency resolution and wildcard installations. Making installing or reinstalling entire packages far easier. For instance the following command installs KDE in a simple command: &lt;code&gt;aptitude install ~t^desktop$ ~t^kde-desktop$&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;aptitude install&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;install one or more packages:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo aptitude install gedit&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;remove a package
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo aptitude install gedit&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;purge a package
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo aptitude install gedit_&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;hold a package at its current version
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo aptitude install gedit=&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;build dependencies for a package
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo aptitude install gedit&amp;amp;BD&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;aptitude remove, purge, reinstall&lt;/h3&gt;
&lt;p&gt;These are the same as using the above commands under install, however, you can utilizing these independent commands with wildcards like below&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo aptitude purge ^kde-desktop$&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;aptitude hold, unhold, keep&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;hold is the same as the install, but again I like to use this long hand version when utilizing wildcards.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;unhold&lt;/strong&gt; – is a great way to release held packages&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;keep&lt;/strong&gt; – I &lt;strong&gt;DO NOT USE&lt;/strong&gt; because it merely cancelled scheduled tasks for that package… only it will continue to be upgraded later.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;aptitude update, safe-upgrade, full-upgrade&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;update&lt;/strong&gt; – updates the cache&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;safe-upgrade&lt;/strong&gt; – upgrades all packages but will not remove unused packages&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;full-upgrade&lt;/strong&gt; – upgrades all packages but &lt;strong&gt;WILL&lt;/strong&gt; remove unused packages&lt;/li&gt;
&lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;aptitude search&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;search &lt;/strong&gt; – searches for the package, these search results can use wildcards, be sorted, and culled as needed using various options&lt;/li&gt;
&lt;li&gt;search examples:
&lt;ul&gt;
&lt;li&gt;Search for packaged installed from outside stable repo
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;aptitude search &apos;?narrow(?installed, !?archive(stable))&apos;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Search for packages installed by the testing repo but not stable
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;aptitude search &apos;?narrow(?installed, ?archive(testing) !?archive(stable))&apos;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;List installed packages
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;aptitude search ~i&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;List reverse dependencies for gedit
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;aptitude search ~Dgedit&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;show broken packages
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;aptitude search ~b&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;display packages on hold
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;aptitude search ~ahold&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Find and install all packages with the name tightvnc in it
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;aptitude search ~ntightvnc&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Install a specific version of a package
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;aptitude install php=5.6&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;strong&gt;aptitude show&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;aptitude show &lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;displays information about the package&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;aptitude why, why-not&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;aptitude why &lt;/strong&gt; – explains why a package can’t be installs because of a missing dependency&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;aptitude why-not &lt;/strong&gt; – show conflicts in which the package dependency can not be installed&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;aptitude clean and autoclean&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;aptitude clean&lt;/strong&gt; – removes all previously downloaded packages from the cache directory&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;aptitude autoclean&lt;/strong&gt; – removes cached packages which no longer exist in your repositories&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;aptitude search terms&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.debian.org/doc/manuals/aptitude/ch02s04s05.en.html#tableSearchTermQuickGuide&quot;&gt;https://www.debian.org/doc/manuals/aptitude/ch02s04s05.en.html#tableSearchTermQuickGuide&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/xca3Ywf54N0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Tue, 12 Mar 2019 20:35:00 GMT</pubDate><content:encoded>&lt;p&gt;In this article, I am going over the aptitude command and explaining all of the commands and usage that goes with its usage. &lt;/p&gt;
&lt;h2&gt;Install Aptitude&lt;/h2&gt;
&lt;p&gt;Run the following command to install aptitude and task select: &lt;strong&gt;sudo apt install aptitude tasksel&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;Why Aptitude?&lt;/h2&gt;
&lt;p&gt;Aptitude provides greater dependency resolution and wildcard installations. Making installing or reinstalling entire packages far easier. For instance the following command installs KDE in a simple command: &lt;code&gt;aptitude install ~t^desktop$ ~t^kde-desktop$&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;aptitude install&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;install one or more packages:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo aptitude install gedit&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;remove a package
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo aptitude install gedit&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;purge a package
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo aptitude install gedit_&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;hold a package at its current version
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo aptitude install gedit=&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;build dependencies for a package
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo aptitude install gedit&amp;amp;BD&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;aptitude remove, purge, reinstall&lt;/h3&gt;
&lt;p&gt;These are the same as using the above commands under install, however, you can utilizing these independent commands with wildcards like below&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo aptitude purge ^kde-desktop$&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;aptitude hold, unhold, keep&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;hold is the same as the install, but again I like to use this long hand version when utilizing wildcards.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;unhold&lt;/strong&gt; – is a great way to release held packages&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;keep&lt;/strong&gt; – I &lt;strong&gt;DO NOT USE&lt;/strong&gt; because it merely cancelled scheduled tasks for that package… only it will continue to be upgraded later.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;aptitude update, safe-upgrade, full-upgrade&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;update&lt;/strong&gt; – updates the cache&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;safe-upgrade&lt;/strong&gt; – upgrades all packages but will not remove unused packages&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;full-upgrade&lt;/strong&gt; – upgrades all packages but &lt;strong&gt;WILL&lt;/strong&gt; remove unused packages&lt;/li&gt;
&lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;aptitude search&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;search &lt;/strong&gt; – searches for the package, these search results can use wildcards, be sorted, and culled as needed using various options&lt;/li&gt;
&lt;li&gt;search examples:
&lt;ul&gt;
&lt;li&gt;Search for packaged installed from outside stable repo
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;aptitude search &apos;?narrow(?installed, !?archive(stable))&apos;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Search for packages installed by the testing repo but not stable
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;aptitude search &apos;?narrow(?installed, ?archive(testing) !?archive(stable))&apos;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;List installed packages
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;aptitude search ~i&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;List reverse dependencies for gedit
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;aptitude search ~Dgedit&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;show broken packages
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;aptitude search ~b&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;display packages on hold
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;aptitude search ~ahold&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Find and install all packages with the name tightvnc in it
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;aptitude search ~ntightvnc&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Install a specific version of a package
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;aptitude install php=5.6&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;strong&gt;aptitude show&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;aptitude show &lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;displays information about the package&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;aptitude why, why-not&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;aptitude why &lt;/strong&gt; – explains why a package can’t be installs because of a missing dependency&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;aptitude why-not &lt;/strong&gt; – show conflicts in which the package dependency can not be installed&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;aptitude clean and autoclean&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;aptitude clean&lt;/strong&gt; – removes all previously downloaded packages from the cache directory&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;aptitude autoclean&lt;/strong&gt; – removes cached packages which no longer exist in your repositories&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;aptitude search terms&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.debian.org/doc/manuals/aptitude/ch02s04s05.en.html#tableSearchTermQuickGuide&quot;&gt;https://www.debian.org/doc/manuals/aptitude/ch02s04s05.en.html#tableSearchTermQuickGuide&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/xca3Ywf54N0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Garmin Express on Linux | Step by Step Guide</title><link>https://christitus.com/garmin-express-linux/</link><guid isPermaLink="true">https://christitus.com/garmin-express-linux/</guid><description>&lt;p&gt;This is an installation guide on how to get Garmin Express on Linux working. In this Step by Step Guide, I go over creating a new wine bottle and installing Garmin Express in it. &lt;/p&gt;
&lt;h2&gt;Linux Package Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;wine-devel &lt;em&gt;Note:3.19 or higher&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;winetricks&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Installation Steps&lt;/h2&gt;
&lt;p&gt;First we start by creating a wineprefix and installing our prerequisites from terminal:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;WINEARCH=win32 WINEPREFIX=/home/$USER/GarminExpress winetricks dotnet452 vcrun2010 corefonts&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;WINEARCH=win32 WINEPREFIX=/home/$USER/GarminExpress winetricks win7&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: You will be prompted during the setup for .NET installation just hit next and finish. Also, I like to seperate win7 after the prerequisites are setup to make sure the wineprefix runs in Windows 7 mode.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;With that out of the  way we need to download and install our GarminExpress.exe Setup executable. I downloaded mine from &lt;a href=&quot;https://www.garmin.com/en-US/software/express&quot;&gt;https://www.garmin.com/en-US/software/express&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Run the GarminExpress.exe file in our wine prefix&lt;/p&gt;
&lt;p&gt;&lt;code&gt;WINEPREFIX=/home/$USER/GarminExpress wine explorer /desktop=garmin,1366x768 /home/$USER/Downloads/GarminExpress.exe&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: If you downloaded the GarminExpress.exe to another location replace it above&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Modify your shortcut to be the following command&lt;/p&gt;
&lt;p&gt;WINEPREFIX=/home/ctitus/GarminExpress wine explorer /desktop=garmin,1366x768 &apos;/home/ctitus/GarminExpress/drive_c/Program Files/Garmin/Express/express.exe&apos;&lt;/p&gt;
&lt;p&gt;Upon Launch you should see this screen which should recognize your Garmin device&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/02/Selection_012.webp&quot; alt=&quot;Garmin Express on Linux&quot; /&gt;&lt;/p&gt;
&lt;p&gt;With all this done you will be able to launch Garmin Express on Linux.&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/hg01Z6VCox0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Fri, 15 Feb 2019 22:20:57 GMT</pubDate><content:encoded>&lt;p&gt;This is an installation guide on how to get Garmin Express on Linux working. In this Step by Step Guide, I go over creating a new wine bottle and installing Garmin Express in it. &lt;/p&gt;
&lt;h2&gt;Linux Package Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;wine-devel &lt;em&gt;Note:3.19 or higher&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;winetricks&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Installation Steps&lt;/h2&gt;
&lt;p&gt;First we start by creating a wineprefix and installing our prerequisites from terminal:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;WINEARCH=win32 WINEPREFIX=/home/$USER/GarminExpress winetricks dotnet452 vcrun2010 corefonts&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;WINEARCH=win32 WINEPREFIX=/home/$USER/GarminExpress winetricks win7&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: You will be prompted during the setup for .NET installation just hit next and finish. Also, I like to seperate win7 after the prerequisites are setup to make sure the wineprefix runs in Windows 7 mode.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;With that out of the  way we need to download and install our GarminExpress.exe Setup executable. I downloaded mine from &lt;a href=&quot;https://www.garmin.com/en-US/software/express&quot;&gt;https://www.garmin.com/en-US/software/express&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Run the GarminExpress.exe file in our wine prefix&lt;/p&gt;
&lt;p&gt;&lt;code&gt;WINEPREFIX=/home/$USER/GarminExpress wine explorer /desktop=garmin,1366x768 /home/$USER/Downloads/GarminExpress.exe&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: If you downloaded the GarminExpress.exe to another location replace it above&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Modify your shortcut to be the following command&lt;/p&gt;
&lt;p&gt;WINEPREFIX=/home/ctitus/GarminExpress wine explorer /desktop=garmin,1366x768 &apos;/home/ctitus/GarminExpress/drive_c/Program Files/Garmin/Express/express.exe&apos;&lt;/p&gt;
&lt;p&gt;Upon Launch you should see this screen which should recognize your Garmin device&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/02/Selection_012.webp&quot; alt=&quot;Garmin Express on Linux&quot; /&gt;&lt;/p&gt;
&lt;p&gt;With all this done you will be able to launch Garmin Express on Linux.&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/hg01Z6VCox0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Manjaro Architect Installation Guide</title><link>https://christitus.com/manjaro-architect-installation-guide/</link><guid isPermaLink="true">https://christitus.com/manjaro-architect-installation-guide/</guid><description>&lt;p&gt;In this book, I go over step by step the entire Manjaro Architect installation. This guide is suitable for any knowledge level from beginner to expert. I published “The Complete Manjaro Architect Installation Guide” on Amazon so, if you are installing on your main PC you can follow along without constantly scrolling through on your phone trying to find what you are looking for. I highly recommend watching the video below, and doing a trial of Manjaro Architect in a virtual machine to familiarize yourself with it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/01/manjaro-cover.webp&quot; alt=&quot;Manjaro Architect Book&quot; /&gt;&lt;br /&gt;
The original Amazon listing is no longer available.&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/530O4InhR3A&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 21 Jan 2019 19:51:04 GMT</pubDate><content:encoded>&lt;p&gt;In this book, I go over step by step the entire Manjaro Architect installation. This guide is suitable for any knowledge level from beginner to expert. I published “The Complete Manjaro Architect Installation Guide” on Amazon so, if you are installing on your main PC you can follow along without constantly scrolling through on your phone trying to find what you are looking for. I highly recommend watching the video below, and doing a trial of Manjaro Architect in a virtual machine to familiarize yourself with it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2019/01/manjaro-cover.webp&quot; alt=&quot;Manjaro Architect Book&quot; /&gt;&lt;br /&gt;
The original Amazon listing is no longer available.&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/530O4InhR3A&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Resize LVM Partition | Fedora 29 | Step by Step Guide</title><link>https://christitus.com/resize-lvm-partition-fedora-29-step-by-step-guide/</link><guid isPermaLink="true">https://christitus.com/resize-lvm-partition-fedora-29-step-by-step-guide/</guid><description>&lt;p&gt;In this guide, I show you how to Resize LVM Partition in Fedora 29. I recently ran out of space and had to clone my install from a 120SSD ssd to a 240 GB SSD. I first had issues with boot timing out and causing the /dev/mapper/home, /dev/mapper/swap, and /dev/mapper/root not being found. To fix this, I simply rebooted to the rescue kernel and ran &lt;code&gt;dracut --regenerate-all -f&lt;/code&gt; to resolve this in Single-User Mode.&lt;/p&gt;
&lt;h2&gt;Disclaimer: All these commands are done in Single-User Mode, therefore this will NOT work on a regular desktop&lt;/h2&gt;
&lt;p&gt;Upon reboot, I found that I now can see all the space on the drive, but needed to resize the LVM Partition.&lt;/p&gt;
&lt;h3&gt;Resize LVM Partition&lt;/h3&gt;
&lt;p&gt;First, we need to identify the LVM Partition we need to expand. In my case, it was my home directory that was running low on space.&lt;/p&gt;
&lt;p&gt;Command: &lt;code&gt;df -h&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/11/Selection_008.webp&quot; alt=&quot;lvm-selection8&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Second, lets verify there is space to expand on the physical drive.&lt;/p&gt;
&lt;p&gt;Command: &lt;code&gt;vgdisplay&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/11/Selection_009.webp&quot; alt=&quot;lvm-selection9&quot; /&gt;&lt;/p&gt;
&lt;p&gt;With all this verified, you can now expand the lvm partition.&lt;br /&gt;
&lt;em&gt;Note: the command below will take up a 100% of the free space, see screenshot for precise extentsion.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Command: &lt;code&gt;lvextend -l 100%FREE /dev/fedora/home&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/11/Selection_010.webp&quot; alt=&quot;lvm-selection10&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Finally, with the logical volume extended we simply reclaim the free space now.&lt;/p&gt;
&lt;p&gt;Command: &lt;code&gt;resize2fs /dev/fedora/home&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/11/Selection_011.webp&quot; alt=&quot;lvm-selection11&quot; /&gt;&lt;/p&gt;
</description><pubDate>Sat, 17 Nov 2018 19:54:29 GMT</pubDate><content:encoded>&lt;p&gt;In this guide, I show you how to Resize LVM Partition in Fedora 29. I recently ran out of space and had to clone my install from a 120SSD ssd to a 240 GB SSD. I first had issues with boot timing out and causing the /dev/mapper/home, /dev/mapper/swap, and /dev/mapper/root not being found. To fix this, I simply rebooted to the rescue kernel and ran &lt;code&gt;dracut --regenerate-all -f&lt;/code&gt; to resolve this in Single-User Mode.&lt;/p&gt;
&lt;h2&gt;Disclaimer: All these commands are done in Single-User Mode, therefore this will NOT work on a regular desktop&lt;/h2&gt;
&lt;p&gt;Upon reboot, I found that I now can see all the space on the drive, but needed to resize the LVM Partition.&lt;/p&gt;
&lt;h3&gt;Resize LVM Partition&lt;/h3&gt;
&lt;p&gt;First, we need to identify the LVM Partition we need to expand. In my case, it was my home directory that was running low on space.&lt;/p&gt;
&lt;p&gt;Command: &lt;code&gt;df -h&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/11/Selection_008.webp&quot; alt=&quot;lvm-selection8&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Second, lets verify there is space to expand on the physical drive.&lt;/p&gt;
&lt;p&gt;Command: &lt;code&gt;vgdisplay&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/11/Selection_009.webp&quot; alt=&quot;lvm-selection9&quot; /&gt;&lt;/p&gt;
&lt;p&gt;With all this verified, you can now expand the lvm partition.&lt;br /&gt;
&lt;em&gt;Note: the command below will take up a 100% of the free space, see screenshot for precise extentsion.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Command: &lt;code&gt;lvextend -l 100%FREE /dev/fedora/home&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/11/Selection_010.webp&quot; alt=&quot;lvm-selection10&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Finally, with the logical volume extended we simply reclaim the free space now.&lt;/p&gt;
&lt;p&gt;Command: &lt;code&gt;resize2fs /dev/fedora/home&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/11/Selection_011.webp&quot; alt=&quot;lvm-selection11&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>Logitech C920 Linux Driver | Fix Lag and Disable Auto-Focus</title><link>https://christitus.com/logitech-c920-linux-driver/</link><guid isPermaLink="true">https://christitus.com/logitech-c920-linux-driver/</guid><description>&lt;p&gt;With my webcam, I was having major issues and tried looking for a Logitech C920 Linux Driver, as I have a Logitech C920 Webcam that is very laggy in Linux, but in Windows, I don’t have any issues. I found out that the autofocus and exposure were causing a ton of issues. After following this guide, you will be able to fix this issue. &lt;/p&gt;
&lt;h2&gt;Logitech C920 Linux Driver Problem&lt;/h2&gt;
&lt;p&gt;So there isn’t a Logitech program to control and optimize your Logitech camera in Linux, like the Windows counterpart. However, there is a command line program that will allow you to change ANY setting on the Logitech camera. This is, in my opinion, way better than the Windows clunky Logitech Application. So let’s get our program to do just that and fix these horrible default settings.&lt;/p&gt;
&lt;h3&gt;Install v4l-utils&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Ubuntu/Debian:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo apt-get install v4l-utils&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fedora/Centos:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo yum install v4l-utils&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Change Settings using v4l-utils&lt;/h3&gt;
&lt;p&gt;Find your C920 Webcam or other webcams you need to switch the default settings on.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Command:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;v4l2-ctl --list-devices&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/11/Selection_002.webp&quot; alt=&quot;c920-selection2&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;List controls for the Logitech C920&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;v4l2-ctl -d /dev/video6 --list-ctrls&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/11/Selection_003.webp&quot; alt=&quot;c920-selection3&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;There are two values we need to change to get the best performance from our webcam&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Here is the command syntax:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;v4l2-ctl -d /dev/video6 --set-ctrl=exposure_auto=1&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;v4l2-ctl -d /dev/video6 --set-ctrl=focus_auto=0&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Video Walkthrough&lt;/h3&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/7SZBQ5bqaWU&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;p&gt;Now that you know about the Logitech C920 Linux Driver support and how it functions, you can fix it. I hope this helps you as it took me quite a while to hunt down this information.&lt;/p&gt;
</description><pubDate>Fri, 09 Nov 2018 20:36:56 GMT</pubDate><content:encoded>&lt;p&gt;With my webcam, I was having major issues and tried looking for a Logitech C920 Linux Driver, as I have a Logitech C920 Webcam that is very laggy in Linux, but in Windows, I don’t have any issues. I found out that the autofocus and exposure were causing a ton of issues. After following this guide, you will be able to fix this issue. &lt;/p&gt;
&lt;h2&gt;Logitech C920 Linux Driver Problem&lt;/h2&gt;
&lt;p&gt;So there isn’t a Logitech program to control and optimize your Logitech camera in Linux, like the Windows counterpart. However, there is a command line program that will allow you to change ANY setting on the Logitech camera. This is, in my opinion, way better than the Windows clunky Logitech Application. So let’s get our program to do just that and fix these horrible default settings.&lt;/p&gt;
&lt;h3&gt;Install v4l-utils&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Ubuntu/Debian:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo apt-get install v4l-utils&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fedora/Centos:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo yum install v4l-utils&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Change Settings using v4l-utils&lt;/h3&gt;
&lt;p&gt;Find your C920 Webcam or other webcams you need to switch the default settings on.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Command:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;v4l2-ctl --list-devices&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/11/Selection_002.webp&quot; alt=&quot;c920-selection2&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;List controls for the Logitech C920&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;v4l2-ctl -d /dev/video6 --list-ctrls&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/11/Selection_003.webp&quot; alt=&quot;c920-selection3&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;There are two values we need to change to get the best performance from our webcam&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Here is the command syntax:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;v4l2-ctl -d /dev/video6 --set-ctrl=exposure_auto=1&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;v4l2-ctl -d /dev/video6 --set-ctrl=focus_auto=0&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Video Walkthrough&lt;/h3&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/7SZBQ5bqaWU&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;p&gt;Now that you know about the Logitech C920 Linux Driver support and how it functions, you can fix it. I hope this helps you as it took me quite a while to hunt down this information.&lt;/p&gt;
</content:encoded></item><item><title>Clearing out Orphaned Shadow Copies</title><link>https://christitus.com/orphaned-shadow-copies/</link><guid isPermaLink="true">https://christitus.com/orphaned-shadow-copies/</guid><description>&lt;p&gt;In this article, I go over how to get rid of Orphaned Shadow Copies that do not get cleared out by issuing: &lt;code&gt;vssadmin shadows delete /all&lt;/code&gt; &lt;/p&gt;
&lt;h2&gt;Steps to clear out all orphaned shadow copies&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;vssadmin shadows delete /all&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;vssadmin shadows list&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;verify orphaned shadow copies still exist&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Use the following command to resize shadow storage, consequently, clears out any shadow copies on that drive
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;vssadmin Resize ShadowStorage /For=C: /On=C: /MaxSize=300MB&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Note: Repeat this for each drive with orphaned shadow copies&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Afterward, do a shadows list to verify the shadow copies have been cleared out
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;This process can take a very long time for large drives with a lot of shadow copies.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;With all that finished, reset your shadow copies to either unbounded or 50-100 GB if you have space.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/10/shadow-copies.webp&quot; alt=&quot;server-vss&quot; /&gt;&lt;/p&gt;
&lt;p&gt;In conclusion, this issue has become less of an issue with the newer versions of Windows Server, but can still rear its ugly head from time to time. It’s important that you keep these pruned and functional, due to the fact a large number of shadow copies will bloat your server. This also can cause massive performance issues that will lock up a server. It is very important that you keep these manageable and functional for each server instance. In the day and age where virtualization has become so prevalent, you shouldn’t need many shadow copies.&lt;/p&gt;
</description><pubDate>Thu, 25 Oct 2018 15:34:24 GMT</pubDate><content:encoded>&lt;p&gt;In this article, I go over how to get rid of Orphaned Shadow Copies that do not get cleared out by issuing: &lt;code&gt;vssadmin shadows delete /all&lt;/code&gt; &lt;/p&gt;
&lt;h2&gt;Steps to clear out all orphaned shadow copies&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;vssadmin shadows delete /all&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;vssadmin shadows list&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;verify orphaned shadow copies still exist&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Use the following command to resize shadow storage, consequently, clears out any shadow copies on that drive
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;vssadmin Resize ShadowStorage /For=C: /On=C: /MaxSize=300MB&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Note: Repeat this for each drive with orphaned shadow copies&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Afterward, do a shadows list to verify the shadow copies have been cleared out
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;This process can take a very long time for large drives with a lot of shadow copies.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;With all that finished, reset your shadow copies to either unbounded or 50-100 GB if you have space.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/10/shadow-copies.webp&quot; alt=&quot;server-vss&quot; /&gt;&lt;/p&gt;
&lt;p&gt;In conclusion, this issue has become less of an issue with the newer versions of Windows Server, but can still rear its ugly head from time to time. It’s important that you keep these pruned and functional, due to the fact a large number of shadow copies will bloat your server. This also can cause massive performance issues that will lock up a server. It is very important that you keep these manageable and functional for each server instance. In the day and age where virtualization has become so prevalent, you shouldn’t need many shadow copies.&lt;/p&gt;
</content:encoded></item><item><title>Install Plex plugin in FreeNAS</title><link>https://christitus.com/install-plex-plugin-freenas/</link><guid isPermaLink="true">https://christitus.com/install-plex-plugin-freenas/</guid><description>&lt;p&gt;This is an in-depth installation and configuration of the Plex plugin in FreeNAS 11.2. I detail the installation of plex on FreeNAS Jail and configuration of using a share as a Plex mount point. &lt;/p&gt;
&lt;h2&gt;Plex plugin in FreeNAS Steps&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Install Plex Plugin
&lt;ul&gt;
&lt;li&gt;Under Plugins -&amp;gt; Availiable&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Set Static IP
&lt;ul&gt;
&lt;li&gt;Interface em0 (or your interface name), Static IP for Plex Server, and Netmask (/24 is 255.255.255.0)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Stop Plugin&lt;/li&gt;
&lt;li&gt;Edit Plex Jail – Mount Point – &lt;em&gt;Note: This is only used if you want a share to add movies to your plex from another computer&lt;/em&gt;
&lt;ul&gt;
&lt;li&gt;Set Source Share (/mnt/sharename/) and Set Destination (I selected the media folder in the jail directory)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Edit Plex Jail – Edit Confiuration
&lt;ol&gt;
&lt;li&gt;Check VNET and Berkeley Packet Filter&lt;/li&gt;
&lt;li&gt;Set Default IPv4 Route to your Gateway or Router (Ex. 192.168.1.1)&lt;/li&gt;
&lt;li&gt;Next&lt;/li&gt;
&lt;li&gt;Select “allow:raw_sockets”&lt;/li&gt;
&lt;li&gt;Click save in the bottom left&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Launch Management from Plugin Menu&lt;/li&gt;
&lt;li&gt;Name your Server&lt;/li&gt;
&lt;li&gt;Enter your Destination folder from Jail Mount Point (Ex. /media/)&lt;/li&gt;
&lt;li&gt;Finish!&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;p&gt;Install Plex on FreeNAS Video: &lt;/p&gt;&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/99fQNbuAOlg&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The original FreeNAS installation and setup videos are no longer available.&lt;/p&gt;
&lt;p&gt;In closing, This guide will get Plex up and running on your FreeNAS without much hassle. I highly recommend this setup as ZFS is far superior to a RAID setup and makes sure that your data stays stable and reliable. Consequently, I find that my Plex server does run considerably faster in this configuration than it ever did when it was on my Windows 10 machine.&lt;/p&gt;
&lt;p&gt;For general setup, configuration, and hardware setup, please refer to my guide @ &lt;a href=&quot;https://christitus.com/setup-freenas-11/&quot;&gt;https://christitus.com/setup-freenas-11/&lt;/a&gt;&lt;/p&gt;
</description><pubDate>Tue, 23 Oct 2018 19:14:03 GMT</pubDate><content:encoded>&lt;p&gt;This is an in-depth installation and configuration of the Plex plugin in FreeNAS 11.2. I detail the installation of plex on FreeNAS Jail and configuration of using a share as a Plex mount point. &lt;/p&gt;
&lt;h2&gt;Plex plugin in FreeNAS Steps&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Install Plex Plugin
&lt;ul&gt;
&lt;li&gt;Under Plugins -&amp;gt; Availiable&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Set Static IP
&lt;ul&gt;
&lt;li&gt;Interface em0 (or your interface name), Static IP for Plex Server, and Netmask (/24 is 255.255.255.0)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Stop Plugin&lt;/li&gt;
&lt;li&gt;Edit Plex Jail – Mount Point – &lt;em&gt;Note: This is only used if you want a share to add movies to your plex from another computer&lt;/em&gt;
&lt;ul&gt;
&lt;li&gt;Set Source Share (/mnt/sharename/) and Set Destination (I selected the media folder in the jail directory)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Edit Plex Jail – Edit Confiuration
&lt;ol&gt;
&lt;li&gt;Check VNET and Berkeley Packet Filter&lt;/li&gt;
&lt;li&gt;Set Default IPv4 Route to your Gateway or Router (Ex. 192.168.1.1)&lt;/li&gt;
&lt;li&gt;Next&lt;/li&gt;
&lt;li&gt;Select “allow:raw_sockets”&lt;/li&gt;
&lt;li&gt;Click save in the bottom left&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Launch Management from Plugin Menu&lt;/li&gt;
&lt;li&gt;Name your Server&lt;/li&gt;
&lt;li&gt;Enter your Destination folder from Jail Mount Point (Ex. /media/)&lt;/li&gt;
&lt;li&gt;Finish!&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;p&gt;Install Plex on FreeNAS Video: &lt;/p&gt;&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/99fQNbuAOlg&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The original FreeNAS installation and setup videos are no longer available.&lt;/p&gt;
&lt;p&gt;In closing, This guide will get Plex up and running on your FreeNAS without much hassle. I highly recommend this setup as ZFS is far superior to a RAID setup and makes sure that your data stays stable and reliable. Consequently, I find that my Plex server does run considerably faster in this configuration than it ever did when it was on my Windows 10 machine.&lt;/p&gt;
&lt;p&gt;For general setup, configuration, and hardware setup, please refer to my guide @ &lt;a href=&quot;https://christitus.com/setup-freenas-11/&quot;&gt;https://christitus.com/setup-freenas-11/&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>How to Install Linux for the First Time</title><link>https://christitus.com/install-linux-first-time/</link><guid isPermaLink="true">https://christitus.com/install-linux-first-time/</guid><description>&lt;p&gt;This article goes over installing Linux for the first time. I will break it down into 3 parts with a Video Walkthrough. Using this will make it very easy for you to install Linux for the first time.&lt;/p&gt;
&lt;h2&gt;Choosing the right version or flavor of Linux&lt;/h2&gt;
&lt;p&gt;Latest Ubuntu Desktop LTS – &lt;a href=&quot;https://www.ubuntu.com/download&quot;&gt;https://www.ubuntu.com/download&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;RUFUS USB Creator for Windows – &lt;a href=&quot;https://rufus.ie/&quot;&gt;https://rufus.ie/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Installation Process&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Download ISO for ubuntu&lt;/li&gt;
&lt;li&gt;Create a USB Thumb drive&lt;/li&gt;
&lt;li&gt;Install&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2011/11/business-code-codes-207580.webp&quot; alt=&quot;business-codes&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Basic Configuration&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Installing Software&lt;/li&gt;
&lt;li&gt;Using GUI / Gnome / Search&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;p&gt;Here is an entire Video playlist that you can choose from depending on where you are in the installation process. This is geared for new Linux users.&lt;br /&gt;
&lt;a href=&quot;https://www.youtube.com/playlist?list=PLc7fktTRMBoz7n-ugZm2Ndi0np_Y4Hh1k&quot;&gt;https://www.youtube.com/playlist?list=PLc7fktTRMBoz7n-ugZm2Ndi0np_Y4Hh1k&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In conclusion, this will get you started with Linux. It is a steep learning curve starting out, but well worth it in the end. After you install Linux for the first time, you will need some time to adjust. I personally did this for my Mother-In-Law and she loves it. She never has to worry about viruses or her computer crashing, which was happening often in Windows, and it was the perfect solution for her.&lt;/p&gt;
</description><pubDate>Thu, 18 Oct 2018 15:23:20 GMT</pubDate><content:encoded>&lt;p&gt;This article goes over installing Linux for the first time. I will break it down into 3 parts with a Video Walkthrough. Using this will make it very easy for you to install Linux for the first time.&lt;/p&gt;
&lt;h2&gt;Choosing the right version or flavor of Linux&lt;/h2&gt;
&lt;p&gt;Latest Ubuntu Desktop LTS – &lt;a href=&quot;https://www.ubuntu.com/download&quot;&gt;https://www.ubuntu.com/download&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;RUFUS USB Creator for Windows – &lt;a href=&quot;https://rufus.ie/&quot;&gt;https://rufus.ie/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Installation Process&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Download ISO for ubuntu&lt;/li&gt;
&lt;li&gt;Create a USB Thumb drive&lt;/li&gt;
&lt;li&gt;Install&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2011/11/business-code-codes-207580.webp&quot; alt=&quot;business-codes&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Basic Configuration&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Installing Software&lt;/li&gt;
&lt;li&gt;Using GUI / Gnome / Search&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;p&gt;Here is an entire Video playlist that you can choose from depending on where you are in the installation process. This is geared for new Linux users.&lt;br /&gt;
&lt;a href=&quot;https://www.youtube.com/playlist?list=PLc7fktTRMBoz7n-ugZm2Ndi0np_Y4Hh1k&quot;&gt;https://www.youtube.com/playlist?list=PLc7fktTRMBoz7n-ugZm2Ndi0np_Y4Hh1k&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In conclusion, this will get you started with Linux. It is a steep learning curve starting out, but well worth it in the end. After you install Linux for the first time, you will need some time to adjust. I personally did this for my Mother-In-Law and she loves it. She never has to worry about viruses or her computer crashing, which was happening often in Windows, and it was the perfect solution for her.&lt;/p&gt;
</content:encoded></item><item><title>How To Change Cortana Search</title><link>https://christitus.com/change-cortana-search/</link><guid isPermaLink="true">https://christitus.com/change-cortana-search/</guid><description>&lt;p&gt;This article goes over how to change Cortana search engine to display results in chrome instead of Microsoft Edge. Afterward, the second part requires you to install a chrome extension to search in Google instead of Bing. &lt;/p&gt;
&lt;h2&gt;Links from Video&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/sylveon/SearchWithMyBrowser&quot;&gt;https://github.com/sylveon/SearchWithMyBrowser&lt;/a&gt; – GitHub Source and Compile Instructions&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/store/apps/9PPKNR9RK26R?ocid=badge&quot;&gt;https://www.microsoft.com/store/apps/9PPKNR9RK26R?ocid=badge&lt;/a&gt; – Windows Store Link from Developer&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/chrometana-pro-redirect-c/lllggmgeiphnciplalhefnbpddbadfdi&quot;&gt;https://chrome.google.com/webstore/detail/chrometana-pro-redirect-c/lllggmgeiphnciplalhefnbpddbadfdi&lt;/a&gt; – Chrometana Pro Google Store Extension&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Steps to Change Cortana Search (Updated)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Open up Chrometana Pro Google Store Extension and Install (Link Above)&lt;/li&gt;
&lt;li&gt;Install EdgeDeflector (On Page after Extension Installed)
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Note: SearchWithMyBrowser is no longer needed as EdgeDeflector takes its place&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Open Webpage and select EdgeDeflector.exe for default open with application&lt;/li&gt;
&lt;li&gt;Done!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the end, you need to watch out for Windows updates. Anytime Windows does a major update, be prepared to repeat the process above, as it will reset it to Edge. Therefore, I’d bookmark the Chrometana Pro page or this one as you will be coming back to do this about twice a year. If you don’t want to do this, you can always switch to Linux. Consequently, I have written an article about the pro’s and con’s of such a switch and I highly recommend the switch if you are able.&lt;/p&gt;
</description><pubDate>Wed, 17 Oct 2018 15:22:41 GMT</pubDate><content:encoded>&lt;p&gt;This article goes over how to change Cortana search engine to display results in chrome instead of Microsoft Edge. Afterward, the second part requires you to install a chrome extension to search in Google instead of Bing. &lt;/p&gt;
&lt;h2&gt;Links from Video&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/sylveon/SearchWithMyBrowser&quot;&gt;https://github.com/sylveon/SearchWithMyBrowser&lt;/a&gt; – GitHub Source and Compile Instructions&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/store/apps/9PPKNR9RK26R?ocid=badge&quot;&gt;https://www.microsoft.com/store/apps/9PPKNR9RK26R?ocid=badge&lt;/a&gt; – Windows Store Link from Developer&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/chrometana-pro-redirect-c/lllggmgeiphnciplalhefnbpddbadfdi&quot;&gt;https://chrome.google.com/webstore/detail/chrometana-pro-redirect-c/lllggmgeiphnciplalhefnbpddbadfdi&lt;/a&gt; – Chrometana Pro Google Store Extension&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Steps to Change Cortana Search (Updated)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Open up Chrometana Pro Google Store Extension and Install (Link Above)&lt;/li&gt;
&lt;li&gt;Install EdgeDeflector (On Page after Extension Installed)
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Note: SearchWithMyBrowser is no longer needed as EdgeDeflector takes its place&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Open Webpage and select EdgeDeflector.exe for default open with application&lt;/li&gt;
&lt;li&gt;Done!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the end, you need to watch out for Windows updates. Anytime Windows does a major update, be prepared to repeat the process above, as it will reset it to Edge. Therefore, I’d bookmark the Chrometana Pro page or this one as you will be coming back to do this about twice a year. If you don’t want to do this, you can always switch to Linux. Consequently, I have written an article about the pro’s and con’s of such a switch and I highly recommend the switch if you are able.&lt;/p&gt;
</content:encoded></item><item><title>Why should I switch to Linux from Windows?</title><link>https://christitus.com/linux-switch-video/</link><guid isPermaLink="true">https://christitus.com/linux-switch-video/</guid><description>&lt;p&gt;This will be the first article in a series of Linux articles, I am going over 6 reasons to switch to Linux and 1 big reason not to. Many people ask “Why should I switch to Linux from Windows?” and in this article below I break it down for you. &lt;/p&gt;
&lt;h2&gt;Pros&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;It’s Free – Tons of Free software&lt;/li&gt;
&lt;li&gt;No big brother – Microsoft Telemetry reports on you!&lt;/li&gt;
&lt;li&gt;Stable – Can go months or even years before rebooting&lt;/li&gt;
&lt;li&gt;Works on anything – Pretty much any piece of hard will run Linux.&lt;/li&gt;
&lt;li&gt;Updates the way you WANT!&lt;/li&gt;
&lt;li&gt;Virus/malware resistant&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Cons&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Windows only software
&lt;ul&gt;
&lt;li&gt;Microsoft Office&lt;/li&gt;
&lt;li&gt;Adobe Software Suite&lt;/li&gt;
&lt;li&gt;Specific Games&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/s5QGZ-DBYGs&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Tue, 16 Oct 2018 17:59:04 GMT</pubDate><content:encoded>&lt;p&gt;This will be the first article in a series of Linux articles, I am going over 6 reasons to switch to Linux and 1 big reason not to. Many people ask “Why should I switch to Linux from Windows?” and in this article below I break it down for you. &lt;/p&gt;
&lt;h2&gt;Pros&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;It’s Free – Tons of Free software&lt;/li&gt;
&lt;li&gt;No big brother – Microsoft Telemetry reports on you!&lt;/li&gt;
&lt;li&gt;Stable – Can go months or even years before rebooting&lt;/li&gt;
&lt;li&gt;Works on anything – Pretty much any piece of hard will run Linux.&lt;/li&gt;
&lt;li&gt;Updates the way you WANT!&lt;/li&gt;
&lt;li&gt;Virus/malware resistant&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Cons&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Windows only software
&lt;ul&gt;
&lt;li&gt;Microsoft Office&lt;/li&gt;
&lt;li&gt;Adobe Software Suite&lt;/li&gt;
&lt;li&gt;Specific Games&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/s5QGZ-DBYGs&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>How to Setup FreeNAS 11</title><link>https://christitus.com/setup-freenas-11/</link><guid isPermaLink="true">https://christitus.com/setup-freenas-11/</guid><description>&lt;p&gt;This article goes over how to setup FreeNAS 11 and configure it. These are the basic steps so you can have a reliable network storage at your house. &lt;/p&gt;
&lt;h2&gt;Steps to setup FreeNAS 11&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Download FreeNAS stable from &lt;a href=&quot;http://www.freenas.org/download-freenas-release/&quot;&gt;http://www.freenas.org/download-freenas-release/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Create Thumb drive from iso and Win32DiskImager &lt;a href=&quot;https://sourceforge.net/projects/win32diskimager/&quot;&gt;https://sourceforge.net/projects/win32diskimager/&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Note: DO NOT use Rufus or Yumi as these won’t create a bootable thumb drive&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Install and Follow the Prompts&lt;/li&gt;
&lt;li&gt;Set Static IP&lt;/li&gt;
&lt;li&gt;Reboot&lt;/li&gt;
&lt;li&gt;Login to Web Interface with IP from Step 4&lt;/li&gt;
&lt;li&gt;Set up Storage Pool&lt;/li&gt;
&lt;li&gt;Assign SMB Share
&lt;ul&gt;
&lt;li&gt;Make sure allow guest access  is checked&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Configure SMB Share Service
&lt;ul&gt;
&lt;li&gt;Auto-Start and Enabled&lt;/li&gt;
&lt;li&gt;Configure Guest user to be root&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Test!&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Installation Video Walkthrough&lt;/h2&gt;
&lt;p&gt;Install FreeNAS Video: &lt;/p&gt;&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/G2-s1_OkHGA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Setup FreeNAS Video: &lt;/p&gt;&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/JexkrpeM_WA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;This will get you set up for a reliable network-attached storage in your home environment. Remember once you are finished to clone and image the USB FreeNAS drive. These USB Drives typically only last a couple years, so a backup is a must! In the end, FreeNAS is far more reliable than other commercial NAS products because of ZFS and its versatility.&lt;/p&gt;
&lt;p&gt;For further configuration, I highly recommend checking out the FreeNAS wiki for using some of its more advanced features.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://doc.freenas.org&quot;&gt;http://doc.freenas.org&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Recommended Hardware&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Samsung 32 GB Bar (Metal Series) &lt;a href=&quot;https://amzn.to/2PPvyrf&quot;&gt;https://amzn.to/2PPvyrf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Pre-Built FreeNAS Device (Official Brand – No Drives) &lt;a href=&quot;https://amzn.to/2R7uyid&quot;&gt;https://amzn.to/2R7uyid&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Hard Disk Drives – HGST
&lt;ul&gt;
&lt;li&gt;4 GB – &lt;a href=&quot;https://amzn.to/2Sc3lfM&quot;&gt;https://amzn.to/2Sc3lfM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;6 TB – &lt;a href=&quot;https://amzn.to/2q9NsJL&quot;&gt;https://amzn.to/2q9NsJL&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Solid State Drives – Samsung Pro
&lt;ul&gt;
&lt;li&gt;256 GB – &lt;a href=&quot;https://amzn.to/2Jf58MM&quot;&gt;https://amzn.to/2Jf58MM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;512 GB – &lt;a href=&quot;https://amzn.to/2R6bbGn&quot;&gt;https://amzn.to/2R6bbGn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;1 TB – &lt;a href=&quot;https://amzn.to/2D1CBKz&quot;&gt;https://amzn.to/2D1CBKz&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
</description><pubDate>Fri, 12 Oct 2018 16:11:50 GMT</pubDate><content:encoded>&lt;p&gt;This article goes over how to setup FreeNAS 11 and configure it. These are the basic steps so you can have a reliable network storage at your house. &lt;/p&gt;
&lt;h2&gt;Steps to setup FreeNAS 11&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Download FreeNAS stable from &lt;a href=&quot;http://www.freenas.org/download-freenas-release/&quot;&gt;http://www.freenas.org/download-freenas-release/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Create Thumb drive from iso and Win32DiskImager &lt;a href=&quot;https://sourceforge.net/projects/win32diskimager/&quot;&gt;https://sourceforge.net/projects/win32diskimager/&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Note: DO NOT use Rufus or Yumi as these won’t create a bootable thumb drive&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Install and Follow the Prompts&lt;/li&gt;
&lt;li&gt;Set Static IP&lt;/li&gt;
&lt;li&gt;Reboot&lt;/li&gt;
&lt;li&gt;Login to Web Interface with IP from Step 4&lt;/li&gt;
&lt;li&gt;Set up Storage Pool&lt;/li&gt;
&lt;li&gt;Assign SMB Share
&lt;ul&gt;
&lt;li&gt;Make sure allow guest access  is checked&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Configure SMB Share Service
&lt;ul&gt;
&lt;li&gt;Auto-Start and Enabled&lt;/li&gt;
&lt;li&gt;Configure Guest user to be root&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Test!&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Installation Video Walkthrough&lt;/h2&gt;
&lt;p&gt;Install FreeNAS Video: &lt;/p&gt;&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/G2-s1_OkHGA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Setup FreeNAS Video: &lt;/p&gt;&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/JexkrpeM_WA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;This will get you set up for a reliable network-attached storage in your home environment. Remember once you are finished to clone and image the USB FreeNAS drive. These USB Drives typically only last a couple years, so a backup is a must! In the end, FreeNAS is far more reliable than other commercial NAS products because of ZFS and its versatility.&lt;/p&gt;
&lt;p&gt;For further configuration, I highly recommend checking out the FreeNAS wiki for using some of its more advanced features.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://doc.freenas.org&quot;&gt;http://doc.freenas.org&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Recommended Hardware&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Samsung 32 GB Bar (Metal Series) &lt;a href=&quot;https://amzn.to/2PPvyrf&quot;&gt;https://amzn.to/2PPvyrf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Pre-Built FreeNAS Device (Official Brand – No Drives) &lt;a href=&quot;https://amzn.to/2R7uyid&quot;&gt;https://amzn.to/2R7uyid&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Hard Disk Drives – HGST
&lt;ul&gt;
&lt;li&gt;4 GB – &lt;a href=&quot;https://amzn.to/2Sc3lfM&quot;&gt;https://amzn.to/2Sc3lfM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;6 TB – &lt;a href=&quot;https://amzn.to/2q9NsJL&quot;&gt;https://amzn.to/2q9NsJL&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Solid State Drives – Samsung Pro
&lt;ul&gt;
&lt;li&gt;256 GB – &lt;a href=&quot;https://amzn.to/2Jf58MM&quot;&gt;https://amzn.to/2Jf58MM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;512 GB – &lt;a href=&quot;https://amzn.to/2R6bbGn&quot;&gt;https://amzn.to/2R6bbGn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;1 TB – &lt;a href=&quot;https://amzn.to/2D1CBKz&quot;&gt;https://amzn.to/2D1CBKz&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>How to Install Xen Orchestra</title><link>https://christitus.com/how-to-install-xen-orchestra/</link><guid isPermaLink="true">https://christitus.com/how-to-install-xen-orchestra/</guid><description>&lt;p&gt;This article shows you how to install Xen Orchestra and use the interface via the web. XOA is a very powerful addition to XenServer as it brings auto-updates and making it easier to manage entire farms.&lt;/p&gt;
&lt;h2&gt;Step-by-Step Guide&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Login to your XenServer via PuTTy OR through XenCenter console&lt;/li&gt;
&lt;li&gt;Type &lt;code&gt;bash -c &quot;$(curl -s http://xoa.io/deploy)&quot;&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;Enter a new IP where you will access XOA from web&lt;/li&gt;
&lt;li&gt;Wait for this to finish you will see XOA VM popup&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Note: This may take a couple hours if XOA servers are downloading slow. I highly recommend downloading offline installer if installing on multiple servers.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Once Complete, PuTTy to XOA VM (IP Address from prior install)
&lt;ul&gt;
&lt;li&gt;login with username/password: xoa&lt;/li&gt;
&lt;li&gt;set new password for console&lt;/li&gt;
&lt;li&gt;register xoa from username and password that you used on their website &lt;a href=&quot;https://xen-orchestra.com/&quot;&gt;https://xen-orchestra.com/&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo xoa-updater --register&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;now run the updater to check for any upgrades
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo xoa-updater &amp;amp;#8211;upgrade&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;reboot if any upgrades were performed&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Open Browser, Login to XOA
&lt;ul&gt;
&lt;li&gt;login username &lt;code&gt;admin@admin.net&lt;/code&gt; password &lt;code&gt;admin&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Add your XenServers – If you only have 1 pool, you only need to add your pool master
&lt;ul&gt;
&lt;li&gt;Remember: if you are using default self-signed certificates on XenServer enable “unauthorized certificates” and then click disconnected&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Enjoy&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/QU28LQ1CX7Q&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;p&gt;I hope you enjoyed this walkthrough of how to install Xen Orchestra and if you have any feedback let me know below. In closing, I really like this product and think it is a great addition to the XenServer and a much-needed improvement over what Citrix offers.&lt;/p&gt;
</description><pubDate>Thu, 11 Oct 2018 17:14:47 GMT</pubDate><content:encoded>&lt;p&gt;This article shows you how to install Xen Orchestra and use the interface via the web. XOA is a very powerful addition to XenServer as it brings auto-updates and making it easier to manage entire farms.&lt;/p&gt;
&lt;h2&gt;Step-by-Step Guide&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Login to your XenServer via PuTTy OR through XenCenter console&lt;/li&gt;
&lt;li&gt;Type &lt;code&gt;bash -c &quot;$(curl -s http://xoa.io/deploy)&quot;&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;Enter a new IP where you will access XOA from web&lt;/li&gt;
&lt;li&gt;Wait for this to finish you will see XOA VM popup&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Note: This may take a couple hours if XOA servers are downloading slow. I highly recommend downloading offline installer if installing on multiple servers.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Once Complete, PuTTy to XOA VM (IP Address from prior install)
&lt;ul&gt;
&lt;li&gt;login with username/password: xoa&lt;/li&gt;
&lt;li&gt;set new password for console&lt;/li&gt;
&lt;li&gt;register xoa from username and password that you used on their website &lt;a href=&quot;https://xen-orchestra.com/&quot;&gt;https://xen-orchestra.com/&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo xoa-updater --register&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;now run the updater to check for any upgrades
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo xoa-updater &amp;amp;#8211;upgrade&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;reboot if any upgrades were performed&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Open Browser, Login to XOA
&lt;ul&gt;
&lt;li&gt;login username &lt;code&gt;admin@admin.net&lt;/code&gt; password &lt;code&gt;admin&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Add your XenServers – If you only have 1 pool, you only need to add your pool master
&lt;ul&gt;
&lt;li&gt;Remember: if you are using default self-signed certificates on XenServer enable “unauthorized certificates” and then click disconnected&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Enjoy&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/QU28LQ1CX7Q&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;p&gt;I hope you enjoyed this walkthrough of how to install Xen Orchestra and if you have any feedback let me know below. In closing, I really like this product and think it is a great addition to the XenServer and a much-needed improvement over what Citrix offers.&lt;/p&gt;
</content:encoded></item><item><title>Create iSCSI SR in XenServer</title><link>https://christitus.com/create-iscsi-sr/</link><guid isPermaLink="true">https://christitus.com/create-iscsi-sr/</guid><description>&lt;p&gt;This guide goes over how to Create iSCSI SR on Xen to connect to an iSCSI target. Here is the step-by-step and a video walkthrough, which includes setting up iSCSI in FreeNAS.&lt;/p&gt;
&lt;h2&gt;Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Multiple XenServers (2+) in a Pool&lt;/li&gt;
&lt;li&gt;iSCSI target (Check out FreeNAS in the video below for setting one up)&lt;/li&gt;
&lt;li&gt;At LEAST a gigabit environment&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/10/xen-iscsi-sr.webp&quot; alt=&quot;xen-iscsi&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Step-by-Step Guide to Create iSCSI SR&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Open and Connect to XenCenter / XCP-ng Center&lt;/li&gt;
&lt;li&gt;Select Pool and Click New Storage&lt;/li&gt;
&lt;li&gt;Make sure iSCSI is selected&lt;/li&gt;
&lt;li&gt;Name Storage&lt;/li&gt;
&lt;li&gt;Select either provisioning methods&lt;/li&gt;
&lt;li&gt;Enter IP Address / Authentication (if needed) / Click Scan Target Host&lt;/li&gt;
&lt;li&gt;Pick IQN / LUN from your storage device
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Note: When Selecting&lt;/em&gt; IQN_, make sure you select your SAN if you are using a dedicated network_&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Finish&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Video Walkthrough&lt;/h3&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/mn17fHzn2XQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;p&gt;In the end, we now have a centralized storage system that all our hosts can put their VMs on. This is key for using high availability, Xen Orchestra, and quick migrations. Remember to use the community-driven XenServer @ &lt;a href=&quot;https://xcp-ng.org/&quot;&gt;https://xcp-ng.org/&lt;/a&gt;, therefore you can get all the enterprise features of XenServer in your lab environment.&lt;/p&gt;
</description><pubDate>Tue, 09 Oct 2018 16:18:46 GMT</pubDate><content:encoded>&lt;p&gt;This guide goes over how to Create iSCSI SR on Xen to connect to an iSCSI target. Here is the step-by-step and a video walkthrough, which includes setting up iSCSI in FreeNAS.&lt;/p&gt;
&lt;h2&gt;Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Multiple XenServers (2+) in a Pool&lt;/li&gt;
&lt;li&gt;iSCSI target (Check out FreeNAS in the video below for setting one up)&lt;/li&gt;
&lt;li&gt;At LEAST a gigabit environment&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/10/xen-iscsi-sr.webp&quot; alt=&quot;xen-iscsi&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Step-by-Step Guide to Create iSCSI SR&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Open and Connect to XenCenter / XCP-ng Center&lt;/li&gt;
&lt;li&gt;Select Pool and Click New Storage&lt;/li&gt;
&lt;li&gt;Make sure iSCSI is selected&lt;/li&gt;
&lt;li&gt;Name Storage&lt;/li&gt;
&lt;li&gt;Select either provisioning methods&lt;/li&gt;
&lt;li&gt;Enter IP Address / Authentication (if needed) / Click Scan Target Host&lt;/li&gt;
&lt;li&gt;Pick IQN / LUN from your storage device
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Note: When Selecting&lt;/em&gt; IQN_, make sure you select your SAN if you are using a dedicated network_&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Finish&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Video Walkthrough&lt;/h3&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/mn17fHzn2XQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;p&gt;In the end, we now have a centralized storage system that all our hosts can put their VMs on. This is key for using high availability, Xen Orchestra, and quick migrations. Remember to use the community-driven XenServer @ &lt;a href=&quot;https://xcp-ng.org/&quot;&gt;https://xcp-ng.org/&lt;/a&gt;, therefore you can get all the enterprise features of XenServer in your lab environment.&lt;/p&gt;
</content:encoded></item><item><title>Disable Windows Firewall Properly</title><link>https://christitus.com/disable-windows-firewall-properly/</link><guid isPermaLink="true">https://christitus.com/disable-windows-firewall-properly/</guid><description>&lt;p&gt;This walkthrough goes over how to Disable Windows Firewall while not affecting other programs that rely on this service. It’s important that you &lt;strong&gt;DO NOT&lt;/strong&gt;disable the service, due to the fact it can cause issues with Microsoft Office and other products.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/10/windows-firewall.webp&quot; alt=&quot;win-firewall&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Steps to bypass firewall&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Launch Windows Defender Firewall with Advanced Security (Start -&amp;gt; Run -&amp;gt; wf.msc)&lt;/li&gt;
&lt;li&gt;Click Inbound Rules&lt;/li&gt;
&lt;li&gt;Select “New Rule”&lt;/li&gt;
&lt;li&gt;Custom rule&lt;/li&gt;
&lt;li&gt;All Programs&lt;/li&gt;
&lt;li&gt;Leave Any and All Ports&lt;/li&gt;
&lt;li&gt;Any IP Address for both&lt;/li&gt;
&lt;li&gt;Allow the connection&lt;/li&gt;
&lt;li&gt;Check Domain, Private, and Public&lt;/li&gt;
&lt;li&gt;Name “Allow All”&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Video Guide&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/fvFWFrN-MZQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h3&gt;Finishing Up&lt;/h3&gt;
&lt;p&gt;By doing this you allow all traffic inbound to this computer, consequently, all outbound traffic is already allowed by default. Therefore, certain programs and services that depend on windows firewall can function properly. In conclusion, this is a far superior way of disabling the built-in firewall in windows without affecting other programs.&lt;/p&gt;
</description><pubDate>Sat, 06 Oct 2018 17:20:22 GMT</pubDate><content:encoded>&lt;p&gt;This walkthrough goes over how to Disable Windows Firewall while not affecting other programs that rely on this service. It’s important that you &lt;strong&gt;DO NOT&lt;/strong&gt;disable the service, due to the fact it can cause issues with Microsoft Office and other products.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/10/windows-firewall.webp&quot; alt=&quot;win-firewall&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Steps to bypass firewall&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Launch Windows Defender Firewall with Advanced Security (Start -&amp;gt; Run -&amp;gt; wf.msc)&lt;/li&gt;
&lt;li&gt;Click Inbound Rules&lt;/li&gt;
&lt;li&gt;Select “New Rule”&lt;/li&gt;
&lt;li&gt;Custom rule&lt;/li&gt;
&lt;li&gt;All Programs&lt;/li&gt;
&lt;li&gt;Leave Any and All Ports&lt;/li&gt;
&lt;li&gt;Any IP Address for both&lt;/li&gt;
&lt;li&gt;Allow the connection&lt;/li&gt;
&lt;li&gt;Check Domain, Private, and Public&lt;/li&gt;
&lt;li&gt;Name “Allow All”&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Video Guide&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/fvFWFrN-MZQ&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h3&gt;Finishing Up&lt;/h3&gt;
&lt;p&gt;By doing this you allow all traffic inbound to this computer, consequently, all outbound traffic is already allowed by default. Therefore, certain programs and services that depend on windows firewall can function properly. In conclusion, this is a far superior way of disabling the built-in firewall in windows without affecting other programs.&lt;/p&gt;
</content:encoded></item><item><title>SATA vs SAS vs NVMe Performance Breakdown</title><link>https://christitus.com/sata-vs-sas-vs-nvme/</link><guid isPermaLink="true">https://christitus.com/sata-vs-sas-vs-nvme/</guid><description>&lt;p&gt;This is a quick breakdown of the differences between SATA vs SAS vs NVMe. After looking at the performance below, you will be able to decide which one best suits your needs.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SATA (Serial Advanced Technology Advancement)
&lt;ul&gt;
&lt;li&gt;Most common&lt;/li&gt;
&lt;li&gt;Least reliable&lt;/li&gt;
&lt;li&gt;Slow
&lt;ul&gt;
&lt;li&gt;5400 – 7200 RPM Hard Drives&lt;/li&gt;
&lt;li&gt;Half duplex (Can’t read and write simultaneously)&lt;/li&gt;
&lt;li&gt;6 GB/s connection&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Cheap (1 TB  SSD $150)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;SAS (Serial Attached Storage)
&lt;ul&gt;
&lt;li&gt;Commonplace in data centers&lt;/li&gt;
&lt;li&gt;Very reliable
&lt;ul&gt;
&lt;li&gt;Error checking is built-in&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Fast
&lt;ul&gt;
&lt;li&gt;15k RPM Hard Drives&lt;/li&gt;
&lt;li&gt;Full Duplex (Simultaneous read and write)&lt;/li&gt;
&lt;li&gt;12 GB/s connection&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Expensive (800 GB SSD $600) – Pretty much enterprise only&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;NVMe (Non-Volatile Memory Express)
&lt;ul&gt;
&lt;li&gt;Common in new PC builds, common in data center SANs for cache on tiered storage.&lt;/li&gt;
&lt;li&gt;Reliable&lt;/li&gt;
&lt;li&gt;Fastest
&lt;ul&gt;
&lt;li&gt;16-32 GB/s connection when directly plugged into PCIe&lt;/li&gt;
&lt;li&gt;12 GB/s connection still applies when hot-swapped via SAS connection&lt;/li&gt;
&lt;li&gt;Full Duplex&lt;/li&gt;
&lt;li&gt;Higher Bandwidth (Able to process the most at one time)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Expensive (1 TB Residential $300-$400 | 1.2 TB Enterprise $1200)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No real surprises here but having it bullet-pointed makes the comparison very easy. I hope this helps those trying to decide on what to buy and typical performance you can expect from it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/10/ssdvsnvme.webp&quot; alt=&quot;nvmevssata-pic&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;SATA vs SAS vs NVMe | Performance Winner: NVMe&lt;/h2&gt;
&lt;h2&gt;SATA vs SAS vs NVMe | Budget Winner: SATA&lt;/h2&gt;
&lt;p&gt;What about SAS? Well, in enterprise environments you see this very often with pretty much every tiered storage device having it. Most of what is on the market today is a mixture of SAS and NVMe for business. These hybrid drives are crazy expensive but give system administrators the ability to claim some of the speed from NVMe without purchasing entirely new devices. While this may seem trivial when you are talking thousands of dollars, this becomes a budget issue. SAS also has the error checking built into the interface, which in turn, gives greater reliability in theory. Personally, I think the future enterprise devices will have some type of new connector or housing that will make NVMe devices hot-swappable without the 12 GB/s SAS limitation. That said, we aren’t quite there yet, and the prevalence of SAS in enterprise space will continue.&lt;/p&gt;
&lt;p&gt;By doing this you allow all traffic inbound to this computer, consequently, all outbound traffic is already allowed by default. Therefore, certain programs and services that depend on windows firewall can function properly. In conclusion, this is a far superior way of disabling the built-in firewall in windows without affecting other programs.&lt;/p&gt;
</description><pubDate>Fri, 05 Oct 2018 20:28:58 GMT</pubDate><content:encoded>&lt;p&gt;This is a quick breakdown of the differences between SATA vs SAS vs NVMe. After looking at the performance below, you will be able to decide which one best suits your needs.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SATA (Serial Advanced Technology Advancement)
&lt;ul&gt;
&lt;li&gt;Most common&lt;/li&gt;
&lt;li&gt;Least reliable&lt;/li&gt;
&lt;li&gt;Slow
&lt;ul&gt;
&lt;li&gt;5400 – 7200 RPM Hard Drives&lt;/li&gt;
&lt;li&gt;Half duplex (Can’t read and write simultaneously)&lt;/li&gt;
&lt;li&gt;6 GB/s connection&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Cheap (1 TB  SSD $150)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;SAS (Serial Attached Storage)
&lt;ul&gt;
&lt;li&gt;Commonplace in data centers&lt;/li&gt;
&lt;li&gt;Very reliable
&lt;ul&gt;
&lt;li&gt;Error checking is built-in&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Fast
&lt;ul&gt;
&lt;li&gt;15k RPM Hard Drives&lt;/li&gt;
&lt;li&gt;Full Duplex (Simultaneous read and write)&lt;/li&gt;
&lt;li&gt;12 GB/s connection&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Expensive (800 GB SSD $600) – Pretty much enterprise only&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;NVMe (Non-Volatile Memory Express)
&lt;ul&gt;
&lt;li&gt;Common in new PC builds, common in data center SANs for cache on tiered storage.&lt;/li&gt;
&lt;li&gt;Reliable&lt;/li&gt;
&lt;li&gt;Fastest
&lt;ul&gt;
&lt;li&gt;16-32 GB/s connection when directly plugged into PCIe&lt;/li&gt;
&lt;li&gt;12 GB/s connection still applies when hot-swapped via SAS connection&lt;/li&gt;
&lt;li&gt;Full Duplex&lt;/li&gt;
&lt;li&gt;Higher Bandwidth (Able to process the most at one time)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Expensive (1 TB Residential $300-$400 | 1.2 TB Enterprise $1200)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No real surprises here but having it bullet-pointed makes the comparison very easy. I hope this helps those trying to decide on what to buy and typical performance you can expect from it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/10/ssdvsnvme.webp&quot; alt=&quot;nvmevssata-pic&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;SATA vs SAS vs NVMe | Performance Winner: NVMe&lt;/h2&gt;
&lt;h2&gt;SATA vs SAS vs NVMe | Budget Winner: SATA&lt;/h2&gt;
&lt;p&gt;What about SAS? Well, in enterprise environments you see this very often with pretty much every tiered storage device having it. Most of what is on the market today is a mixture of SAS and NVMe for business. These hybrid drives are crazy expensive but give system administrators the ability to claim some of the speed from NVMe without purchasing entirely new devices. While this may seem trivial when you are talking thousands of dollars, this becomes a budget issue. SAS also has the error checking built into the interface, which in turn, gives greater reliability in theory. Personally, I think the future enterprise devices will have some type of new connector or housing that will make NVMe devices hot-swappable without the 12 GB/s SAS limitation. That said, we aren’t quite there yet, and the prevalence of SAS in enterprise space will continue.&lt;/p&gt;
&lt;p&gt;By doing this you allow all traffic inbound to this computer, consequently, all outbound traffic is already allowed by default. Therefore, certain programs and services that depend on windows firewall can function properly. In conclusion, this is a far superior way of disabling the built-in firewall in windows without affecting other programs.&lt;/p&gt;
</content:encoded></item><item><title>Installing and Configuring Exchange 2019</title><link>https://christitus.com/configuring-exchange-2019/</link><guid isPermaLink="true">https://christitus.com/configuring-exchange-2019/</guid><description>&lt;p&gt;This article goes over what it takes for installing and configuring exchange 2019. This step-by-step guide shows you the requirements, installation steps, and basic configuration.&lt;/p&gt;
&lt;h2&gt;Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Microsoft recommends 128 GB of memory. If in a medium size environment (100-1000 users) 32-64 GB will be sufficient.&lt;/li&gt;
&lt;li&gt;Microsoft Windows Server 2012 R2/2016/2019&lt;/li&gt;
&lt;li&gt;Co-Existence with Exchange 2013/2016 that are up-to-date&lt;/li&gt;
&lt;li&gt;30 GB of free disk space, however, you should have plenty of TBs of storage available for the mailbox stores.&lt;/li&gt;
&lt;li&gt;NTFS based file system&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Notable Improvements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Exchange 2019 has the ability to now be installed on server core 2019.&lt;/li&gt;
&lt;li&gt;Exchange Admin Console – &lt;a href=&quot;https://server/ecp&quot;&gt;https://server/ecp&lt;/a&gt; – Refined and matches Office 365 layout&lt;/li&gt;
&lt;li&gt;Outlook Web Access has more features and a better look&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Things I wished Exchange 2019 had&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;DKIM&lt;/strong&gt;… seriously, WTF Microsoft. Office 365 has this, therefore exchange 2019 should have this!&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Installing Exchange 2019&lt;/h2&gt;
&lt;p&gt;This was a breeze, with only 2 pre-requirements missing on a server 2016 stock install. The only configuration during setup was the role (mailbox or edge) and naming the exchange organization. The original time-lapse installation video is no longer available.&lt;/p&gt;
&lt;h2&gt;Configuring Exchange 2019&lt;/h2&gt;
&lt;p&gt;Again, this was very easy with only a couple options needed before I was operational. Using only a mailbox role with no edge you only need to add your domain, send connector, and set an email address for mailboxes. The original configuration video is no longer available.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: Do not forget to add the MX, SPF, DMARC records where your domain registrar DNS resides.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;I absolutely love Exchange 2019 due to the vast amount of improvements, that said, I am still bummed that they continue to not support DKIM through exchange server. Installing and configuring exchange 2019 was the easiest experience I’ve had to date, which is saying a lot! Overall I am liking the direction Microsoft is taking with the server line of products and I believe it will continue to have a very bright future, as long as they don’t do something stupid like including the Microsoft store.&lt;/p&gt;
</description><pubDate>Wed, 03 Oct 2018 15:45:56 GMT</pubDate><content:encoded>&lt;p&gt;This article goes over what it takes for installing and configuring exchange 2019. This step-by-step guide shows you the requirements, installation steps, and basic configuration.&lt;/p&gt;
&lt;h2&gt;Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Microsoft recommends 128 GB of memory. If in a medium size environment (100-1000 users) 32-64 GB will be sufficient.&lt;/li&gt;
&lt;li&gt;Microsoft Windows Server 2012 R2/2016/2019&lt;/li&gt;
&lt;li&gt;Co-Existence with Exchange 2013/2016 that are up-to-date&lt;/li&gt;
&lt;li&gt;30 GB of free disk space, however, you should have plenty of TBs of storage available for the mailbox stores.&lt;/li&gt;
&lt;li&gt;NTFS based file system&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Notable Improvements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Exchange 2019 has the ability to now be installed on server core 2019.&lt;/li&gt;
&lt;li&gt;Exchange Admin Console – &lt;a href=&quot;https://server/ecp&quot;&gt;https://server/ecp&lt;/a&gt; – Refined and matches Office 365 layout&lt;/li&gt;
&lt;li&gt;Outlook Web Access has more features and a better look&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Things I wished Exchange 2019 had&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;DKIM&lt;/strong&gt;… seriously, WTF Microsoft. Office 365 has this, therefore exchange 2019 should have this!&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Installing Exchange 2019&lt;/h2&gt;
&lt;p&gt;This was a breeze, with only 2 pre-requirements missing on a server 2016 stock install. The only configuration during setup was the role (mailbox or edge) and naming the exchange organization. The original time-lapse installation video is no longer available.&lt;/p&gt;
&lt;h2&gt;Configuring Exchange 2019&lt;/h2&gt;
&lt;p&gt;Again, this was very easy with only a couple options needed before I was operational. Using only a mailbox role with no edge you only need to add your domain, send connector, and set an email address for mailboxes. The original configuration video is no longer available.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: Do not forget to add the MX, SPF, DMARC records where your domain registrar DNS resides.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;I absolutely love Exchange 2019 due to the vast amount of improvements, that said, I am still bummed that they continue to not support DKIM through exchange server. Installing and configuring exchange 2019 was the easiest experience I’ve had to date, which is saying a lot! Overall I am liking the direction Microsoft is taking with the server line of products and I believe it will continue to have a very bright future, as long as they don’t do something stupid like including the Microsoft store.&lt;/p&gt;
</content:encoded></item><item><title>XenServer cannot connect in XenCenter or XCP-ng Center</title><link>https://christitus.com/xenserver-cannot-connect/</link><guid isPermaLink="true">https://christitus.com/xenserver-cannot-connect/</guid><description>&lt;p&gt;Having problems and your XenServer cannot connect to XenCenter? Did you have high availability enabled? If you answered yes to both these questions here is how you get your XenServer back online and functioning properly. &lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/10/xenserver-cannot-connect.webp&quot; alt=&quot;xenserver-cannot&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Step-by-Step Guide&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;PuTTy into the XenServer Pool Master&lt;/li&gt;
&lt;li&gt;run the following commands:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;xe pool-ha-disable&lt;/code&gt;&lt;em&gt;Note: If this fails try ha-disable force below&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;xe host-emergency-ha-disable force=true&amp;lt;br /&amp;gt; xe pool-emergency-transition-to-master --force&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: This will force the pool and slaves to reinitialize with the pool master&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Once the server reboots it should connect&lt;/li&gt;
&lt;li&gt;Go into your XenCenter and re-connect&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Other Helpful Commands for troubleshooting&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;xe-toolstack-restart&lt;/code&gt; – First command I always try before anything else&lt;/p&gt;
&lt;p&gt;&lt;code&gt;service xapi restart&lt;/code&gt; – This restarts a core service&lt;/p&gt;
&lt;p&gt;&lt;code&gt;xsconsole&lt;/code&gt; – This launches console to check pool, network config, ha, running VMS, etc.&lt;/p&gt;
&lt;h3&gt;How-To Video going over troubleshooting&lt;/h3&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/UqsaRixKveA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;This will get your server back up and accessible, however, this disables high availability and will need to be set back up. It’s important to note the cause of an event like this. In my case, the SR I was using to host my VMs was not sufficient and caused the outage. If this happens to you make sure you have a good SAN/NAS for hosting on a Gigabit or above connection. I’d highly recommend a 10Gbs connection or a multipath gigabit connection at the very least.&lt;/p&gt;
</description><pubDate>Mon, 01 Oct 2018 18:53:13 GMT</pubDate><content:encoded>&lt;p&gt;Having problems and your XenServer cannot connect to XenCenter? Did you have high availability enabled? If you answered yes to both these questions here is how you get your XenServer back online and functioning properly. &lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/10/xenserver-cannot-connect.webp&quot; alt=&quot;xenserver-cannot&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Step-by-Step Guide&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;PuTTy into the XenServer Pool Master&lt;/li&gt;
&lt;li&gt;run the following commands:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;xe pool-ha-disable&lt;/code&gt;&lt;em&gt;Note: If this fails try ha-disable force below&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;xe host-emergency-ha-disable force=true&amp;lt;br /&amp;gt; xe pool-emergency-transition-to-master --force&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: This will force the pool and slaves to reinitialize with the pool master&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Once the server reboots it should connect&lt;/li&gt;
&lt;li&gt;Go into your XenCenter and re-connect&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Other Helpful Commands for troubleshooting&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;xe-toolstack-restart&lt;/code&gt; – First command I always try before anything else&lt;/p&gt;
&lt;p&gt;&lt;code&gt;service xapi restart&lt;/code&gt; – This restarts a core service&lt;/p&gt;
&lt;p&gt;&lt;code&gt;xsconsole&lt;/code&gt; – This launches console to check pool, network config, ha, running VMS, etc.&lt;/p&gt;
&lt;h3&gt;How-To Video going over troubleshooting&lt;/h3&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/UqsaRixKveA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;This will get your server back up and accessible, however, this disables high availability and will need to be set back up. It’s important to note the cause of an event like this. In my case, the SR I was using to host my VMs was not sufficient and caused the outage. If this happens to you make sure you have a good SAN/NAS for hosting on a Gigabit or above connection. I’d highly recommend a 10Gbs connection or a multipath gigabit connection at the very least.&lt;/p&gt;
</content:encoded></item><item><title>Installing and Configuring Windows Server 2016 Core</title><link>https://christitus.com/configuring-windows-server-2016-core/</link><guid isPermaLink="true">https://christitus.com/configuring-windows-server-2016-core/</guid><description>&lt;p&gt;This guide walks you through how to installing and configuring windows server 2016 core, afterward you will easily be able to add one to your environment with very little resources. Start off by using the video guide over the installation process. Once done, check the bullets below to help walk you through doing it in your infrastructure.&lt;/p&gt;
&lt;h2&gt;Remote Server Administration Tools for Windows 10&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/download/details.aspx?id=45520&quot;&gt;https://www.microsoft.com/en-us/download/details.aspx?id=45520&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/09/windows-server-2016.webp&quot; alt=&quot;configure-core&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Steps to configuring windows server 2016 core&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Run &lt;code&gt;sconfig&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Configure Static IP&lt;/li&gt;
&lt;li&gt;Set Computer Name&lt;/li&gt;
&lt;li&gt;Join to Domain&lt;/li&gt;
&lt;li&gt;Set Windows Update Settings to Download ONLY&lt;/li&gt;
&lt;li&gt;Download and Install all Updates&lt;/li&gt;
&lt;li&gt;Enable Remote Desktop and Remote Management&lt;/li&gt;
&lt;li&gt;Change Telemetry to Security&lt;/li&gt;
&lt;li&gt;Activate Windows&lt;/li&gt;
&lt;li&gt;Reboot&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Connecting Remotely to Server 2016 Core&lt;/h3&gt;
&lt;p&gt;Finally, we can now go back to our workstation and start utilizing and configuring windows server 2016 core. Once you have launched server manager verify you can connect after adding your server. Please note, this may take about 10-30 seconds so be patient after you add the server and look for any error messages. If you are adding this to the same domain and subnet, you should automatically connect with no issue.&lt;/p&gt;
</description><pubDate>Fri, 28 Sep 2018 19:42:47 GMT</pubDate><content:encoded>&lt;p&gt;This guide walks you through how to installing and configuring windows server 2016 core, afterward you will easily be able to add one to your environment with very little resources. Start off by using the video guide over the installation process. Once done, check the bullets below to help walk you through doing it in your infrastructure.&lt;/p&gt;
&lt;h2&gt;Remote Server Administration Tools for Windows 10&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/download/details.aspx?id=45520&quot;&gt;https://www.microsoft.com/en-us/download/details.aspx?id=45520&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/09/windows-server-2016.webp&quot; alt=&quot;configure-core&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Steps to configuring windows server 2016 core&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Run &lt;code&gt;sconfig&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Configure Static IP&lt;/li&gt;
&lt;li&gt;Set Computer Name&lt;/li&gt;
&lt;li&gt;Join to Domain&lt;/li&gt;
&lt;li&gt;Set Windows Update Settings to Download ONLY&lt;/li&gt;
&lt;li&gt;Download and Install all Updates&lt;/li&gt;
&lt;li&gt;Enable Remote Desktop and Remote Management&lt;/li&gt;
&lt;li&gt;Change Telemetry to Security&lt;/li&gt;
&lt;li&gt;Activate Windows&lt;/li&gt;
&lt;li&gt;Reboot&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Connecting Remotely to Server 2016 Core&lt;/h3&gt;
&lt;p&gt;Finally, we can now go back to our workstation and start utilizing and configuring windows server 2016 core. Once you have launched server manager verify you can connect after adding your server. Please note, this may take about 10-30 seconds so be patient after you add the server and look for any error messages. If you are adding this to the same domain and subnet, you should automatically connect with no issue.&lt;/p&gt;
</content:encoded></item><item><title>Optimizing Apache Memory Usage using mpm prefork</title><link>https://christitus.com/apache-mpm-prefork/</link><guid isPermaLink="true">https://christitus.com/apache-mpm-prefork/</guid><description>&lt;p&gt;This guide goes over optimizing apache memory usage by configuring mpm prefork module to the best values for your server. Afterword, you should notice substantial increases in performance especially if you are using free micro instances from Google Cloud or AWS.&lt;/p&gt;
&lt;h2&gt;Commands used&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Check Apache Memory usage&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ps -ylC apache2 --sort:rss | awk &apos;{sum+=$8; ++n} END {print &quot;Tot=&quot;sum&quot;(&quot;n&quot;)&quot;;print &quot;Avg=&quot;sum&quot;/&quot;n&quot;=&quot;sum/n/1024&quot;MB&quot;}&apos;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Note: My result was between 68-71 MB with stock modules loaded, however, your results will vary.&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Launch Memory manager/resource viewer&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;‘&lt;code&gt;htop&lt;/code&gt;&lt;span&gt;‘ OR you can use ‘&lt;/span&gt;&lt;code&gt;top&lt;/code&gt;&lt;span&gt;‘ for fewer options and visuals&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;10/4/2018 UPDATE: Follow this Github script if you want to take the guesswork out, due to this being a curl script you may want to review the code first.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;curl -sL https://raw.githubusercontent.com/richardforth/apache2buddy/master/apache2buddy.pl | perl&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Values to calculate&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Total System Memory Free Buffer / Apache2 MB usage = MaxRequestWorkers, ServerLimit, and MaxClients&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/09/apache2.webp&quot; alt=&quot;apache2&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;My Settings: Server Instance (Standard) 1 dedicated vCPU with 3.5 GB of Memory&lt;/h4&gt;
&lt;p&gt;Please note that the below settings is done from a stock apache configuration. With all things considered these values are very conservative and therefore can be used if you are hosting with these specs or greater. In future articles I’ll go through disabling un-needed modules to reduce apache’s footprint, thus allowing you to increase these numbers.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxRequestWorkers: maximum number of server processes allowed to start
# MaxConnectionsPerChild: maximum number of requests a server process serves
StartServers 3
MinSpareServers 5
MaxSpareServers 10
ServerLimit 45
MaxClients 45
MaxRequestWorkers 45
MaxConnectionsPerChild 2000
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;45 processes x 68 MB per = 3060 MB Free Memory needed for the above configuration&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Comparatively, a microserver with 600-700 MB of ram and shared CPU you will be looking at 1-3 Start/Min/Max Start and Spare servers, and no more than 10 for ServerLimit/MaxClients/MaxRequestWorkers. There are other modifications you need to make in culling down apache modules, therefore you can increase these values further.&lt;/p&gt;
&lt;h3&gt;Video Walkthrough&lt;/h3&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/uGugeHVEeiU&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Wed, 26 Sep 2018 17:31:24 GMT</pubDate><content:encoded>&lt;p&gt;This guide goes over optimizing apache memory usage by configuring mpm prefork module to the best values for your server. Afterword, you should notice substantial increases in performance especially if you are using free micro instances from Google Cloud or AWS.&lt;/p&gt;
&lt;h2&gt;Commands used&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Check Apache Memory usage&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ps -ylC apache2 --sort:rss | awk &apos;{sum+=$8; ++n} END {print &quot;Tot=&quot;sum&quot;(&quot;n&quot;)&quot;;print &quot;Avg=&quot;sum&quot;/&quot;n&quot;=&quot;sum/n/1024&quot;MB&quot;}&apos;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Note: My result was between 68-71 MB with stock modules loaded, however, your results will vary.&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Launch Memory manager/resource viewer&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;‘&lt;code&gt;htop&lt;/code&gt;&lt;span&gt;‘ OR you can use ‘&lt;/span&gt;&lt;code&gt;top&lt;/code&gt;&lt;span&gt;‘ for fewer options and visuals&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;10/4/2018 UPDATE: Follow this Github script if you want to take the guesswork out, due to this being a curl script you may want to review the code first.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;curl -sL https://raw.githubusercontent.com/richardforth/apache2buddy/master/apache2buddy.pl | perl&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Values to calculate&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Total System Memory Free Buffer / Apache2 MB usage = MaxRequestWorkers, ServerLimit, and MaxClients&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/09/apache2.webp&quot; alt=&quot;apache2&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;My Settings: Server Instance (Standard) 1 dedicated vCPU with 3.5 GB of Memory&lt;/h4&gt;
&lt;p&gt;Please note that the below settings is done from a stock apache configuration. With all things considered these values are very conservative and therefore can be used if you are hosting with these specs or greater. In future articles I’ll go through disabling un-needed modules to reduce apache’s footprint, thus allowing you to increase these numbers.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxRequestWorkers: maximum number of server processes allowed to start
# MaxConnectionsPerChild: maximum number of requests a server process serves
StartServers 3
MinSpareServers 5
MaxSpareServers 10
ServerLimit 45
MaxClients 45
MaxRequestWorkers 45
MaxConnectionsPerChild 2000
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;45 processes x 68 MB per = 3060 MB Free Memory needed for the above configuration&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Comparatively, a microserver with 600-700 MB of ram and shared CPU you will be looking at 1-3 Start/Min/Max Start and Spare servers, and no more than 10 for ServerLimit/MaxClients/MaxRequestWorkers. There are other modifications you need to make in culling down apache modules, therefore you can increase these values further.&lt;/p&gt;
&lt;h3&gt;Video Walkthrough&lt;/h3&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/uGugeHVEeiU&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>The Perfect htaccess for WordPress</title><link>https://christitus.com/perfect-htaccess/</link><guid isPermaLink="true">https://christitus.com/perfect-htaccess/</guid><description>&lt;p&gt;This walks you through what your htaccess should look like in a WordPress Installation. I am a minimalist and believe you shouldn’t be using a ton of plugins that slow down your install when most of what you are looking to accomplish can be achieved with this file. Therefore, this htaccess will contain bad bot blocker, security optimizations, force https, and a variety of other optimizations. This will save you from installing about 5-10 plugins that would slow down your website.&lt;/p&gt;
&lt;h2&gt;The .htaccess file to rule them all&lt;/h2&gt;
&lt;h3&gt;Basic WordPress part&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# BEGIN WordPress
&amp;lt;IfModule mod_rewrite.c&amp;gt;
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
&amp;lt;/IfModule&amp;gt;
# END WordPress
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Secure the WordPress install&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;# Allow mod_rewrite in htaccess
Options +FollowSymLinks
# Disable directory browsing
Options All -Indexes
# Block wp-includes folder and files
&amp;lt;IfModule mod_rewrite.c&amp;gt;
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
&amp;lt;/IfModule&amp;gt;
# Deny access to wp-config.php file
&amp;lt;files wp-config.php&amp;gt;
order allow,deny
deny from all
&amp;lt;/files&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h5&gt;Force HTTPS and Set Time Zones&lt;/h5&gt;
&lt;pre&gt;&lt;code&gt;# Force HTTPS
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://christitus.com/$1 [R,L]
# Set Central Time Zone
SetEnv TZ America/Chicago
&lt;/code&gt;&lt;/pre&gt;
&lt;h5&gt;Miscellaneous Optimizations&lt;/h5&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;IfModule mod_rewrite.c&amp;gt;
&amp;lt;IfModule mod_negotiation.c&amp;gt;
Options -MultiViews
&amp;lt;/IfModule&amp;gt;
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
&amp;lt;/IfModule&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h5&gt;Expires Header Configuration&lt;/h5&gt;
&lt;pre&gt;&lt;code&gt;# BEGIN Expires
&amp;lt;ifModule mod_expires.c&amp;gt;
ExpiresActive On
ExpiresDefault &quot;access 2 days&quot;
ExpiresByType text/html &quot;access plus 3 seconds&quot;
ExpiresByType image/gif &quot;access plus 2419200 seconds&quot;
ExpiresByType image/jpeg &quot;access plus 2419200 seconds&quot;
ExpiresByType image/jpg &quot;access plus 2419200 seconds&quot;
ExpiresByType image/png &quot;access plus 2419200 seconds&quot;
ExpiresByType text/css &quot;access plus 2419200 seconds&quot;
ExpiresByType text/javascript &quot;access plus 2419200 seconds&quot;
ExpiresByType application/x-javascript &quot;access plus 2419200 seconds&quot;
ExpiresByType application/x-shockwave-flash &quot;access 1 month&quot;
ExpiresByType application/pdf &quot;access 1 month&quot;
ExpiresByType image/x-icon &quot;access 1 year&quot;
&amp;lt;/ifModule&amp;gt;
# END Expires
&lt;/code&gt;&lt;/pre&gt;
&lt;h5&gt;Compression Optimization&lt;/h5&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;IfModule mod_deflate.c&amp;gt;
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE image/svg+xml svg svgz
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-woff
AddOutputFilterByType DEFLATE application/x-font-woff2
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/eot
AddOutputFilterByType DEFLATE font/woff
AddOutputFilterByType DEFLATE font/woff2
AddOutputFilterByType DEFLATE font/opentype
# For Olders Browsers Which Can&apos;t Handle Compression
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
&amp;lt;/IfModule&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h5&gt;Bad Bot and Vulnerability blockers&lt;/h5&gt;
&lt;pre&gt;&lt;code&gt;# Block Bad Bots &amp;amp; Scrapers
SetEnvIfNoCase User-Agent &quot;Aboundex&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;80legs&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;360Spider&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Java&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Cogentbot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Alexibot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^asterias&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^attach&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^BackDoorBot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^BackWeb&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;Bandit&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^BatchFTP&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Bigfoot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Black.Hole&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^BlackWidow&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^BlowFish&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^BotALot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;Buddy&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^BuiltBotTough&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Bullseye&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^BunnySlippers&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Cegbfeieh&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^CheeseBot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^CherryPicker&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^ChinaClaw&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;Collector&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;Copier&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^CopyRightCheck&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^cosmos&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Crescent&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Custo&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^AIBOT&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^DISCo&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^DIIbot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^DittoSpyder&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Download\ Demon&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Download\ Devil&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Download\ Wonder&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^dragonfly&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Drip&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^eCatch&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^EasyDL&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^ebingbong&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^EirGrabber&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^EmailCollector&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^EmailSiphon&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^EmailWolf&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^EroCrawler&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Exabot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Express\ WebPictures&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;Extractor&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^EyeNetIE&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Foobot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^flunky&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^FrontPage&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Go-Ahead-Got-It&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^gotit&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^GrabNet&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Grafula&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Harvest&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^hloader&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^HMView&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^HTTrack&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^humanlinks&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^IlseBot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Image\ Stripper&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Image\ Sucker&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;Indy\ Library&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^InfoNaviRobot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^InfoTekies&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Intelliseek&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^InterGET&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Internet\ Ninja&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Iria&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Jakarta&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^JennyBot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^JetCar&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^JOC&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^JustView&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Jyxobot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Kenjin.Spider&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Keyword.Density&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^larbin&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^LexiBot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^lftp&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^libWeb/clsHTTP&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^likse&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^LinkextractorPro&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^LinkScan/8.1a.Unix&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^LNSpiderguy&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^LinkWalker&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^lwp-trivial&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^LWP::Simple&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Magnet&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Mag-Net&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^MarkWatch&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Mass\ Downloader&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Mata.Hari&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Memo&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Microsoft.URL&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Microsoft\ URL\ Control&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^MIDown\ tool&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^MIIxpc&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Mirror&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Missigua\ Locator&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Mister\ PiX&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^moget&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Mozilla/3.Mozilla/2.01&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Mozilla.*NEWT&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^NAMEPROTECT&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Navroad&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^NearSite&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^NetAnts&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Netcraft&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^NetMechanic&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^NetSpider&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Net\ Vampire&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^NetZIP&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^NextGenSearchBot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^NG&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^NICErsPRO&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^niki-bot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^NimbleCrawler&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Ninja&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^NPbot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Octopus&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Offline\ Explorer&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Offline\ Navigator&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Openfind&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^OutfoxBot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^PageGrabber&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Papa\ Foto&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^pavuk&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^pcBrowser&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^PHP\ version\ tracker&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Pockey&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^ProPowerBot/2.14&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^ProWebWalker&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^psbot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Pump&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^QueryN.Metasearch&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^RealDownload&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;Reaper&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;Recorder&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^ReGet&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^RepoMonkey&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^RMA&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;Siphon&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^SiteSnagger&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^SlySearch&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^SmartDownload&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Snake&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Snapbot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Snoopy&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^sogou&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^SpaceBison&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^SpankBot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^spanner&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Sqworm&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;Stripper&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;Sucker&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^SuperBot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^SuperHTTP&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Surfbot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^suzuran&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Szukacz/1.4&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^tAkeOut&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Teleport&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Telesoft&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^TurnitinBot/1.5&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^The.Intraformant&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^TheNomad&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^TightTwatBot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Titan&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^True_Robot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^turingos&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^TurnitinBot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^URLy.Warning&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Vacuum&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^VCI&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^VoidEYE&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Web\ Image\ Collector&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Web\ Sucker&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebAuto&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebBandit&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Webclipping.com&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebCopier&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebEMailExtrac.*&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebEnhancer&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebFetch&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebGo\ IS&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Web.Image.Collector&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebLeacher&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebmasterWorldForumBot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebReaper&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebSauger&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Website\ eXtractor&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Website\ Quester&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Webster&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebStripper&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebWhacker&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebZIP&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;Whacker&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Widow&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WISENutbot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WWWOFFLE&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WWW-Collector-E&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Xaldon&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Xenu&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Zeus&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;ZmEu&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Zyborg&quot; bad_bot

# Vulnerability Scanners
SetEnvIfNoCase User-Agent &quot;Acunetix&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;FHscan&quot; bad_bot
# Aggressive Chinese Search Engine
#SetEnvIfNoCase User-Agent &quot;Baiduspider&quot; bad_bot
# Aggressive Russian Search Engine
# Uncomment to disable this search engine
# SetEnvIfNoCase User-Agent &quot;Yandex&quot; bad_bot`

&amp;lt;Limit GET POST HEAD&amp;gt;
Order Allow,Deny
Allow from all
# Surveillance
deny from 38.100.19.8/29
deny from 38.100.21.0/24
deny from 38.100.41.64/26
deny from 38.105.71.0/25
deny from 38.105.83.0/27
deny from 38.112.21.140/30
deny from 38.118.42.32/29
deny from 65.213.208.128/27
deny from 65.222.176.96/27
deny from 65.222.185.72/29`

Deny from env=bad_bot
&amp;lt;/Limit&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;In Closing&lt;/h2&gt;
&lt;p&gt;I recommend and personally use all the above settings, however, I broke up each section of my htaccess so you can drop ones you don’t like or want. Pay close attention to the section Force HTTPS as this will force all http traffic to https and you must have a valid SSL Certificate.&lt;/p&gt;
</description><pubDate>Sun, 23 Sep 2018 20:50:39 GMT</pubDate><content:encoded>&lt;p&gt;This walks you through what your htaccess should look like in a WordPress Installation. I am a minimalist and believe you shouldn’t be using a ton of plugins that slow down your install when most of what you are looking to accomplish can be achieved with this file. Therefore, this htaccess will contain bad bot blocker, security optimizations, force https, and a variety of other optimizations. This will save you from installing about 5-10 plugins that would slow down your website.&lt;/p&gt;
&lt;h2&gt;The .htaccess file to rule them all&lt;/h2&gt;
&lt;h3&gt;Basic WordPress part&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# BEGIN WordPress
&amp;lt;IfModule mod_rewrite.c&amp;gt;
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
&amp;lt;/IfModule&amp;gt;
# END WordPress
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Secure the WordPress install&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;# Allow mod_rewrite in htaccess
Options +FollowSymLinks
# Disable directory browsing
Options All -Indexes
# Block wp-includes folder and files
&amp;lt;IfModule mod_rewrite.c&amp;gt;
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
&amp;lt;/IfModule&amp;gt;
# Deny access to wp-config.php file
&amp;lt;files wp-config.php&amp;gt;
order allow,deny
deny from all
&amp;lt;/files&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h5&gt;Force HTTPS and Set Time Zones&lt;/h5&gt;
&lt;pre&gt;&lt;code&gt;# Force HTTPS
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://christitus.com/$1 [R,L]
# Set Central Time Zone
SetEnv TZ America/Chicago
&lt;/code&gt;&lt;/pre&gt;
&lt;h5&gt;Miscellaneous Optimizations&lt;/h5&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;IfModule mod_rewrite.c&amp;gt;
&amp;lt;IfModule mod_negotiation.c&amp;gt;
Options -MultiViews
&amp;lt;/IfModule&amp;gt;
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
&amp;lt;/IfModule&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h5&gt;Expires Header Configuration&lt;/h5&gt;
&lt;pre&gt;&lt;code&gt;# BEGIN Expires
&amp;lt;ifModule mod_expires.c&amp;gt;
ExpiresActive On
ExpiresDefault &quot;access 2 days&quot;
ExpiresByType text/html &quot;access plus 3 seconds&quot;
ExpiresByType image/gif &quot;access plus 2419200 seconds&quot;
ExpiresByType image/jpeg &quot;access plus 2419200 seconds&quot;
ExpiresByType image/jpg &quot;access plus 2419200 seconds&quot;
ExpiresByType image/png &quot;access plus 2419200 seconds&quot;
ExpiresByType text/css &quot;access plus 2419200 seconds&quot;
ExpiresByType text/javascript &quot;access plus 2419200 seconds&quot;
ExpiresByType application/x-javascript &quot;access plus 2419200 seconds&quot;
ExpiresByType application/x-shockwave-flash &quot;access 1 month&quot;
ExpiresByType application/pdf &quot;access 1 month&quot;
ExpiresByType image/x-icon &quot;access 1 year&quot;
&amp;lt;/ifModule&amp;gt;
# END Expires
&lt;/code&gt;&lt;/pre&gt;
&lt;h5&gt;Compression Optimization&lt;/h5&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;IfModule mod_deflate.c&amp;gt;
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE image/svg+xml svg svgz
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-woff
AddOutputFilterByType DEFLATE application/x-font-woff2
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/eot
AddOutputFilterByType DEFLATE font/woff
AddOutputFilterByType DEFLATE font/woff2
AddOutputFilterByType DEFLATE font/opentype
# For Olders Browsers Which Can&apos;t Handle Compression
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
&amp;lt;/IfModule&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h5&gt;Bad Bot and Vulnerability blockers&lt;/h5&gt;
&lt;pre&gt;&lt;code&gt;# Block Bad Bots &amp;amp; Scrapers
SetEnvIfNoCase User-Agent &quot;Aboundex&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;80legs&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;360Spider&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Java&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Cogentbot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Alexibot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^asterias&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^attach&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^BackDoorBot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^BackWeb&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;Bandit&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^BatchFTP&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Bigfoot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Black.Hole&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^BlackWidow&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^BlowFish&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^BotALot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;Buddy&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^BuiltBotTough&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Bullseye&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^BunnySlippers&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Cegbfeieh&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^CheeseBot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^CherryPicker&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^ChinaClaw&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;Collector&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;Copier&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^CopyRightCheck&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^cosmos&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Crescent&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Custo&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^AIBOT&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^DISCo&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^DIIbot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^DittoSpyder&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Download\ Demon&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Download\ Devil&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Download\ Wonder&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^dragonfly&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Drip&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^eCatch&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^EasyDL&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^ebingbong&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^EirGrabber&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^EmailCollector&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^EmailSiphon&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^EmailWolf&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^EroCrawler&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Exabot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Express\ WebPictures&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;Extractor&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^EyeNetIE&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Foobot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^flunky&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^FrontPage&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Go-Ahead-Got-It&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^gotit&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^GrabNet&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Grafula&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Harvest&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^hloader&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^HMView&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^HTTrack&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^humanlinks&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^IlseBot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Image\ Stripper&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Image\ Sucker&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;Indy\ Library&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^InfoNaviRobot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^InfoTekies&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Intelliseek&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^InterGET&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Internet\ Ninja&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Iria&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Jakarta&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^JennyBot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^JetCar&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^JOC&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^JustView&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Jyxobot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Kenjin.Spider&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Keyword.Density&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^larbin&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^LexiBot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^lftp&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^libWeb/clsHTTP&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^likse&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^LinkextractorPro&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^LinkScan/8.1a.Unix&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^LNSpiderguy&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^LinkWalker&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^lwp-trivial&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^LWP::Simple&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Magnet&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Mag-Net&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^MarkWatch&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Mass\ Downloader&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Mata.Hari&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Memo&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Microsoft.URL&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Microsoft\ URL\ Control&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^MIDown\ tool&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^MIIxpc&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Mirror&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Missigua\ Locator&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Mister\ PiX&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^moget&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Mozilla/3.Mozilla/2.01&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Mozilla.*NEWT&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^NAMEPROTECT&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Navroad&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^NearSite&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^NetAnts&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Netcraft&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^NetMechanic&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^NetSpider&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Net\ Vampire&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^NetZIP&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^NextGenSearchBot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^NG&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^NICErsPRO&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^niki-bot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^NimbleCrawler&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Ninja&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^NPbot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Octopus&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Offline\ Explorer&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Offline\ Navigator&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Openfind&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^OutfoxBot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^PageGrabber&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Papa\ Foto&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^pavuk&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^pcBrowser&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^PHP\ version\ tracker&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Pockey&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^ProPowerBot/2.14&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^ProWebWalker&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^psbot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Pump&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^QueryN.Metasearch&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^RealDownload&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;Reaper&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;Recorder&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^ReGet&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^RepoMonkey&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^RMA&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;Siphon&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^SiteSnagger&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^SlySearch&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^SmartDownload&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Snake&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Snapbot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Snoopy&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^sogou&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^SpaceBison&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^SpankBot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^spanner&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Sqworm&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;Stripper&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;Sucker&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^SuperBot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^SuperHTTP&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Surfbot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^suzuran&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Szukacz/1.4&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^tAkeOut&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Teleport&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Telesoft&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^TurnitinBot/1.5&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^The.Intraformant&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^TheNomad&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^TightTwatBot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Titan&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^True_Robot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^turingos&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^TurnitinBot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^URLy.Warning&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Vacuum&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^VCI&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^VoidEYE&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Web\ Image\ Collector&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Web\ Sucker&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebAuto&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebBandit&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Webclipping.com&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebCopier&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebEMailExtrac.*&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebEnhancer&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebFetch&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebGo\ IS&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Web.Image.Collector&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebLeacher&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebmasterWorldForumBot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebReaper&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebSauger&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Website\ eXtractor&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Website\ Quester&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Webster&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebStripper&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebWhacker&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WebZIP&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;Whacker&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Widow&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WISENutbot&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WWWOFFLE&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^WWW-Collector-E&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Xaldon&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Xenu&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Zeus&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;ZmEu&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;^Zyborg&quot; bad_bot

# Vulnerability Scanners
SetEnvIfNoCase User-Agent &quot;Acunetix&quot; bad_bot
SetEnvIfNoCase User-Agent &quot;FHscan&quot; bad_bot
# Aggressive Chinese Search Engine
#SetEnvIfNoCase User-Agent &quot;Baiduspider&quot; bad_bot
# Aggressive Russian Search Engine
# Uncomment to disable this search engine
# SetEnvIfNoCase User-Agent &quot;Yandex&quot; bad_bot`

&amp;lt;Limit GET POST HEAD&amp;gt;
Order Allow,Deny
Allow from all
# Surveillance
deny from 38.100.19.8/29
deny from 38.100.21.0/24
deny from 38.100.41.64/26
deny from 38.105.71.0/25
deny from 38.105.83.0/27
deny from 38.112.21.140/30
deny from 38.118.42.32/29
deny from 65.213.208.128/27
deny from 65.222.176.96/27
deny from 65.222.185.72/29`

Deny from env=bad_bot
&amp;lt;/Limit&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;In Closing&lt;/h2&gt;
&lt;p&gt;I recommend and personally use all the above settings, however, I broke up each section of my htaccess so you can drop ones you don’t like or want. Pay close attention to the section Force HTTPS as this will force all http traffic to https and you must have a valid SSL Certificate.&lt;/p&gt;
</content:encoded></item><item><title>Snipping Tool Removed by Microsoft in October 2018 Update 1809</title><link>https://christitus.com/snipping-tool-removed/</link><guid isPermaLink="true">https://christitus.com/snipping-tool-removed/</guid><description>&lt;p&gt;The Snipping Tool is being removed by Microsoft in October 2018 Update 1809 and I am not happy! This tool is one of the best tools Microsoft has ever created, so why? Well, they want you to use the Snip and Sketch App from the Microsoft Store. Spoiler: It sucks.&lt;/p&gt;
&lt;h2&gt;Greenshot the best Snipping Tool Replacement&lt;/h2&gt;
&lt;p&gt;So what should you use? Greenshot. Its freeware and it just works. Not bulky with a toolbar, but adds a tray icon, which you don’t have to use. You can just press print screen and away you go.&lt;/p&gt;
&lt;p&gt;Download it from there website here: &lt;a href=&quot;http://getgreenshot.org/downloads/&quot;&gt;http://getgreenshot.org/downloads/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Microsoft Snip and Sketch Replacement&lt;/h2&gt;
&lt;p&gt;Currently, this is labeled as Screen Sketch, however, this is changing to Snip and Sketch App in the next update. Here is the preview of the upcoming disaster for Microsoft their predictably bad moves on forcing their tragic app store on us. Here is today’s download image of the app prior to the upcoming update that sunsets our beloved Snipping Tool.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/09/screen-sketch.webp&quot; alt=&quot;screen-sketch&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;With Snipping Tool gone, you might as well get used to something new, and Greenshot is a great freeware that has been around for 4 years. In the short week or so that I have been using this, I have grown to love it more than the old Snipping Tool. The features give me more options, but with its polish, I am much more efficient than I ever was.&lt;/p&gt;
</description><pubDate>Tue, 18 Sep 2018 19:06:44 GMT</pubDate><content:encoded>&lt;p&gt;The Snipping Tool is being removed by Microsoft in October 2018 Update 1809 and I am not happy! This tool is one of the best tools Microsoft has ever created, so why? Well, they want you to use the Snip and Sketch App from the Microsoft Store. Spoiler: It sucks.&lt;/p&gt;
&lt;h2&gt;Greenshot the best Snipping Tool Replacement&lt;/h2&gt;
&lt;p&gt;So what should you use? Greenshot. Its freeware and it just works. Not bulky with a toolbar, but adds a tray icon, which you don’t have to use. You can just press print screen and away you go.&lt;/p&gt;
&lt;p&gt;Download it from there website here: &lt;a href=&quot;http://getgreenshot.org/downloads/&quot;&gt;http://getgreenshot.org/downloads/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Microsoft Snip and Sketch Replacement&lt;/h2&gt;
&lt;p&gt;Currently, this is labeled as Screen Sketch, however, this is changing to Snip and Sketch App in the next update. Here is the preview of the upcoming disaster for Microsoft their predictably bad moves on forcing their tragic app store on us. Here is today’s download image of the app prior to the upcoming update that sunsets our beloved Snipping Tool.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/09/screen-sketch.webp&quot; alt=&quot;screen-sketch&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;With Snipping Tool gone, you might as well get used to something new, and Greenshot is a great freeware that has been around for 4 years. In the short week or so that I have been using this, I have grown to love it more than the old Snipping Tool. The features give me more options, but with its polish, I am much more efficient than I ever was.&lt;/p&gt;
</content:encoded></item><item><title>Using IOMeter to determine hard drive performance</title><link>https://christitus.com/using-iometer/</link><guid isPermaLink="true">https://christitus.com/using-iometer/</guid><description>&lt;p&gt;Using IOMeter will give you a great benchmark on any hard drives and network drives you have. I use this quite often as you can see the effects of new hardware, introducing Link-Aggregation, or troubleshooting drives to determine if they are losing performance.&lt;/p&gt;
&lt;h2&gt;Steps to Follow&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Download IOMeter from the &lt;a href=&quot;http://www.iometer.org/doc/downloads.html&quot;&gt;Official Site&lt;/a&gt; and run setup&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/09/isometer1.webp&quot; alt=&quot;isometer1&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;All Programs -&amp;gt; Iometer -&amp;gt; Iometer&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Under ‘Topology’ tab, select the local machine&lt;br /&gt;
-Delete All workers but 1&lt;br /&gt;
-Under ‘Disk Targets’ tab select the drive you want to run the IO test on:&lt;br /&gt;
-Set Maximum Disk Size to 204800 Sectors (one sector is 512 B, so 204800 sectors gives 100MB)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/09/isometer2.webp&quot; alt=&quot;isometer2&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Under ‘Access Specifications’ tab, under Global Access Specifications, select Default, and Click Add&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;Note: Default test is – 67% read, 33% write, 2 KB, 100% Random non/sequential writes, Burst Length 1 I/O. This is fine for this brief guide and the sample results below use this.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/09/isometer3.webp&quot; alt=&quot;isometer3&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Under ‘Results Display’ tab, under Update Frequency, set to 10 seconds&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/09/iometer4.webp&quot; alt=&quot;isometer4&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Under ‘Test Setup’ tab, set Run Time to 1 minute ( If bench-marking a SAN or Network drive I recommend doing it for 5 minutes for consistency. )&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Clone Workers from the first page to the number of cores you have. (Ex. Quad Core = 4 workers)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The click the green flag to start the test, and choose a location to save the results….&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Remember to benchmark often and always do a before and after you make any changes. This is imperative so you can see any performance gains or losses you might incur. There are many times I have been surprised by the results of switching hardware or simply testing older hardware to see how it is holding up. One thing is for certain, I haven’t found a freeware tool that is better than IOMeter in the past 15 years that I’ve been doing IT.&lt;/p&gt;
</description><pubDate>Fri, 14 Sep 2018 16:50:46 GMT</pubDate><content:encoded>&lt;p&gt;Using IOMeter will give you a great benchmark on any hard drives and network drives you have. I use this quite often as you can see the effects of new hardware, introducing Link-Aggregation, or troubleshooting drives to determine if they are losing performance.&lt;/p&gt;
&lt;h2&gt;Steps to Follow&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Download IOMeter from the &lt;a href=&quot;http://www.iometer.org/doc/downloads.html&quot;&gt;Official Site&lt;/a&gt; and run setup&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/09/isometer1.webp&quot; alt=&quot;isometer1&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;All Programs -&amp;gt; Iometer -&amp;gt; Iometer&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Under ‘Topology’ tab, select the local machine&lt;br /&gt;
-Delete All workers but 1&lt;br /&gt;
-Under ‘Disk Targets’ tab select the drive you want to run the IO test on:&lt;br /&gt;
-Set Maximum Disk Size to 204800 Sectors (one sector is 512 B, so 204800 sectors gives 100MB)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/09/isometer2.webp&quot; alt=&quot;isometer2&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Under ‘Access Specifications’ tab, under Global Access Specifications, select Default, and Click Add&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;Note: Default test is – 67% read, 33% write, 2 KB, 100% Random non/sequential writes, Burst Length 1 I/O. This is fine for this brief guide and the sample results below use this.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/09/isometer3.webp&quot; alt=&quot;isometer3&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Under ‘Results Display’ tab, under Update Frequency, set to 10 seconds&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/09/iometer4.webp&quot; alt=&quot;isometer4&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Under ‘Test Setup’ tab, set Run Time to 1 minute ( If bench-marking a SAN or Network drive I recommend doing it for 5 minutes for consistency. )&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Clone Workers from the first page to the number of cores you have. (Ex. Quad Core = 4 workers)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The click the green flag to start the test, and choose a location to save the results….&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Remember to benchmark often and always do a before and after you make any changes. This is imperative so you can see any performance gains or losses you might incur. There are many times I have been surprised by the results of switching hardware or simply testing older hardware to see how it is holding up. One thing is for certain, I haven’t found a freeware tool that is better than IOMeter in the past 15 years that I’ve been doing IT.&lt;/p&gt;
</content:encoded></item><item><title>Issuing SSL Certs using Let’s Encrypt in Ubuntu</title><link>https://christitus.com/issuing-ssl-certs/</link><guid isPermaLink="true">https://christitus.com/issuing-ssl-certs/</guid><description>&lt;p&gt;This article goes over Issuing SSL Certs using Let’s Encrypt in Ubuntu 16.04. The basic steps outlined in the video are adding the repository, installing certbot, issuing a certificate, and enabling SSL.&lt;/p&gt;
&lt;h2&gt;Video Guide&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/yC3GTHJRQuM&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h2&gt;Links&lt;/h2&gt;
&lt;p&gt;Let’s Encrypt @ &lt;a href=&quot;https://letsencrypt.org&quot;&gt;https://letsencrypt.org&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Certbot @ &lt;a href=&quot;https://certbot.eff.org&quot;&gt;https://certbot.eff.org&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Command List for Issuing SSL Certs&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;sudo apt-get update&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo apt-get install software-properties-common -y&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo add-apt-repository ppa:certbot/certbot&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo apt-get update&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo apt-get install python-certbot-apache -y&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo certbot --apache&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Finishing Up&lt;/h2&gt;
&lt;p&gt;After performing these steps you will make your site secure and it will automatically renew this certificate. This is a great set it and forget solution, expecially if you are running your own site on a budget.&lt;/p&gt;
</description><pubDate>Thu, 13 Sep 2018 20:49:56 GMT</pubDate><content:encoded>&lt;p&gt;This article goes over Issuing SSL Certs using Let’s Encrypt in Ubuntu 16.04. The basic steps outlined in the video are adding the repository, installing certbot, issuing a certificate, and enabling SSL.&lt;/p&gt;
&lt;h2&gt;Video Guide&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/yC3GTHJRQuM&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h2&gt;Links&lt;/h2&gt;
&lt;p&gt;Let’s Encrypt @ &lt;a href=&quot;https://letsencrypt.org&quot;&gt;https://letsencrypt.org&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Certbot @ &lt;a href=&quot;https://certbot.eff.org&quot;&gt;https://certbot.eff.org&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Command List for Issuing SSL Certs&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;sudo apt-get update&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo apt-get install software-properties-common -y&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo add-apt-repository ppa:certbot/certbot&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo apt-get update&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo apt-get install python-certbot-apache -y&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;sudo certbot --apache&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Finishing Up&lt;/h2&gt;
&lt;p&gt;After performing these steps you will make your site secure and it will automatically renew this certificate. This is a great set it and forget solution, expecially if you are running your own site on a budget.&lt;/p&gt;
</content:encoded></item><item><title>Google Chrome missing www and how to fix it</title><link>https://christitus.com/google-chrome-update-69-address-bar-and-how-to-fix-it/</link><guid isPermaLink="true">https://christitus.com/google-chrome-update-69-address-bar-and-how-to-fix-it/</guid><description>&lt;p&gt;Chrome started rolling out update 69 at the beginning of this month (September 2018) causing a missing www in the address bar. There are two things this update did that you need to be aware of. &lt;/p&gt;
&lt;h2&gt;Google Chrome Update 69 Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Show trivial sub-domains (missing www in the address bar)&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Type this in your address bar:&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;chrome://flags/#omnibox-ui-hide-steady-state-url-scheme-and-subdomains&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Set to &lt;strong&gt;DISABLED&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chrome now defaults to SSL / HTTPS for all websites&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;So I didn’t realize this happened and launched a new ubuntu web server to find it unreachable with apache installed. After wasting a lot of time, more than I’m willing to tell you here, I found out the new version of chrome will default to https:// before everything unless you explicitly put http:// in the address bar. This includes IP addresses and the like. So make sure you have SSL certs updated otherwise you are going to have a bad time.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/0O9TzNvVwR0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;I typically love a lot of the Google projects and updates they do, but the missing www in the address bar left me a little puzzled and why they thought they needed to do it. On the plus side, I do like the new chrome tabs, so the entire update is not all bad. Also, the changes to default to secure sites has been a long time coming. There are many different reasons for this, but the fact is by forcing webmasters to use SSL and get secure is a good thing. These days non-secure http sites can easily be exploited by a variety of different methods and this is a welcomed change in my opinion.&lt;/p&gt;
</description><pubDate>Wed, 12 Sep 2018 20:49:44 GMT</pubDate><content:encoded>&lt;p&gt;Chrome started rolling out update 69 at the beginning of this month (September 2018) causing a missing www in the address bar. There are two things this update did that you need to be aware of. &lt;/p&gt;
&lt;h2&gt;Google Chrome Update 69 Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Show trivial sub-domains (missing www in the address bar)&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Type this in your address bar:&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;chrome://flags/#omnibox-ui-hide-steady-state-url-scheme-and-subdomains&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Set to &lt;strong&gt;DISABLED&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chrome now defaults to SSL / HTTPS for all websites&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;So I didn’t realize this happened and launched a new ubuntu web server to find it unreachable with apache installed. After wasting a lot of time, more than I’m willing to tell you here, I found out the new version of chrome will default to https:// before everything unless you explicitly put http:// in the address bar. This includes IP addresses and the like. So make sure you have SSL certs updated otherwise you are going to have a bad time.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/0O9TzNvVwR0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;I typically love a lot of the Google projects and updates they do, but the missing www in the address bar left me a little puzzled and why they thought they needed to do it. On the plus side, I do like the new chrome tabs, so the entire update is not all bad. Also, the changes to default to secure sites has been a long time coming. There are many different reasons for this, but the fact is by forcing webmasters to use SSL and get secure is a good thing. These days non-secure http sites can easily be exploited by a variety of different methods and this is a welcomed change in my opinion.&lt;/p&gt;
</content:encoded></item><item><title>Installing Linux Subsystem for Windows 10</title><link>https://christitus.com/installing-linux-subsystem/</link><guid isPermaLink="true">https://christitus.com/installing-linux-subsystem/</guid><description>&lt;p&gt;The following video goes over installing Linux Subsystem on Windows 10. Most notably it allows you to run Linux terminal commands in Windows 10 without having a virtual machine or dual boot into a Linux operating system. &lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/RriP3LmuKNA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h2&gt;Enable Linux Subsystem Feature&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;cd ~ Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Note: Perform in PowerShell&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;PowerShell Installation Method&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile Ubuntu.appx -UseBasicParsing Rename-Item -Path ~/Ubuntu.appx -NewName Ubuntu.zip Expand-Archive ~/Ubuntu.zip ~/Ubuntu cd Ubuntu ./ubuntu.exe&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Microsoft Store Installation Method&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Open the Microsoft Store&lt;/li&gt;
&lt;li&gt;Browse to Ubuntu-1604 and subsequently click the Install button&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;In Closing The Linux Subsystem is a welcomed addition to Windows 10 because most things that come from the Microsoft store are garbage. Above all using this will give you the ability to check out and compile many GitHub projects. It is now one of the first options I enable when I do fresh installs of Windows 10 due to the fact Linux is not practical all the time. Leave any Questions and Comments below and I’ll get back to you. I regularly publish on&lt;/p&gt;
</description><pubDate>Tue, 11 Sep 2018 19:56:07 GMT</pubDate><content:encoded>&lt;p&gt;The following video goes over installing Linux Subsystem on Windows 10. Most notably it allows you to run Linux terminal commands in Windows 10 without having a virtual machine or dual boot into a Linux operating system. &lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/RriP3LmuKNA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h2&gt;Enable Linux Subsystem Feature&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;cd ~ Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Note: Perform in PowerShell&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;PowerShell Installation Method&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile Ubuntu.appx -UseBasicParsing Rename-Item -Path ~/Ubuntu.appx -NewName Ubuntu.zip Expand-Archive ~/Ubuntu.zip ~/Ubuntu cd Ubuntu ./ubuntu.exe&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Microsoft Store Installation Method&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Open the Microsoft Store&lt;/li&gt;
&lt;li&gt;Browse to Ubuntu-1604 and subsequently click the Install button&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;In Closing The Linux Subsystem is a welcomed addition to Windows 10 because most things that come from the Microsoft store are garbage. Above all using this will give you the ability to check out and compile many GitHub projects. It is now one of the first options I enable when I do fresh installs of Windows 10 due to the fact Linux is not practical all the time. Leave any Questions and Comments below and I’ll get back to you. I regularly publish on&lt;/p&gt;
</content:encoded></item><item><title>Introduction to Google Cloud Platform</title><link>https://christitus.com/intro-google-cloud-platform/</link><guid isPermaLink="true">https://christitus.com/intro-google-cloud-platform/</guid><description>&lt;p&gt;This is an Introduction to Google Cloud Platform and goes over creating your first project and virtual machine. This walkthrough is for beginners that are just getting started with Google Cloud.&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/tJyVG-u6RhA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h2&gt;GCloud Commands&lt;/h2&gt;
&lt;p&gt;Allows gcloud commands from command prompt&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloud.google.com/appengine/docs/standard/python/download&quot;&gt;https://cloud.google.com/appengine/docs/standard/python/download&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Next Steps&lt;/h2&gt;
&lt;p&gt;Now that we know how to use Google Cloud Platform, go out and build up your first system. I highly recommend starting with an Ubuntu server, since they have the best community support for starters, and install a web server to host a website. I found this incredibly easy, especially compared to AWS or Azure. If you want to see any follow-up topics on Google Cloud Platform, let me know below, and I will work on creating more content explaining it. If you are in business, I highly recommend you look at Google Cloud Platform for a backup server and use a VPN to connect your on-site servers. This works seamlessly and is very affordable for a cloud solution.&lt;/p&gt;
</description><pubDate>Tue, 11 Sep 2018 13:44:02 GMT</pubDate><content:encoded>&lt;p&gt;This is an Introduction to Google Cloud Platform and goes over creating your first project and virtual machine. This walkthrough is for beginners that are just getting started with Google Cloud.&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/tJyVG-u6RhA&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h2&gt;GCloud Commands&lt;/h2&gt;
&lt;p&gt;Allows gcloud commands from command prompt&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloud.google.com/appengine/docs/standard/python/download&quot;&gt;https://cloud.google.com/appengine/docs/standard/python/download&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Next Steps&lt;/h2&gt;
&lt;p&gt;Now that we know how to use Google Cloud Platform, go out and build up your first system. I highly recommend starting with an Ubuntu server, since they have the best community support for starters, and install a web server to host a website. I found this incredibly easy, especially compared to AWS or Azure. If you want to see any follow-up topics on Google Cloud Platform, let me know below, and I will work on creating more content explaining it. If you are in business, I highly recommend you look at Google Cloud Platform for a backup server and use a VPN to connect your on-site servers. This works seamlessly and is very affordable for a cloud solution.&lt;/p&gt;
</content:encoded></item><item><title>Setup an always on VPN in Ubuntu</title><link>https://christitus.com/setup-always-on-vpn/</link><guid isPermaLink="true">https://christitus.com/setup-always-on-vpn/</guid><description>&lt;p&gt;This is a guide on how to set up an always on VPN in Ubuntu, and basic troubleshooting of VPNs in ubuntu server. I used Private Internet Access as an example VPN connection.&lt;/p&gt;
&lt;p&gt;Use my affiliate link to get a Private Internet Access VPN: &lt;a href=&quot;http://www.privateinternetaccess.com/pages/buy-vpn/christitus&quot;&gt;http://www.privateinternetaccess.com/pages/buy-vpn/christitus&lt;/a&gt;. This is a must-have for a dedicated Linux box specifically for privacy concerns.&lt;/p&gt;
&lt;h2&gt;Setup VPN in Ubuntu – With Commentary&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/tHEd3fFfGpM&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h2&gt;VPN setup commands&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo su
apt-get install openvpn -y
cd /etc/openvpn
wget https://www.privateinternetaccess.com...
unzip openvpn.zip
rm openvpn.zip
nano .secrets
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;p1234567      ###PASTE YOUR INFO###&lt;br /&gt;
MyPIAPassword ###PASTE YOUR INFO###&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;chmod 600 .secrets
mv &apos;US Texas.ovpn&apos; texas.conf
nano texas.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;auth-user-pass .secrets ###CHANGE THIS LINE###&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;systemctl start openvpn@texas
systemctl status openvpn@texas
nano /etc/default/openvpn ###UNCOMMENT AUTOSTART
reboot
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Diagnostic Commands&lt;/h2&gt;
&lt;p&gt;Once complete, find the external IP as that is needed to make sure it is working. If your VPN is failing to connect I recommend using tail on the syslog so consequently, you can find any issues that are stopping the connection.&lt;/p&gt;
&lt;h2&gt;Extra Tools&lt;/h2&gt;
&lt;p&gt;Find External IP: dig TXT +short &lt;a href=&quot;http://o-o.myaddr.l.google.com&quot;&gt;o-o.myaddr.l.google.com&lt;/a&gt; @ns1.google.com | awk -F&apos;&quot;&apos; &apos;{ print $2}&apos;
Debug as necessary: tail -f /var/log/syslog|grep ovpn`&lt;/p&gt;
&lt;p&gt;In closing, make sure you always use a VPN when you are concerned about your privacy. I’ve also set these up on Linux boxes between offices and it makes for a great inexpensive site-to-site VPN. Therefore, you don’t have to spend tons of money on proprietary gateways that go out of date in a couple years.&lt;/p&gt;
</description><pubDate>Mon, 10 Sep 2018 14:59:11 GMT</pubDate><content:encoded>&lt;p&gt;This is a guide on how to set up an always on VPN in Ubuntu, and basic troubleshooting of VPNs in ubuntu server. I used Private Internet Access as an example VPN connection.&lt;/p&gt;
&lt;p&gt;Use my affiliate link to get a Private Internet Access VPN: &lt;a href=&quot;http://www.privateinternetaccess.com/pages/buy-vpn/christitus&quot;&gt;http://www.privateinternetaccess.com/pages/buy-vpn/christitus&lt;/a&gt;. This is a must-have for a dedicated Linux box specifically for privacy concerns.&lt;/p&gt;
&lt;h2&gt;Setup VPN in Ubuntu – With Commentary&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/tHEd3fFfGpM&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;h2&gt;VPN setup commands&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo su
apt-get install openvpn -y
cd /etc/openvpn
wget https://www.privateinternetaccess.com...
unzip openvpn.zip
rm openvpn.zip
nano .secrets
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;p1234567      ###PASTE YOUR INFO###&lt;br /&gt;
MyPIAPassword ###PASTE YOUR INFO###&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;chmod 600 .secrets
mv &apos;US Texas.ovpn&apos; texas.conf
nano texas.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;auth-user-pass .secrets ###CHANGE THIS LINE###&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;systemctl start openvpn@texas
systemctl status openvpn@texas
nano /etc/default/openvpn ###UNCOMMENT AUTOSTART
reboot
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Diagnostic Commands&lt;/h2&gt;
&lt;p&gt;Once complete, find the external IP as that is needed to make sure it is working. If your VPN is failing to connect I recommend using tail on the syslog so consequently, you can find any issues that are stopping the connection.&lt;/p&gt;
&lt;h2&gt;Extra Tools&lt;/h2&gt;
&lt;p&gt;Find External IP: dig TXT +short &lt;a href=&quot;http://o-o.myaddr.l.google.com&quot;&gt;o-o.myaddr.l.google.com&lt;/a&gt; @ns1.google.com | awk -F&apos;&quot;&apos; &apos;{ print $2}&apos;
Debug as necessary: tail -f /var/log/syslog|grep ovpn`&lt;/p&gt;
&lt;p&gt;In closing, make sure you always use a VPN when you are concerned about your privacy. I’ve also set these up on Linux boxes between offices and it makes for a great inexpensive site-to-site VPN. Therefore, you don’t have to spend tons of money on proprietary gateways that go out of date in a couple years.&lt;/p&gt;
</content:encoded></item><item><title>XCP-ng / XenServer – Your First Virtual Machine Installation</title><link>https://christitus.com/xenserver-xcp-ng-first-vm-install/</link><guid isPermaLink="true">https://christitus.com/xenserver-xcp-ng-first-vm-install/</guid><description>&lt;p&gt;This video goes through setting up a Virtual Machine in XenServer / XCP-ng in a lab environment. If you want to experiment with in detail with XenServer, I highly recommend you download XCP-ng from their &lt;a href=&quot;https://xcp-ng.org&quot;&gt;official website&lt;/a&gt;. This is a community-powered version of XenServer with ALL FEATURES ENABLED. XenServer from Citrix has recently started going away from its open-source roots and as a result, has begun locking features behind a paywall.&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/n-0CWPhxgP0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Sun, 09 Sep 2018 18:54:21 GMT</pubDate><content:encoded>&lt;p&gt;This video goes through setting up a Virtual Machine in XenServer / XCP-ng in a lab environment. If you want to experiment with in detail with XenServer, I highly recommend you download XCP-ng from their &lt;a href=&quot;https://xcp-ng.org&quot;&gt;official website&lt;/a&gt;. This is a community-powered version of XenServer with ALL FEATURES ENABLED. XenServer from Citrix has recently started going away from its open-source roots and as a result, has begun locking features behind a paywall.&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/n-0CWPhxgP0&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Debloat Windows 10</title><link>https://christitus.com/debloat-windows-10/</link><guid isPermaLink="true">https://christitus.com/debloat-windows-10/</guid><description>&lt;p&gt;Trying to Debloat Windows 10 is getting ridiculous and as a system admin it is soul crushing to see all that performance go to waste on the botched attempt by Microsoft to do an Appstore and its apps (I’m looking at you Candy Crush). Luckily some admins have worked tirelessly to give us a solution that works considerably well. Lets Start! &lt;/p&gt;
&lt;h2&gt;October 2020 Update&lt;/h2&gt;
&lt;p&gt;If you are coming here from the YouTube video I have taken all the scripts below and a system admin script I used a lot in the past to make a streamlined debloat script. This script will optimize Windows and can be run multiple times if you have an update ruin all the optimizations. I have also made it very easy to launch. Here is the source files: &lt;a href=&quot;https://github.com/ChrisTitusTech/win10script&quot;&gt;https://github.com/ChrisTitusTech/win10script&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you want to just run this on any system, you can easily copy and paste this into a Admin Powershell prompt and watch it do everything for you. It does have two prompts based on user feedback. Let me know what you think below!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;iex ((New-Object System.Net.WebClient).DownloadString(&apos;https://git.io/JJ8R4&apos;))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;What this script does&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Installs Chocolatey, Notepad++, Irfanview, VLC, Java, and asks if you want Adobe Reader or Brave.&lt;/li&gt;
&lt;li&gt;Removes all Windows Store Apps EXCEPT office, xbox, and WSL.&lt;/li&gt;
&lt;li&gt;Removed Telemetry&lt;/li&gt;
&lt;li&gt;Disables Cortana&lt;/li&gt;
&lt;li&gt;Deletes various schedules tasks that rebloat the system&lt;/li&gt;
&lt;li&gt;Removes Other Bloatware (Candy Crush, etc.)&lt;/li&gt;
&lt;li&gt;Fixes problems that other scripts causes (lock screen and personalization options restricted)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Based on User feedback, this no longer uninstalls OneDrive or Office.&lt;/p&gt;
&lt;h2&gt;Old 2018 Instructions&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Right Click Windows Button -&amp;gt;Select Powershell Prompt (Admin) OR Select Command Prompt (Admin)
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Note: If you don’t have PowerShell and only command prompt open command prompt (admin) and type “&lt;em&gt;powershell&lt;/em&gt;“&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Change Execution policy to allow a debloat script to run in Powershell &lt;code&gt;Set-ExecutionPolicy Unrestricted&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Run the script from the following Github Repository. The person running this GitHub has been updating this script for a while and is a godsend. (Source: &lt;a href=&quot;https://github.com/Sycnex/Windows10Debloater&quot;&gt;https://github.com/Sycnex/Windows10Debloater&lt;/a&gt;) Use Windows10Debloater.ps1from the location above
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;During installation select yes to debloat windows 10, select yes to remove OneDrive, and Yes to reboot after it finishes. Below is the image of performing these tasks.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;[&lt;img src=&quot;/images/2018/09/debloatwin10cmd.webp&quot; alt=&quot;debloatwin10cmd&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/q4ziE5Am0pM&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Sun, 09 Sep 2018 17:08:58 GMT</pubDate><content:encoded>&lt;p&gt;Trying to Debloat Windows 10 is getting ridiculous and as a system admin it is soul crushing to see all that performance go to waste on the botched attempt by Microsoft to do an Appstore and its apps (I’m looking at you Candy Crush). Luckily some admins have worked tirelessly to give us a solution that works considerably well. Lets Start! &lt;/p&gt;
&lt;h2&gt;October 2020 Update&lt;/h2&gt;
&lt;p&gt;If you are coming here from the YouTube video I have taken all the scripts below and a system admin script I used a lot in the past to make a streamlined debloat script. This script will optimize Windows and can be run multiple times if you have an update ruin all the optimizations. I have also made it very easy to launch. Here is the source files: &lt;a href=&quot;https://github.com/ChrisTitusTech/win10script&quot;&gt;https://github.com/ChrisTitusTech/win10script&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you want to just run this on any system, you can easily copy and paste this into a Admin Powershell prompt and watch it do everything for you. It does have two prompts based on user feedback. Let me know what you think below!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;iex ((New-Object System.Net.WebClient).DownloadString(&apos;https://git.io/JJ8R4&apos;))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;What this script does&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Installs Chocolatey, Notepad++, Irfanview, VLC, Java, and asks if you want Adobe Reader or Brave.&lt;/li&gt;
&lt;li&gt;Removes all Windows Store Apps EXCEPT office, xbox, and WSL.&lt;/li&gt;
&lt;li&gt;Removed Telemetry&lt;/li&gt;
&lt;li&gt;Disables Cortana&lt;/li&gt;
&lt;li&gt;Deletes various schedules tasks that rebloat the system&lt;/li&gt;
&lt;li&gt;Removes Other Bloatware (Candy Crush, etc.)&lt;/li&gt;
&lt;li&gt;Fixes problems that other scripts causes (lock screen and personalization options restricted)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Based on User feedback, this no longer uninstalls OneDrive or Office.&lt;/p&gt;
&lt;h2&gt;Old 2018 Instructions&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Right Click Windows Button -&amp;gt;Select Powershell Prompt (Admin) OR Select Command Prompt (Admin)
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Note: If you don’t have PowerShell and only command prompt open command prompt (admin) and type “&lt;em&gt;powershell&lt;/em&gt;“&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Change Execution policy to allow a debloat script to run in Powershell &lt;code&gt;Set-ExecutionPolicy Unrestricted&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Run the script from the following Github Repository. The person running this GitHub has been updating this script for a while and is a godsend. (Source: &lt;a href=&quot;https://github.com/Sycnex/Windows10Debloater&quot;&gt;https://github.com/Sycnex/Windows10Debloater&lt;/a&gt;) Use Windows10Debloater.ps1from the location above
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;During installation select yes to debloat windows 10, select yes to remove OneDrive, and Yes to reboot after it finishes. Below is the image of performing these tasks.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;[&lt;img src=&quot;/images/2018/09/debloatwin10cmd.webp&quot; alt=&quot;debloatwin10cmd&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Video Walkthrough&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/q4ziE5Am0pM&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Virtualization Introduction</title><link>https://christitus.com/virtualization-introduction/</link><guid isPermaLink="true">https://christitus.com/virtualization-introduction/</guid><description>&lt;p&gt;This is a virtualization introduction and when you should be using it. In the follow-up videos, I will go into using the hypervisor, creating VMs and maintenance.&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/T0nywDkf1IE&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;p&gt;Now that you understand what it is and if you want to start getting your feet wet, check out my other videos about installing a hypervisor and launching your first virtual machine. I highly recommend starting out with VMware as it used the most. It also has the most material online if looking for virtualization introduction videos and how to guides.&lt;/p&gt;
</description><pubDate>Fri, 07 Sep 2018 21:33:35 GMT</pubDate><content:encoded>&lt;p&gt;This is a virtualization introduction and when you should be using it. In the follow-up videos, I will go into using the hypervisor, creating VMs and maintenance.&lt;/p&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/T0nywDkf1IE&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;  
&lt;p&gt;Now that you understand what it is and if you want to start getting your feet wet, check out my other videos about installing a hypervisor and launching your first virtual machine. I highly recommend starting out with VMware as it used the most. It also has the most material online if looking for virtualization introduction videos and how to guides.&lt;/p&gt;
</content:encoded></item><item><title>Remove Asterisk from Linux server (ubuntu/centos/debian/rhel)</title><link>https://christitus.com/remove-asterisk/</link><guid isPermaLink="true">https://christitus.com/remove-asterisk/</guid><description>&lt;p&gt;The following removal instructions go over how to completely remove Asterisk from your Linux Instance. &lt;/p&gt;
&lt;h2&gt;REMOVE AND REINSTALL INSTRUCTIONS&lt;/h2&gt;
&lt;p&gt;Here is how to remove Asterisk from a Linux server and reinstall from source.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Pre-requirements: Download source, configure, make menuselect, and make. All done with root (use su) Example:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;su&lt;/code&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;###ENTER ROOT PASSWORD###&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;mkdir ~/build
cd ~/build
wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-14-current.tar.gz
tar -xvf asterisk-14-current.tar.gz
cd asterisk-14
./contrib/scripts/install_prereq install
./configure --with-jansson-bundled ##Note: you may not need jansson-bundled so omit this if needed##
make menuselect
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;###Select any needed addons: MP3, etc.###&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;make&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Note: you can install asterisk 13, 15, or custom git asterisk branch (i.e. gvsip) instead of Asterisk-14 tar&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Once you have the project built, you now need to clean the old asterisk out and reboot&lt;/p&gt;
&lt;p&gt;&lt;code&gt;make uninstall&lt;/code&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;###OR to clean EVERYTHING###&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;make uninstall-all&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Once this is complete I like to reboot, and then run a &lt;strong&gt;make install&lt;/strong&gt; to install the different version of asterisk.&lt;/p&gt;
&lt;h2&gt;FULL REMOVAL NO REINSTALL&lt;/h2&gt;
&lt;p&gt;Now let’s say you just want to remove Asterisk and just don’t want it anymore. Well, that is far simpler. Just run the following commands and it will be gone forever&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;killall -9 safe_asterisk
killall -9 asterisk
systemctl disable asterisk ##Note: depending on the install this may not be enabled or was set to run via @reboot cron or daemon service - Mileage will vary##
rm -rf /etc/asterisk
rm -rf /var/log/asterisk
rm -rf /var/lib/asterisk
rm -rf /var/lib64/asterisk
rm -rf /var/spool/asterisk
rm -rf /usr/lib/asterisk
rm -rf /usr/lib64/asterisk
reboot
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;These instructions should work on any Linux Based system and it shouldn’t matter if it is Red Hat based or Debian based.&lt;/p&gt;
</description><pubDate>Fri, 17 Aug 2018 15:58:36 GMT</pubDate><content:encoded>&lt;p&gt;The following removal instructions go over how to completely remove Asterisk from your Linux Instance. &lt;/p&gt;
&lt;h2&gt;REMOVE AND REINSTALL INSTRUCTIONS&lt;/h2&gt;
&lt;p&gt;Here is how to remove Asterisk from a Linux server and reinstall from source.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Pre-requirements: Download source, configure, make menuselect, and make. All done with root (use su) Example:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;su&lt;/code&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;###ENTER ROOT PASSWORD###&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;mkdir ~/build
cd ~/build
wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-14-current.tar.gz
tar -xvf asterisk-14-current.tar.gz
cd asterisk-14
./contrib/scripts/install_prereq install
./configure --with-jansson-bundled ##Note: you may not need jansson-bundled so omit this if needed##
make menuselect
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;###Select any needed addons: MP3, etc.###&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;make&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Note: you can install asterisk 13, 15, or custom git asterisk branch (i.e. gvsip) instead of Asterisk-14 tar&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Once you have the project built, you now need to clean the old asterisk out and reboot&lt;/p&gt;
&lt;p&gt;&lt;code&gt;make uninstall&lt;/code&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;###OR to clean EVERYTHING###&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;make uninstall-all&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Once this is complete I like to reboot, and then run a &lt;strong&gt;make install&lt;/strong&gt; to install the different version of asterisk.&lt;/p&gt;
&lt;h2&gt;FULL REMOVAL NO REINSTALL&lt;/h2&gt;
&lt;p&gt;Now let’s say you just want to remove Asterisk and just don’t want it anymore. Well, that is far simpler. Just run the following commands and it will be gone forever&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;killall -9 safe_asterisk
killall -9 asterisk
systemctl disable asterisk ##Note: depending on the install this may not be enabled or was set to run via @reboot cron or daemon service - Mileage will vary##
rm -rf /etc/asterisk
rm -rf /var/log/asterisk
rm -rf /var/lib/asterisk
rm -rf /var/lib64/asterisk
rm -rf /var/spool/asterisk
rm -rf /usr/lib/asterisk
rm -rf /usr/lib64/asterisk
reboot
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;These instructions should work on any Linux Based system and it shouldn’t matter if it is Red Hat based or Debian based.&lt;/p&gt;
</content:encoded></item><item><title>Repair Windows Boot Partition | Includes files and partitioning</title><link>https://christitus.com/repair-windows-boot-partition/</link><guid isPermaLink="true">https://christitus.com/repair-windows-boot-partition/</guid><description>&lt;p&gt;This walkthrough shows you how to repair windows boot partition and boot from an existing windows installation without reinstalling windows.&lt;/p&gt;
&lt;p&gt;Recently I had an old server with a FAT32 system reserved partition and a bunch of extra partitions. I have already moved all the data off the server and it was ready for decommissioning. Before, I did this I wanted to go ahead and remove all these old partitions and just leave the C: Drive with the Windows installation then rebuild the System Reserved partition as NTFS as an exercise. Many backup programs have issues doing block level images with FAT32 partitions OR you need to do a physical to virtual setup. For me, I wanted to decommission the hardware but be able to spin up this server in a virtual environment if needed.&lt;/p&gt;
&lt;h2&gt;Backup Before Attempting This&lt;/h2&gt;
&lt;h3&gt;Step 1: Delete old partitions and create new ones&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Boot into your partition manager of choice (I used Parted Magic &lt;a href=&quot;https://partedmagic.com/&quot;&gt;https://partedmagic.com/&lt;/a&gt; ) GParted&lt;/li&gt;
&lt;li&gt;Delete extra partitions including the old FAT32 system partition (These all should be very small between 100 MB and up to 2 GB)&lt;/li&gt;
&lt;li&gt;Create new NTFS partition with 512 MB of space and label it System Reserved&lt;/li&gt;
&lt;li&gt;Shutdown&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Step 2: Setup Partitions with the correct drive letters&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Launch Windows 10 Install disc / usb&lt;/li&gt;
&lt;li&gt;Shift+F10 once you see language select to bring up command prompt&lt;/li&gt;
&lt;li&gt;Launch &lt;code&gt;DISKPART&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;select volume with 512MB (ex: &lt;code&gt;select vol 0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;assign letter=G:&lt;/code&gt; (or any letter that isn’t taken that is NOT C:)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;exit&lt;/code&gt; OR If Windows operating system is NOT on C:&lt;/li&gt;
&lt;li&gt;&lt;code&gt;select volume&lt;/code&gt; with windows installation on it&lt;/li&gt;
&lt;li&gt;&lt;code&gt;assign letter=C:&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;exit&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Example output:&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;diskpart
select disk 0
list vol
select vol 0 &amp;lt;---500 MB Partition
assign letter=G:
select vol 1 &amp;lt;--- Large Partition with Windows Install on it
assign letter=C:
exit
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Partitions are done. Now time to fix problems with the “type” of partition – By forcing all partitions to be NTFS NT60&lt;/p&gt;
&lt;p&gt;&lt;code&gt;bootsect.exe /nt60 all /force&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Step 3: Copy Boot Records, Fix MBR, and Rebuild BCD&lt;/h4&gt;
&lt;p&gt;Rebuild new system reserved partition with EFI and regular boot files&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;bcdboot c:\Windows /s &amp;lt;boot letter of System Reserved Partion&amp;gt;: /f ALL
bcdboot c:\Windows /s G: /f ALL
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Now we can finally rebuild the bcd and master boot record like you see in so many online guides&lt;/li&gt;
&lt;li&gt;You can verify the system is seeing the windows installation by doing a &lt;code&gt;bootrec /scanos&lt;/code&gt; and then be running through the rest of the commands to do the rest of the repairs&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;bootrec /scanos &amp;lt;---Verify it sees the windows install
bootrec /fixmbr
bootrec /fixboot &amp;lt;----Pick the installation will mirror /scanos bootrec /rebuildbcd
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Reboot and you are done!&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/F72D7uL6cZg&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Mon, 02 Jul 2018 17:01:44 GMT</pubDate><content:encoded>&lt;p&gt;This walkthrough shows you how to repair windows boot partition and boot from an existing windows installation without reinstalling windows.&lt;/p&gt;
&lt;p&gt;Recently I had an old server with a FAT32 system reserved partition and a bunch of extra partitions. I have already moved all the data off the server and it was ready for decommissioning. Before, I did this I wanted to go ahead and remove all these old partitions and just leave the C: Drive with the Windows installation then rebuild the System Reserved partition as NTFS as an exercise. Many backup programs have issues doing block level images with FAT32 partitions OR you need to do a physical to virtual setup. For me, I wanted to decommission the hardware but be able to spin up this server in a virtual environment if needed.&lt;/p&gt;
&lt;h2&gt;Backup Before Attempting This&lt;/h2&gt;
&lt;h3&gt;Step 1: Delete old partitions and create new ones&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Boot into your partition manager of choice (I used Parted Magic &lt;a href=&quot;https://partedmagic.com/&quot;&gt;https://partedmagic.com/&lt;/a&gt; ) GParted&lt;/li&gt;
&lt;li&gt;Delete extra partitions including the old FAT32 system partition (These all should be very small between 100 MB and up to 2 GB)&lt;/li&gt;
&lt;li&gt;Create new NTFS partition with 512 MB of space and label it System Reserved&lt;/li&gt;
&lt;li&gt;Shutdown&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Step 2: Setup Partitions with the correct drive letters&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Launch Windows 10 Install disc / usb&lt;/li&gt;
&lt;li&gt;Shift+F10 once you see language select to bring up command prompt&lt;/li&gt;
&lt;li&gt;Launch &lt;code&gt;DISKPART&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;select volume with 512MB (ex: &lt;code&gt;select vol 0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;assign letter=G:&lt;/code&gt; (or any letter that isn’t taken that is NOT C:)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;exit&lt;/code&gt; OR If Windows operating system is NOT on C:&lt;/li&gt;
&lt;li&gt;&lt;code&gt;select volume&lt;/code&gt; with windows installation on it&lt;/li&gt;
&lt;li&gt;&lt;code&gt;assign letter=C:&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;exit&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Example output:&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;diskpart
select disk 0
list vol
select vol 0 &amp;lt;---500 MB Partition
assign letter=G:
select vol 1 &amp;lt;--- Large Partition with Windows Install on it
assign letter=C:
exit
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Partitions are done. Now time to fix problems with the “type” of partition – By forcing all partitions to be NTFS NT60&lt;/p&gt;
&lt;p&gt;&lt;code&gt;bootsect.exe /nt60 all /force&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Step 3: Copy Boot Records, Fix MBR, and Rebuild BCD&lt;/h4&gt;
&lt;p&gt;Rebuild new system reserved partition with EFI and regular boot files&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;bcdboot c:\Windows /s &amp;lt;boot letter of System Reserved Partion&amp;gt;: /f ALL
bcdboot c:\Windows /s G: /f ALL
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Now we can finally rebuild the bcd and master boot record like you see in so many online guides&lt;/li&gt;
&lt;li&gt;You can verify the system is seeing the windows installation by doing a &lt;code&gt;bootrec /scanos&lt;/code&gt; and then be running through the rest of the commands to do the rest of the repairs&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;bootrec /scanos &amp;lt;---Verify it sees the windows install
bootrec /fixmbr
bootrec /fixboot &amp;lt;----Pick the installation will mirror /scanos bootrec /rebuildbcd
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Reboot and you are done!&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Video&lt;/h2&gt;
&lt;div class=&quot;media-embed&quot;&gt;&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/F72D7uL6cZg&quot; title=&quot;YouTube video player&quot; loading=&quot;lazy&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded></item><item><title>Commiting Changes to Docker images and containers</title><link>https://christitus.com/commiting-docker-images/</link><guid isPermaLink="true">https://christitus.com/commiting-docker-images/</guid><description>&lt;p&gt;This is a walkthrough of how to commit changes to docker images and containers. You need to do this if you make configuration changes to any docker images. By committing changes to the docker images you can backup and clone them.&lt;/p&gt;
&lt;p&gt;Docker is a very powerful tool you can use to isolate applications, therefore, you won’t have them on a single server. However, some docker images don’t save changes to their container when a restart happens. You will notice that when a reboot or unexpected outage happens all your configuration will be gone since the creation of container. The Ubiquiti Unifi Controller docker image is a good example of this.&lt;/p&gt;
&lt;h2&gt;Here are the following commands to commit those changes to a new image&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;sudo docker ps -l&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Note: This shows all your containers you need to copy Container ID for the one you want to commit changes on.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo docker commit CONTAINER_ID_GOES_HERE IMAGENAME:TAG&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Example Syntax: sudo docker commit 520b0f024bf6 unifi:latest-06-21-2018&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/06/docker.webp&quot; alt=&quot;docker&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Now if you have any issues you can simply create a new container using the image you created above.&lt;/p&gt;
</description><pubDate>Thu, 21 Jun 2018 19:36:03 GMT</pubDate><content:encoded>&lt;p&gt;This is a walkthrough of how to commit changes to docker images and containers. You need to do this if you make configuration changes to any docker images. By committing changes to the docker images you can backup and clone them.&lt;/p&gt;
&lt;p&gt;Docker is a very powerful tool you can use to isolate applications, therefore, you won’t have them on a single server. However, some docker images don’t save changes to their container when a restart happens. You will notice that when a reboot or unexpected outage happens all your configuration will be gone since the creation of container. The Ubiquiti Unifi Controller docker image is a good example of this.&lt;/p&gt;
&lt;h2&gt;Here are the following commands to commit those changes to a new image&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;sudo docker ps -l&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Note: This shows all your containers you need to copy Container ID for the one you want to commit changes on.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo docker commit CONTAINER_ID_GOES_HERE IMAGENAME:TAG&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Example Syntax: sudo docker commit 520b0f024bf6 unifi:latest-06-21-2018&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/06/docker.webp&quot; alt=&quot;docker&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Now if you have any issues you can simply create a new container using the image you created above.&lt;/p&gt;
</content:encoded></item><item><title>Moving Unifi Access Point to another Unifi Controller</title><link>https://christitus.com/moving-unifi-access-point/</link><guid isPermaLink="true">https://christitus.com/moving-unifi-access-point/</guid><description>&lt;p&gt;This walkthrough goes over moving Unifi access point to another Unifi controller. To remove APs from a Unifi Controller you need to reset the APs and then either discover them or manually SSH set-inform the devices.&lt;/p&gt;
&lt;h2&gt;First Reset the AP&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Use Terminal or SSH (Either in existing Controller -&amp;gt; Manage Device -&amp;gt; Open Terminal or Putty)
&lt;ul&gt;
&lt;li&gt;Type: &lt;code&gt;syswrapper.sh restore-default&lt;/code&gt;&lt;br /&gt;
OR&lt;/li&gt;
&lt;li&gt;Reset the Unifi AP by the old paperclip method if you can’t putty or use existing controller&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/06/reset-unifi.webp&quot; alt=&quot;unifi reset&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Second discover device or manually set-inform&lt;/h3&gt;
&lt;p&gt;On the new controller try to discover the now factory reset APs and with any luck they will show up. However in big environments I typically can never get them to be discovered so I will show you the manual method.&lt;/p&gt;
&lt;p&gt;Find the IP of the AP (You can easily grab this by looking at old controller OR using advanced IP Scanner. Note: match MAC address if scanning)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Putty into the AP (Launch Putty type IP, and Username/Password is factory ubnt/ubnt)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;set-inform http://ip-of-controller:8080/inform&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Adopt AP in new controller webpage&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Type AGAIN: &lt;code&gt;set-inform http://ip-of-controller:8080/inform&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/06/unifi-set-inform.webp&quot; alt=&quot;unifi set-inform&quot; /&gt;&lt;/p&gt;
&lt;p&gt;We are now done moving Unifi access point on to the new Controller, and as a result, will be in the device list. From here you will be able to manage it, upgrade firmware, and do all the configuration options needed.&lt;/p&gt;
</description><pubDate>Thu, 21 Jun 2018 15:57:35 GMT</pubDate><content:encoded>&lt;p&gt;This walkthrough goes over moving Unifi access point to another Unifi controller. To remove APs from a Unifi Controller you need to reset the APs and then either discover them or manually SSH set-inform the devices.&lt;/p&gt;
&lt;h2&gt;First Reset the AP&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Use Terminal or SSH (Either in existing Controller -&amp;gt; Manage Device -&amp;gt; Open Terminal or Putty)
&lt;ul&gt;
&lt;li&gt;Type: &lt;code&gt;syswrapper.sh restore-default&lt;/code&gt;&lt;br /&gt;
OR&lt;/li&gt;
&lt;li&gt;Reset the Unifi AP by the old paperclip method if you can’t putty or use existing controller&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/06/reset-unifi.webp&quot; alt=&quot;unifi reset&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Second discover device or manually set-inform&lt;/h3&gt;
&lt;p&gt;On the new controller try to discover the now factory reset APs and with any luck they will show up. However in big environments I typically can never get them to be discovered so I will show you the manual method.&lt;/p&gt;
&lt;p&gt;Find the IP of the AP (You can easily grab this by looking at old controller OR using advanced IP Scanner. Note: match MAC address if scanning)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Putty into the AP (Launch Putty type IP, and Username/Password is factory ubnt/ubnt)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;set-inform http://ip-of-controller:8080/inform&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Adopt AP in new controller webpage&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Type AGAIN: &lt;code&gt;set-inform http://ip-of-controller:8080/inform&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2018/06/unifi-set-inform.webp&quot; alt=&quot;unifi set-inform&quot; /&gt;&lt;/p&gt;
&lt;p&gt;We are now done moving Unifi access point on to the new Controller, and as a result, will be in the device list. From here you will be able to manage it, upgrade firmware, and do all the configuration options needed.&lt;/p&gt;
</content:encoded></item><item><title>How to remotely access Window Server 2016 Core in PowerShell </title><link>https://christitus.com/windows-server-2016-core-remote/</link><guid isPermaLink="true">https://christitus.com/windows-server-2016-core-remote/</guid><description>&lt;p&gt;This walkthrough shows you how to remotely access Window Server 2016 Core in PowerShell. Windows Server 2016 Core is a great minimal install of windows server but doesn’t come with any desktop experience. This means we will be doing everything via command prompt or PowerShell for the initial setup. The great thing is you use Powershell and RSAT from a Windows 10 machine and working on the server is a snap. You get the ease of administration and the reliability and compact design of Core.&lt;/p&gt;
&lt;h2&gt;Enable PSRemote (Powershell Remote)&lt;/h2&gt;
&lt;p&gt;On Host – Windows Server 2016 Core&lt;br /&gt;
&lt;code&gt;Enable-PSRemoting -Force&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Your Workstation
&lt;code&gt;Enter-PSSession -ComputerName 10.0.0.2&lt;/code&gt;
&lt;em&gt;Note: you can use netbios name here as well&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;For any troubleshooting we will need to do make sure the initial setup is done by typing, &lt;code&gt;sconfig&lt;/code&gt; once this has been completed you will have set the static IP, opened remote access, activated windows, and ran windows update.&lt;/p&gt;
</description><pubDate>Wed, 20 Jun 2018 20:30:49 GMT</pubDate><content:encoded>&lt;p&gt;This walkthrough shows you how to remotely access Window Server 2016 Core in PowerShell. Windows Server 2016 Core is a great minimal install of windows server but doesn’t come with any desktop experience. This means we will be doing everything via command prompt or PowerShell for the initial setup. The great thing is you use Powershell and RSAT from a Windows 10 machine and working on the server is a snap. You get the ease of administration and the reliability and compact design of Core.&lt;/p&gt;
&lt;h2&gt;Enable PSRemote (Powershell Remote)&lt;/h2&gt;
&lt;p&gt;On Host – Windows Server 2016 Core&lt;br /&gt;
&lt;code&gt;Enable-PSRemoting -Force&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Your Workstation
&lt;code&gt;Enter-PSSession -ComputerName 10.0.0.2&lt;/code&gt;
&lt;em&gt;Note: you can use netbios name here as well&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;For any troubleshooting we will need to do make sure the initial setup is done by typing, &lt;code&gt;sconfig&lt;/code&gt; once this has been completed you will have set the static IP, opened remote access, activated windows, and ran windows update.&lt;/p&gt;
</content:encoded></item><item><title>Changing file permissions using PowerShell</title><link>https://christitus.com/changing-file-permissions/</link><guid isPermaLink="true">https://christitus.com/changing-file-permissions/</guid><description>&lt;p&gt;Use the following script for changing file permissions using PowerShell. I use this script when command line takeown and icacls fail. Obviously, run from an elevated PowerShell prompt or by typing ‘powershell’ from elevated cmd.&lt;/p&gt;
&lt;h2&gt;The Script&lt;/h2&gt;
&lt;p&gt;Change $folder to the base directory you want for changing permissions.
&lt;em&gt;Please note, you can use network UNC paths for this or a simple C:.&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$folder = &quot;\\homeserver\users\&quot;
$users = get-childitem $folder
Foreach ($user in $users) {
$acl = Get-Acl $user.FullName
$acl.SetOwner([System.Security.Principal.NTAccount]&quot;$user&quot;)
set-acl $user.FullName $acl -Verbose
$subFolders = Get-ChildItem $user.FullName -Directory -Recurse
Foreach ($subFolder in $subFolders) {
$acl = Get-Acl $subFolder.FullName
$acl.SetOwner([System.Security.Principal.NTAccount]&quot;$user&quot;)
set-acl $subFolder.FullName $acl -Verbose
}
$subFiles = Get-ChildItem $user.FullName -File -Recurse
Foreach ($subFile in $subFiles) {
$acl = Get-Acl $subFile.FullName
$acl.SetOwner([System.Security.Principal.NTAccount]&quot;$user&quot;)
set-acl $subFile.FullName $acl -Verbose
}
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I’ve never had takeown fail on local disks, but I have found that I needed to resort to using a PowerShell script when doing this through a network location. It’s a very powerful script, however always be careful when running this. Be sure to always test this in a subdirectory first. This can be catastrophic for a company with millions of files and folder to reset the permission on, therefore be very careful!&lt;/p&gt;
</description><pubDate>Thu, 14 Jun 2018 15:46:23 GMT</pubDate><content:encoded>&lt;p&gt;Use the following script for changing file permissions using PowerShell. I use this script when command line takeown and icacls fail. Obviously, run from an elevated PowerShell prompt or by typing ‘powershell’ from elevated cmd.&lt;/p&gt;
&lt;h2&gt;The Script&lt;/h2&gt;
&lt;p&gt;Change $folder to the base directory you want for changing permissions.
&lt;em&gt;Please note, you can use network UNC paths for this or a simple C:.&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$folder = &quot;\\homeserver\users\&quot;
$users = get-childitem $folder
Foreach ($user in $users) {
$acl = Get-Acl $user.FullName
$acl.SetOwner([System.Security.Principal.NTAccount]&quot;$user&quot;)
set-acl $user.FullName $acl -Verbose
$subFolders = Get-ChildItem $user.FullName -Directory -Recurse
Foreach ($subFolder in $subFolders) {
$acl = Get-Acl $subFolder.FullName
$acl.SetOwner([System.Security.Principal.NTAccount]&quot;$user&quot;)
set-acl $subFolder.FullName $acl -Verbose
}
$subFiles = Get-ChildItem $user.FullName -File -Recurse
Foreach ($subFile in $subFiles) {
$acl = Get-Acl $subFile.FullName
$acl.SetOwner([System.Security.Principal.NTAccount]&quot;$user&quot;)
set-acl $subFile.FullName $acl -Verbose
}
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I’ve never had takeown fail on local disks, but I have found that I needed to resort to using a PowerShell script when doing this through a network location. It’s a very powerful script, however always be careful when running this. Be sure to always test this in a subdirectory first. This can be catastrophic for a company with millions of files and folder to reset the permission on, therefore be very careful!&lt;/p&gt;
</content:encoded></item><item><title>Python script to print out specific results from an API JSON call</title><link>https://christitus.com/api-json-call/</link><guid isPermaLink="true">https://christitus.com/api-json-call/</guid><description>&lt;p&gt;The following is a Python script to print out specific results from an API JSON call from a website. This basic syntax will allow you to create a value to use.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import json, urllib2 # Import libraries we will be using
url = urllib2.urlopen(&apos;http://baseurl.com:port/api.json&apos;) # Pull webpage into a variable
result = json.load(url) # Format the URL for JSON
allhash = result[&apos;hashrate&apos;][&apos;total&apos;] # Pull a specific array of values
checkhash= allhash[0] # Specify a single value in the array
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Making an API JSON call&lt;/h2&gt;
&lt;p&gt;Using this basic script this will make a call from the JSON API on a website. I wanted a specific value 2 levels down. To determine which value you want to grab remember { open bracket will expand a level and a } close bracket will go back a level.&lt;/p&gt;
&lt;p&gt;For instance, using this api.json&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{&quot;hashrate&quot;:{&quot;threads&quot;:[[632.8,629.7,631.0],[531.6,524.6,518.4],[631.9,628.6,625.0],[501.6,520.4,512.0]],&quot;total&quot;:[2297.8,2303.2,2286.4],&quot;highest&quot;:2339.2},&quot;results&quot;:{&quot;diff_current&quot;:100001,&quot;shares_good&quot;:281,&quot;shares_total&quot;:301,&quot;avg_time&quot;:49.9,&quot;hashes_total&quot;:32000515,&quot;best&quot;:[11141633,10328800,8258255,8129845,4476110,3954464,3795403,3425658,3208501,3130523],&quot;error_log&quot;:[{&quot;count&quot;:18,&quot;last_seen&quot;:1511905084,&quot;text&quot;:&quot;Job not found.&quot;}]},&quot;connection&quot;:{&quot;pool&quot;: &quot;cryptonight.usa.nicehash.com:3355&quot;,&quot;uptime&quot;:15018,&quot;ping&quot;:109,&quot;error_log&quot;:[]}}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;In Closing&lt;/h3&gt;
&lt;p&gt;Using the above API readout you can see I go into the hashrate brackets and pull the values for “total”. This creates an array and not a single string. So to make a call for the second value in “total” you would change the python code from allhash[0] to allhash[1]. You can use this to print out the values from the script, put them in a variable to be displayed on a website, or use it in a Nagios script for monitoring. The options are limitless.&lt;/p&gt;
</description><pubDate>Tue, 28 Nov 2017 22:03:53 GMT</pubDate><content:encoded>&lt;p&gt;The following is a Python script to print out specific results from an API JSON call from a website. This basic syntax will allow you to create a value to use.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import json, urllib2 # Import libraries we will be using
url = urllib2.urlopen(&apos;http://baseurl.com:port/api.json&apos;) # Pull webpage into a variable
result = json.load(url) # Format the URL for JSON
allhash = result[&apos;hashrate&apos;][&apos;total&apos;] # Pull a specific array of values
checkhash= allhash[0] # Specify a single value in the array
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Making an API JSON call&lt;/h2&gt;
&lt;p&gt;Using this basic script this will make a call from the JSON API on a website. I wanted a specific value 2 levels down. To determine which value you want to grab remember { open bracket will expand a level and a } close bracket will go back a level.&lt;/p&gt;
&lt;p&gt;For instance, using this api.json&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{&quot;hashrate&quot;:{&quot;threads&quot;:[[632.8,629.7,631.0],[531.6,524.6,518.4],[631.9,628.6,625.0],[501.6,520.4,512.0]],&quot;total&quot;:[2297.8,2303.2,2286.4],&quot;highest&quot;:2339.2},&quot;results&quot;:{&quot;diff_current&quot;:100001,&quot;shares_good&quot;:281,&quot;shares_total&quot;:301,&quot;avg_time&quot;:49.9,&quot;hashes_total&quot;:32000515,&quot;best&quot;:[11141633,10328800,8258255,8129845,4476110,3954464,3795403,3425658,3208501,3130523],&quot;error_log&quot;:[{&quot;count&quot;:18,&quot;last_seen&quot;:1511905084,&quot;text&quot;:&quot;Job not found.&quot;}]},&quot;connection&quot;:{&quot;pool&quot;: &quot;cryptonight.usa.nicehash.com:3355&quot;,&quot;uptime&quot;:15018,&quot;ping&quot;:109,&quot;error_log&quot;:[]}}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;In Closing&lt;/h3&gt;
&lt;p&gt;Using the above API readout you can see I go into the hashrate brackets and pull the values for “total”. This creates an array and not a single string. So to make a call for the second value in “total” you would change the python code from allhash[0] to allhash[1]. You can use this to print out the values from the script, put them in a variable to be displayed on a website, or use it in a Nagios script for monitoring. The options are limitless.&lt;/p&gt;
</content:encoded></item><item><title>Taking Databases Offline and/or Dropping through SQL Query</title><link>https://christitus.com/taking-databases-offline-sql-query/</link><guid isPermaLink="true">https://christitus.com/taking-databases-offline-sql-query/</guid><description>&lt;p&gt;The following SQL query is for taking databases offline, drop the offline databases, or bring them all back online. This affects every database in your SQL instance, so be very careful when using these. The following three queries will save you a considerable amount of time if repurposing an instance.&lt;/p&gt;
&lt;h2&gt;Taking databases offline and then dropping them&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;use master;
declare @nsql nvarchar(max);
select @nsql=coalesce(@nsql+CHAR(13)+CHAR(10),&apos;&apos;)+
&apos;ALTER DATABASE [&apos;+name+&apos;] SET OFFLINE WITH NO_WAIT;&apos;
from master..sysdatabases where sid &amp;lt;&amp;gt; 0x01
exec (@nsql)`
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Once all databases are offline you can drop them to clear out the entire instance with this SQL query.&lt;br /&gt;
&lt;em&gt;Note: This is extremely destructive so please use this with care.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;&lt;em&gt;WARNING&lt;/em&gt; Running this WILL DESTROY ALL DATABASES&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;use master;
declare @nsql nvarchar(max);
select @nsql=coalesce(@nsql+CHAR(13)+CHAR(10),&apos;&apos;)+
&apos;DROP DATABASE [&apos;+name+&apos;];&apos;
from master..sysdatabases where sid &amp;lt;&amp;gt; 0x01
exec (@nsql)
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Use the following SQL query to take all databases online&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;use master;
declare @nsql nvarchar(max);
select @nsql=coalesce(@nsql+CHAR(13)+CHAR(10),&apos;&apos;)+
&apos;ALTER DATABASE [&apos;+name+&apos;] SET ONLINE WITH NO_WAIT;&apos;
from master..sysdatabases where sid &amp;lt;&amp;gt; 0x01
exec (@nsql)
&lt;/code&gt;&lt;/pre&gt;
</description><pubDate>Thu, 31 Aug 2017 17:00:08 GMT</pubDate><content:encoded>&lt;p&gt;The following SQL query is for taking databases offline, drop the offline databases, or bring them all back online. This affects every database in your SQL instance, so be very careful when using these. The following three queries will save you a considerable amount of time if repurposing an instance.&lt;/p&gt;
&lt;h2&gt;Taking databases offline and then dropping them&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;use master;
declare @nsql nvarchar(max);
select @nsql=coalesce(@nsql+CHAR(13)+CHAR(10),&apos;&apos;)+
&apos;ALTER DATABASE [&apos;+name+&apos;] SET OFFLINE WITH NO_WAIT;&apos;
from master..sysdatabases where sid &amp;lt;&amp;gt; 0x01
exec (@nsql)`
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Once all databases are offline you can drop them to clear out the entire instance with this SQL query.&lt;br /&gt;
&lt;em&gt;Note: This is extremely destructive so please use this with care.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;&lt;em&gt;WARNING&lt;/em&gt; Running this WILL DESTROY ALL DATABASES&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;use master;
declare @nsql nvarchar(max);
select @nsql=coalesce(@nsql+CHAR(13)+CHAR(10),&apos;&apos;)+
&apos;DROP DATABASE [&apos;+name+&apos;];&apos;
from master..sysdatabases where sid &amp;lt;&amp;gt; 0x01
exec (@nsql)
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Use the following SQL query to take all databases online&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;use master;
declare @nsql nvarchar(max);
select @nsql=coalesce(@nsql+CHAR(13)+CHAR(10),&apos;&apos;)+
&apos;ALTER DATABASE [&apos;+name+&apos;] SET ONLINE WITH NO_WAIT;&apos;
from master..sysdatabases where sid &amp;lt;&amp;gt; 0x01
exec (@nsql)
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Get rid of Amazon Fire Launcher without root access</title><link>https://christitus.com/amazon-fire-launcher/</link><guid isPermaLink="true">https://christitus.com/amazon-fire-launcher/</guid><description>&lt;p&gt;This How-To shows you how to get rid of Amazon Fire Launcher without root access. Amazon Fire 5.3.3 OS can’t be downgraded or rooted, and since the Fire tablet line auto-updates, this leads many folks with the horrible experience of using the Fire OS with their gimped store/subscriptions.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This 2017 procedure is retained for historical reference. The SuperTool
download is gone, and LauncherHijack is deprecated and may not install on
current Fire OS releases.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The process to use Google Services and Googles Store instead is a bit involved but entirely doable on the Fire Tablets without having to root it. From then on, you don’t have to navigate the out of date and limited Amazon App Store.&lt;/p&gt;
&lt;h2&gt;Here is the process&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Enable ADP USB Debugging (Settings -&amp;gt; Device -&amp;gt; Tap Serial 10 Times -&amp;gt; Select Developer options -&amp;gt; Turn ADP Debugging ON)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2017/07/ADP-Enable.webp&quot; alt=&quot;ADP Enable&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enable Downloads from Unknown Sources (Settings -&amp;gt; Security -&amp;gt; Allow Unknown Sources ON)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2017/07/Unknown-Sources.webp&quot; alt=&quot;Unknown Sources&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Install Google Play Services
&lt;ul&gt;
&lt;li&gt;Plug Device into USB on Computer and run the Supertool as Administrator
&lt;ul&gt;
&lt;li&gt;On Tablet Select Always Allow this computer and press OK&lt;/li&gt;
&lt;li&gt;The original SuperTool ZIP download is no longer available.&lt;/li&gt;
&lt;li&gt;Run 1-Amazon-Fire-5th-gen.bat&lt;/li&gt;
&lt;li&gt;Select Install Google Play Services/Framework&lt;/li&gt;
&lt;li&gt;Wait for it to Finish and Close the program&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Launch Google Play using Search on Home Screen&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2017/07/Search-Play.webp&quot; alt=&quot;Search Play&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sign-in to Google&lt;/li&gt;
&lt;li&gt;Update Google Play Services (Note: you can type Google Play Services in or launch update from the notifications tray — This will take 5-10 minutes to update)&lt;/li&gt;
&lt;li&gt;Install Nova Launcher from Play next&lt;/li&gt;
&lt;li&gt;The former LauncherHijack APK is no longer distributed as a supported
download. Its archived source remains at
&lt;a href=&quot;https://github.com/BaronKiko/LauncherHijack&quot;&gt;https://github.com/BaronKiko/LauncherHijack&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Note: The project owner has deprecated LauncherHijack and recommends building
it from source with a different package name only if you understand the Android
build process.&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Install the HijackLauncherV2.apk and Open it&lt;/li&gt;
&lt;li&gt;Select Nova Launcher in the App and hit Ok at the prompt&lt;/li&gt;
&lt;li&gt;Go back to settings -&amp;gt; Accessibility -&amp;gt;To detect home button press -&amp;gt; Switch to On&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2017/07/HijackLauncher.webp&quot; alt=&quot;Hijack Launcher&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Finished, Enjoy being able to use Google Services on your Amazon Fire!&lt;/strong&gt;&lt;/p&gt;
</description><pubDate>Mon, 10 Jul 2017 21:46:28 GMT</pubDate><content:encoded>&lt;p&gt;This How-To shows you how to get rid of Amazon Fire Launcher without root access. Amazon Fire 5.3.3 OS can’t be downgraded or rooted, and since the Fire tablet line auto-updates, this leads many folks with the horrible experience of using the Fire OS with their gimped store/subscriptions.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This 2017 procedure is retained for historical reference. The SuperTool
download is gone, and LauncherHijack is deprecated and may not install on
current Fire OS releases.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The process to use Google Services and Googles Store instead is a bit involved but entirely doable on the Fire Tablets without having to root it. From then on, you don’t have to navigate the out of date and limited Amazon App Store.&lt;/p&gt;
&lt;h2&gt;Here is the process&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Enable ADP USB Debugging (Settings -&amp;gt; Device -&amp;gt; Tap Serial 10 Times -&amp;gt; Select Developer options -&amp;gt; Turn ADP Debugging ON)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2017/07/ADP-Enable.webp&quot; alt=&quot;ADP Enable&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enable Downloads from Unknown Sources (Settings -&amp;gt; Security -&amp;gt; Allow Unknown Sources ON)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2017/07/Unknown-Sources.webp&quot; alt=&quot;Unknown Sources&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Install Google Play Services
&lt;ul&gt;
&lt;li&gt;Plug Device into USB on Computer and run the Supertool as Administrator
&lt;ul&gt;
&lt;li&gt;On Tablet Select Always Allow this computer and press OK&lt;/li&gt;
&lt;li&gt;The original SuperTool ZIP download is no longer available.&lt;/li&gt;
&lt;li&gt;Run 1-Amazon-Fire-5th-gen.bat&lt;/li&gt;
&lt;li&gt;Select Install Google Play Services/Framework&lt;/li&gt;
&lt;li&gt;Wait for it to Finish and Close the program&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Launch Google Play using Search on Home Screen&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2017/07/Search-Play.webp&quot; alt=&quot;Search Play&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sign-in to Google&lt;/li&gt;
&lt;li&gt;Update Google Play Services (Note: you can type Google Play Services in or launch update from the notifications tray — This will take 5-10 minutes to update)&lt;/li&gt;
&lt;li&gt;Install Nova Launcher from Play next&lt;/li&gt;
&lt;li&gt;The former LauncherHijack APK is no longer distributed as a supported
download. Its archived source remains at
&lt;a href=&quot;https://github.com/BaronKiko/LauncherHijack&quot;&gt;https://github.com/BaronKiko/LauncherHijack&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Note: The project owner has deprecated LauncherHijack and recommends building
it from source with a different package name only if you understand the Android
build process.&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Install the HijackLauncherV2.apk and Open it&lt;/li&gt;
&lt;li&gt;Select Nova Launcher in the App and hit Ok at the prompt&lt;/li&gt;
&lt;li&gt;Go back to settings -&amp;gt; Accessibility -&amp;gt;To detect home button press -&amp;gt; Switch to On&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/2017/07/HijackLauncher.webp&quot; alt=&quot;Hijack Launcher&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Finished, Enjoy being able to use Google Services on your Amazon Fire!&lt;/strong&gt;&lt;/p&gt;
</content:encoded></item><item><title>Report Nvidia-smi Temperature to Nagios</title><link>https://christitus.com/nvidia-smi-nagios/</link><guid isPermaLink="true">https://christitus.com/nvidia-smi-nagios/</guid><description>&lt;p&gt;Here is a custom script that reports the nvidia-smi temperature of the Nvidia cards in your system using NRPE. Conversely,  NRPE performs much better than NCPA and my protocol of choice.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;*Note: Install NRPE to your&lt;/em&gt; Linux &lt;em&gt;box first, and create this file (gpu_temp.sh) in your /&lt;em&gt;usr&lt;/em&gt;/lib/&lt;em&gt;nagios&lt;/em&gt;/plugins directory for Nagios Core 4+&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Nagios NRPE Query Command&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;check_nrpe!gpu_temp.sh&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This will only query the first GPU that is found via nvidia-smi CLI command. It will do warnings and alerts at the given thresholds.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2017/06/script.webp&quot; alt=&quot;nvidia smi nagios&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;The gpu_temp.sh Script&lt;/h3&gt;
&lt;p&gt;Use this script to query nvidia-smi, thus reporting the temp of the card.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;############################################
## Sample nvidia commands to query gpu
##
##nvidia-smi -q -d TEMPERATURE | grep &quot;GPU Current Temp&quot; | awk &apos;{print $5}&apos;
##nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader
##nvidia-smi | grep &apos;[0-9][0-9]C&apos; | awk &apos;{print $3}&apos; | sed &apos;s/C//&apos;
############################################`
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here is the script code:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash
gpu_temp=`nvidia-smi | grep &apos;[0-9][0-9]C&apos; | awk &apos;{print $3}&apos;`
case $gpu_temp in
[1-70]*)
echo &quot;OK - $gpu_temp in normal operating range.&quot;
exit 0
;;
[71-80]*)
echo &quot;WARNING - $gpu_temp in high operating range.&quot;
exit 1
;;
[81-100]*)
echo &quot;CRITICAL - $gpu_temp in extreme operating range. Shutdown ASAP!&quot;
exit 2
;;
*)
echo &quot;UNKNOWN - $gpu_temp is current temperature.&quot;
exit 3
;;
esac`
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You will need to modify this as the nvidia-smi tool will be updated in the future and the grep command will have to be reconfigured if due to any output changes.&lt;/p&gt;
</description><pubDate>Sat, 24 Jun 2017 04:14:45 GMT</pubDate><content:encoded>&lt;p&gt;Here is a custom script that reports the nvidia-smi temperature of the Nvidia cards in your system using NRPE. Conversely,  NRPE performs much better than NCPA and my protocol of choice.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;*Note: Install NRPE to your&lt;/em&gt; Linux &lt;em&gt;box first, and create this file (gpu_temp.sh) in your /&lt;em&gt;usr&lt;/em&gt;/lib/&lt;em&gt;nagios&lt;/em&gt;/plugins directory for Nagios Core 4+&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Nagios NRPE Query Command&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;check_nrpe!gpu_temp.sh&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This will only query the first GPU that is found via nvidia-smi CLI command. It will do warnings and alerts at the given thresholds.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2017/06/script.webp&quot; alt=&quot;nvidia smi nagios&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;The gpu_temp.sh Script&lt;/h3&gt;
&lt;p&gt;Use this script to query nvidia-smi, thus reporting the temp of the card.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;############################################
## Sample nvidia commands to query gpu
##
##nvidia-smi -q -d TEMPERATURE | grep &quot;GPU Current Temp&quot; | awk &apos;{print $5}&apos;
##nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader
##nvidia-smi | grep &apos;[0-9][0-9]C&apos; | awk &apos;{print $3}&apos; | sed &apos;s/C//&apos;
############################################`
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here is the script code:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash
gpu_temp=`nvidia-smi | grep &apos;[0-9][0-9]C&apos; | awk &apos;{print $3}&apos;`
case $gpu_temp in
[1-70]*)
echo &quot;OK - $gpu_temp in normal operating range.&quot;
exit 0
;;
[71-80]*)
echo &quot;WARNING - $gpu_temp in high operating range.&quot;
exit 1
;;
[81-100]*)
echo &quot;CRITICAL - $gpu_temp in extreme operating range. Shutdown ASAP!&quot;
exit 2
;;
*)
echo &quot;UNKNOWN - $gpu_temp is current temperature.&quot;
exit 3
;;
esac`
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You will need to modify this as the nvidia-smi tool will be updated in the future and the grep command will have to be reconfigured if due to any output changes.&lt;/p&gt;
</content:encoded></item><item><title>Troubleshooting Nagios 4 Core Installation</title><link>https://christitus.com/troubleshooting-nagios/</link><guid isPermaLink="true">https://christitus.com/troubleshooting-nagios/</guid><description>&lt;p&gt;Use the following command to verify you have all your config and command files correct when troubleshooting Nagios core installation. This will give you a readout of any configuration errors, thus giving you the ability to fix it on the fly.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;I’d recommend making an alias in your .bashrc so you can just type:&lt;code&gt;testnag&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Here is an example of the alias I use&lt;/p&gt;
&lt;p&gt;&lt;code&gt;alias testnag=&apos;/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg&apos;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;By using these tips it will cut down on your install and configuration times considerably. You can also make changes and test them before restarting the service, therefore avoiding any potential downtime in your monitoring.&lt;/p&gt;
</description><pubDate>Wed, 21 Jun 2017 17:13:44 GMT</pubDate><content:encoded>&lt;p&gt;Use the following command to verify you have all your config and command files correct when troubleshooting Nagios core installation. This will give you a readout of any configuration errors, thus giving you the ability to fix it on the fly.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;I’d recommend making an alias in your .bashrc so you can just type:&lt;code&gt;testnag&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Here is an example of the alias I use&lt;/p&gt;
&lt;p&gt;&lt;code&gt;alias testnag=&apos;/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg&apos;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;By using these tips it will cut down on your install and configuration times considerably. You can also make changes and test them before restarting the service, therefore avoiding any potential downtime in your monitoring.&lt;/p&gt;
</content:encoded></item><item><title>Spooler subsystem app high CPU usage on Windows 10</title><link>https://christitus.com/spooler-subsystem-app-cpu-usage/</link><guid isPermaLink="true">https://christitus.com/spooler-subsystem-app-cpu-usage/</guid><description>&lt;p&gt;Perform the following steps to solve the Spooler subsystem app high CPU usage. I recently updated a computer to Windows 10 and found that the spooler service was using a lot of resources.&lt;/p&gt;
&lt;h2&gt;The Solution&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Open up command prompt as administrator and type the following&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;net stop spooler
del /Q /F /S &quot;%systemroot%\System32\Spool\Printers\*.*&quot;
net start spooler
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Now check task manager again and verify the Spooler subsystem app is now at 0% usage. Alternatively, you can disable the spooler service in services (Start -&amp;gt; Run -&amp;gt; Type: services.msc) and this will make sure it doesn’t run, however, it also means you can’t print.&lt;/p&gt;
</description><pubDate>Tue, 02 May 2017 19:53:16 GMT</pubDate><content:encoded>&lt;p&gt;Perform the following steps to solve the Spooler subsystem app high CPU usage. I recently updated a computer to Windows 10 and found that the spooler service was using a lot of resources.&lt;/p&gt;
&lt;h2&gt;The Solution&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Open up command prompt as administrator and type the following&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;net stop spooler
del /Q /F /S &quot;%systemroot%\System32\Spool\Printers\*.*&quot;
net start spooler
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Now check task manager again and verify the Spooler subsystem app is now at 0% usage. Alternatively, you can disable the spooler service in services (Start -&amp;gt; Run -&amp;gt; Type: services.msc) and this will make sure it doesn’t run, however, it also means you can’t print.&lt;/p&gt;
</content:encoded></item><item><title>Launching a startup program to run as administrator</title><link>https://christitus.com/run-as-administrator/</link><guid isPermaLink="true">https://christitus.com/run-as-administrator/</guid><description>&lt;p&gt;The following script shows you how to launch a startup program to run as administrator in Windows 10. This fixes many programs that require elevation and you don’t want to launch manually every time.&lt;/p&gt;
&lt;p&gt;Almost every online tutorial I came across said to run it as a scheduled task. This is very cumbersome and I hate it, however using the following method is easier and saves you time.&lt;/p&gt;
&lt;p&gt;Create a Text file in shell:startup and put the following in it.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Set WshShell = CreateObject(&quot;WScript.Shell&quot; ) 
WshShell.Run chr(34) &amp;amp; &quot;C:\Program Files (x86)\File\Program.exe&quot; &amp;amp; Chr(34), 0 
Set WshShell = Nothing
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now save the file as ProgramName.vbs&lt;/p&gt;
&lt;p&gt;You are done! Reboot and see that program launch.&lt;/p&gt;
</description><pubDate>Mon, 27 Mar 2017 02:26:36 GMT</pubDate><content:encoded>&lt;p&gt;The following script shows you how to launch a startup program to run as administrator in Windows 10. This fixes many programs that require elevation and you don’t want to launch manually every time.&lt;/p&gt;
&lt;p&gt;Almost every online tutorial I came across said to run it as a scheduled task. This is very cumbersome and I hate it, however using the following method is easier and saves you time.&lt;/p&gt;
&lt;p&gt;Create a Text file in shell:startup and put the following in it.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Set WshShell = CreateObject(&quot;WScript.Shell&quot; ) 
WshShell.Run chr(34) &amp;amp; &quot;C:\Program Files (x86)\File\Program.exe&quot; &amp;amp; Chr(34), 0 
Set WshShell = Nothing
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now save the file as ProgramName.vbs&lt;/p&gt;
&lt;p&gt;You are done! Reboot and see that program launch.&lt;/p&gt;
</content:encoded></item><item><title>How to choose DNS Server by benchmarking them</title><link>https://christitus.com/benchmark-dns-server/</link><guid isPermaLink="true">https://christitus.com/benchmark-dns-server/</guid><description>&lt;p&gt;By default, your DNS Server is set to your ISP’s DNS and this SLOWS down your internet, due to the fact, they are poorly managed and have horrid performance. This shows you how to choose the fastest DNS Server, but results will vary depending on the location. Running this benchmark will tell you which ones are the best to use.&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Finding the Fastest&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Go to &lt;a href=&quot;https://www.grc.com/dns/benchmark.htm&quot;&gt;https://www.grc.com/dns/benchmark.htm&lt;/a&gt; and download the benchmark tool. From the list make sure you put in all your DNS Servers you want to test. Level3, Google, OpenDNS, and the usual suspects are already in there. I also recommend right-clicking and removing the dead or stale DNS Server. I tossed in free DNS Filtering servers like Norton ConnectSafe and Comodo Secure DNS as well. These performed the worst in speed tests and I recommend not using them in a business environment. If you need DNS filtering and have the budget using OpenDNS (Cisco Umbrella) is going to be your best bet.&lt;/p&gt;
&lt;p&gt;Here are my results, Enjoy!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2017/03/dnsresults.webp&quot; alt=&quot;DNS Results&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Red = Cached Time, Green = Uncached Time, and Blue = dotcom Time&lt;/li&gt;
&lt;li&gt;Grey Dots = Filters bad domain names by default, Green Dots = No filtering&lt;/li&gt;
&lt;/ul&gt;
</description><pubDate>Thu, 09 Mar 2017 17:35:18 GMT</pubDate><content:encoded>&lt;p&gt;By default, your DNS Server is set to your ISP’s DNS and this SLOWS down your internet, due to the fact, they are poorly managed and have horrid performance. This shows you how to choose the fastest DNS Server, but results will vary depending on the location. Running this benchmark will tell you which ones are the best to use.&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Finding the Fastest&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Go to &lt;a href=&quot;https://www.grc.com/dns/benchmark.htm&quot;&gt;https://www.grc.com/dns/benchmark.htm&lt;/a&gt; and download the benchmark tool. From the list make sure you put in all your DNS Servers you want to test. Level3, Google, OpenDNS, and the usual suspects are already in there. I also recommend right-clicking and removing the dead or stale DNS Server. I tossed in free DNS Filtering servers like Norton ConnectSafe and Comodo Secure DNS as well. These performed the worst in speed tests and I recommend not using them in a business environment. If you need DNS filtering and have the budget using OpenDNS (Cisco Umbrella) is going to be your best bet.&lt;/p&gt;
&lt;p&gt;Here are my results, Enjoy!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2017/03/dnsresults.webp&quot; alt=&quot;DNS Results&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Red = Cached Time, Green = Uncached Time, and Blue = dotcom Time&lt;/li&gt;
&lt;li&gt;Grey Dots = Filters bad domain names by default, Green Dots = No filtering&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Cloud migration hosting in Google, Amazon, or Microsoft</title><link>https://christitus.com/cloud-migration/</link><guid isPermaLink="true">https://christitus.com/cloud-migration/</guid><description>&lt;h2&gt;Moving to the Cloud&lt;/h2&gt;
&lt;p&gt;The following article outlines what it takes for a cloud migration to Google Cloud Compute, Amazon Web Services, or Microsoft Azure means. Most businesses want to move to the “cloud” but have no idea what that means. If you’re a small business you typically have a couple computers scattered around with one storage device. If you’re a medium or large business you probably already have several servers at a location in a contract. Moving to the cloud is often pitched to businesses using Software-as-a-Service replacing the current system with a web application that runs through your browser. While this is ideal, in most instances it isn’t practical. So you keep paying for a bloated IT infrastructure that is dated, isn’t as reliable, and unable to change with your business needs.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2017/02/pc-solution.webp&quot; alt=&quot;PC Solution&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Performing a Cloud Migration&lt;/h3&gt;
&lt;p&gt;Leverage Google Cloud Compute, Amazon Web Services, or Microsoft Azure to perform a cloud migration. Moving your servers will often end up costing between $100 – $400 per server a month depending on your environment. When you factor in that there is no capital expenditure, maintenance, or power costs this is a far cheaper solution than your current environment. You also gain a &lt;strong&gt;SUBSTANTIAL&lt;/strong&gt; increase in flexibility, performance, and reliability. So why hasn’t everyone transitioned to these services?&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2017/02/tangled.webp&quot; alt=&quot;tangled&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Migration Pains&lt;/h3&gt;
&lt;p&gt;The main issue is getting a cloud migration completed. It’s hard to find businesses, technicians, or engineers that will do the migration. In the end, you should be paying these companies directly.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Pitfalls&lt;/em&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Contracting a company that uses their own hardware and you pay them for substandard service and equipment on a monthly basis.&lt;/li&gt;
&lt;li&gt;Under-estimating the extended downtime that is required for moving to these services. If you have 30+ servers it will take months for preparation, transfer time, and deployment.&lt;/li&gt;
&lt;li&gt;Degraded service if you have to work in a hybrid environment. Working through a VPN for an extended time that it takes to complete the full migration.&lt;/li&gt;
&lt;li&gt;Mass Storage – Most of the cost of using these services come from storage, and typically it’s not till you hit the petabytes that you’d run into ROI issues. As a general rule of thumb, anything less than 1000 Terabytes is more cost-effective using these services.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;I think every business should be leveraging this technology. The larger the business the harder the cloud migration will be. Small businesses I’ve done in the course of a day, whereas larger businesses take considerably longer. Stay the course and keep searching for talent capable of helping with this transition. I enjoy using all three of these major players in the market, however, for Website Hosting and Linux boxes I like Google Cloud Compute the most, and for businesses already running Office 365 Microsoft Azure makes for the easiest transition.&lt;/p&gt;
</description><pubDate>Mon, 27 Feb 2017 21:03:20 GMT</pubDate><content:encoded>&lt;h2&gt;Moving to the Cloud&lt;/h2&gt;
&lt;p&gt;The following article outlines what it takes for a cloud migration to Google Cloud Compute, Amazon Web Services, or Microsoft Azure means. Most businesses want to move to the “cloud” but have no idea what that means. If you’re a small business you typically have a couple computers scattered around with one storage device. If you’re a medium or large business you probably already have several servers at a location in a contract. Moving to the cloud is often pitched to businesses using Software-as-a-Service replacing the current system with a web application that runs through your browser. While this is ideal, in most instances it isn’t practical. So you keep paying for a bloated IT infrastructure that is dated, isn’t as reliable, and unable to change with your business needs.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2017/02/pc-solution.webp&quot; alt=&quot;PC Solution&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Performing a Cloud Migration&lt;/h3&gt;
&lt;p&gt;Leverage Google Cloud Compute, Amazon Web Services, or Microsoft Azure to perform a cloud migration. Moving your servers will often end up costing between $100 – $400 per server a month depending on your environment. When you factor in that there is no capital expenditure, maintenance, or power costs this is a far cheaper solution than your current environment. You also gain a &lt;strong&gt;SUBSTANTIAL&lt;/strong&gt; increase in flexibility, performance, and reliability. So why hasn’t everyone transitioned to these services?&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2017/02/tangled.webp&quot; alt=&quot;tangled&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Migration Pains&lt;/h3&gt;
&lt;p&gt;The main issue is getting a cloud migration completed. It’s hard to find businesses, technicians, or engineers that will do the migration. In the end, you should be paying these companies directly.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Pitfalls&lt;/em&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Contracting a company that uses their own hardware and you pay them for substandard service and equipment on a monthly basis.&lt;/li&gt;
&lt;li&gt;Under-estimating the extended downtime that is required for moving to these services. If you have 30+ servers it will take months for preparation, transfer time, and deployment.&lt;/li&gt;
&lt;li&gt;Degraded service if you have to work in a hybrid environment. Working through a VPN for an extended time that it takes to complete the full migration.&lt;/li&gt;
&lt;li&gt;Mass Storage – Most of the cost of using these services come from storage, and typically it’s not till you hit the petabytes that you’d run into ROI issues. As a general rule of thumb, anything less than 1000 Terabytes is more cost-effective using these services.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;I think every business should be leveraging this technology. The larger the business the harder the cloud migration will be. Small businesses I’ve done in the course of a day, whereas larger businesses take considerably longer. Stay the course and keep searching for talent capable of helping with this transition. I enjoy using all three of these major players in the market, however, for Website Hosting and Linux boxes I like Google Cloud Compute the most, and for businesses already running Office 365 Microsoft Azure makes for the easiest transition.&lt;/p&gt;
</content:encoded></item><item><title>Create Swap file on Cloud VM (AWS, GCloud, or Azure)</title><link>https://christitus.com/create-swap-file/</link><guid isPermaLink="true">https://christitus.com/create-swap-file/</guid><description>&lt;p&gt;Use the commands below to create swap file on a micro instance with a Linux operating system. This creates a 2GB Swap file to help alleviate low system ram. Consequently, this is great for those using micro instances in the cloud that have under 1 GB of memory.&lt;/p&gt;
&lt;h2&gt;Commands&lt;/h2&gt;
&lt;p&gt;Run the following from your SSH window&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo swapon -s`
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;then change fstab (&lt;strong&gt;/etc/fstab&lt;/strong&gt;) so it automatically mounts your swap file on startup&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/swapfile none swap sw 0 0&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Afterward, check if your swap file is operating properly with&lt;code&gt;top&lt;/code&gt; or &lt;code&gt;htop&lt;/code&gt;.&lt;/p&gt;
</description><pubDate>Tue, 14 Feb 2017 21:16:13 GMT</pubDate><content:encoded>&lt;p&gt;Use the commands below to create swap file on a micro instance with a Linux operating system. This creates a 2GB Swap file to help alleviate low system ram. Consequently, this is great for those using micro instances in the cloud that have under 1 GB of memory.&lt;/p&gt;
&lt;h2&gt;Commands&lt;/h2&gt;
&lt;p&gt;Run the following from your SSH window&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo swapon -s`
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;then change fstab (&lt;strong&gt;/etc/fstab&lt;/strong&gt;) so it automatically mounts your swap file on startup&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/swapfile none swap sw 0 0&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Afterward, check if your swap file is operating properly with&lt;code&gt;top&lt;/code&gt; or &lt;code&gt;htop&lt;/code&gt;.&lt;/p&gt;
</content:encoded></item><item><title>Updating LDAP Credentials for Netscaler VPX 1000</title><link>https://christitus.com/update-netscaler-vpx/</link><guid isPermaLink="true">https://christitus.com/update-netscaler-vpx/</guid><description>&lt;p&gt;This article shows you how to update LDAP credentials on the Netscaler VPX 1000. It goes over logging in, editing virtual server, and applying settings.&lt;/p&gt;
&lt;h2&gt;Login to the NetScaler Device&lt;/h2&gt;
&lt;p&gt;Default User: nsroot Pass: nsroot (or password you changed it to)&lt;/p&gt;
&lt;h3&gt;Go to Netscaler gateway virtual server controlling your logins&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2016/11/netscaler1.webp&quot; alt=&quot;Netscaler1&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Click on LDAP Policy and select Edit Server&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2016/11/netscaler2.webp&quot; alt=&quot;Netscaler2&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Update the credentials under connection settings, and also test the new settings&lt;/h3&gt;
</description><pubDate>Sat, 12 Nov 2016 15:13:18 GMT</pubDate><content:encoded>&lt;p&gt;This article shows you how to update LDAP credentials on the Netscaler VPX 1000. It goes over logging in, editing virtual server, and applying settings.&lt;/p&gt;
&lt;h2&gt;Login to the NetScaler Device&lt;/h2&gt;
&lt;p&gt;Default User: nsroot Pass: nsroot (or password you changed it to)&lt;/p&gt;
&lt;h3&gt;Go to Netscaler gateway virtual server controlling your logins&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2016/11/netscaler1.webp&quot; alt=&quot;Netscaler1&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Click on LDAP Policy and select Edit Server&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/2016/11/netscaler2.webp&quot; alt=&quot;Netscaler2&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Update the credentials under connection settings, and also test the new settings&lt;/h3&gt;
</content:encoded></item><item><title>Exclude shared mailboxes from Dynamic Distribution Group</title><link>https://christitus.com/exclude-shared-mailboxes-exchange/</link><guid isPermaLink="true">https://christitus.com/exclude-shared-mailboxes-exchange/</guid><description>&lt;p&gt;This shows you how to exclude shared mailboxes from a Dynamic Distribution Group in Exchange Online. We will be using Powershell to make sure your shared mailboxes don’t get spam in them.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2016/10/exclude-shared-mailboxes.webp&quot; alt=&quot;Exclude Shared Mailboxes&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Commands&lt;/h2&gt;
&lt;h3&gt;Connect to O365 in PS&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $Session
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Exclude Shared Mailboxes with this filter command&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;set-DynamicDistributionGroup -Name &quot;all@yourcompany.com&quot;  -RecipientFilter {((RecipientType -eq &apos;UserMailbox&apos;) -and -not (RecipientTypeDetailsValue -eq &apos;SharedMailbox&apos;))}&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;Afterward, Verify in Exchange Admin Console. You always want to prevent your shared mailboxes from getting spammed in a distribution group. Consequently, I’d highly recommend setting a requirement to send to-these dynamic mailboxes. This will prevent every employee from sending emails to everyone, which will be a bad thing.&lt;/p&gt;
</description><pubDate>Mon, 31 Oct 2016 20:29:26 GMT</pubDate><content:encoded>&lt;p&gt;This shows you how to exclude shared mailboxes from a Dynamic Distribution Group in Exchange Online. We will be using Powershell to make sure your shared mailboxes don’t get spam in them.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2016/10/exclude-shared-mailboxes.webp&quot; alt=&quot;Exclude Shared Mailboxes&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Commands&lt;/h2&gt;
&lt;h3&gt;Connect to O365 in PS&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $Session
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Exclude Shared Mailboxes with this filter command&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;set-DynamicDistributionGroup -Name &quot;all@yourcompany.com&quot;  -RecipientFilter {((RecipientType -eq &apos;UserMailbox&apos;) -and -not (RecipientTypeDetailsValue -eq &apos;SharedMailbox&apos;))}&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;Afterward, Verify in Exchange Admin Console. You always want to prevent your shared mailboxes from getting spammed in a distribution group. Consequently, I’d highly recommend setting a requirement to send to-these dynamic mailboxes. This will prevent every employee from sending emails to everyone, which will be a bad thing.&lt;/p&gt;
</content:encoded></item><item><title>Force active directory sync to Office 365 with Azure ADSync</title><link>https://christitus.com/force-active-directory-sync/</link><guid isPermaLink="true">https://christitus.com/force-active-directory-sync/</guid><description>&lt;p&gt;Use the following from an Elevated Powershell Prompt to force active directory sync to your O365 admin portal. You will be performing this on the server where Azure AD Sync is installed, however, when running this command you will need to wait 5 minutes before checking your portal to verify it is working. In larger environments, this can take a longer time.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Import-Module “C:\Program Files\Microsoft Azure AD Sync\Bin\ADSync\ADSync.psd1”
Start-ADSyncSyncCycle -PolicyType Delta
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is great for forcing a sync of time-sensitive distribution list updates or user updates. If you find yourself doing this frequently make a PowerShell script for ease of access.&lt;/p&gt;
</description><pubDate>Fri, 07 Oct 2016 14:01:26 GMT</pubDate><content:encoded>&lt;p&gt;Use the following from an Elevated Powershell Prompt to force active directory sync to your O365 admin portal. You will be performing this on the server where Azure AD Sync is installed, however, when running this command you will need to wait 5 minutes before checking your portal to verify it is working. In larger environments, this can take a longer time.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Import-Module “C:\Program Files\Microsoft Azure AD Sync\Bin\ADSync\ADSync.psd1”
Start-ADSyncSyncCycle -PolicyType Delta
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is great for forcing a sync of time-sensitive distribution list updates or user updates. If you find yourself doing this frequently make a PowerShell script for ease of access.&lt;/p&gt;
</content:encoded></item><item><title>Windows 10 IIS: C:\WINDOWS\system32\inetsrv\rewrite.dll failed to load</title><link>https://christitus.com/windows-10-iis-rewrite-error/</link><guid isPermaLink="true">https://christitus.com/windows-10-iis-rewrite-error/</guid><description>&lt;p&gt;This article shows you what to do if you get the rewrite.dll failed to load in Windows 10 event viewer for Windows 10 IIS.&lt;/p&gt;
&lt;h2&gt;Commands&lt;/h2&gt;
&lt;p&gt;Checked Event viewer when my website Showed up with&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Service Unavailable 503 error&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The Event Viewer Error was&lt;/p&gt;
&lt;p&gt;&lt;code&gt;The Module DLL C:\WINDOWS\system32\inetsrv\rewrite.dll failed to load&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;I went into Add/Remove Programs (Start -&amp;gt; Run-&amp;gt; appwiz.cpl) and simply repaired the following program&lt;/p&gt;
&lt;p&gt;&lt;code&gt;IIS Url Rewrite Module 2.0&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Troubleshooting/Download&lt;/h3&gt;
&lt;p&gt;Afterward, restart your WWW Service in services.msc and your website will now be working. If you are unable to repair the IIS rewrite module using Add/Remove Programs, download the current installer from the official IIS site.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.iis.net/downloads/microsoft/url-rewrite&quot;&gt;IIS URL Rewrite Module&lt;/a&gt;&lt;/p&gt;
</description><pubDate>Mon, 19 Sep 2016 00:07:43 GMT</pubDate><content:encoded>&lt;p&gt;This article shows you what to do if you get the rewrite.dll failed to load in Windows 10 event viewer for Windows 10 IIS.&lt;/p&gt;
&lt;h2&gt;Commands&lt;/h2&gt;
&lt;p&gt;Checked Event viewer when my website Showed up with&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Service Unavailable 503 error&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The Event Viewer Error was&lt;/p&gt;
&lt;p&gt;&lt;code&gt;The Module DLL C:\WINDOWS\system32\inetsrv\rewrite.dll failed to load&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;I went into Add/Remove Programs (Start -&amp;gt; Run-&amp;gt; appwiz.cpl) and simply repaired the following program&lt;/p&gt;
&lt;p&gt;&lt;code&gt;IIS Url Rewrite Module 2.0&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Troubleshooting/Download&lt;/h3&gt;
&lt;p&gt;Afterward, restart your WWW Service in services.msc and your website will now be working. If you are unable to repair the IIS rewrite module using Add/Remove Programs, download the current installer from the official IIS site.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.iis.net/downloads/microsoft/url-rewrite&quot;&gt;IIS URL Rewrite Module&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>Cleanup Server WinSxS Free Space on Server 2008 and Server 2012</title><link>https://christitus.com/winsxs-free-space-server/</link><guid isPermaLink="true">https://christitus.com/winsxs-free-space-server/</guid><description>&lt;p&gt;Run the following commands if you are running low on C: drive space. Generally, this is caused by windows updates and you need to clear WinSxS free space. Do this in your PowerShell prompt and you will free up a substantial amount of space.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Please Note: You have to run updates on Windows Server 2008 if you are far behind and these commands don’t exist!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;MASTER CLEANUP: (Run this First)&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Dism.exe /online /Cleanup-Image /SPSuperseded&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;FOLLOWUP:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Windows 2008 Use: Dism.exe /online /Cleanup-Image /StartComponentCleanup
Windows 2012 Use: Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase
&lt;/code&gt;&lt;/pre&gt;
</description><pubDate>Wed, 03 Aug 2016 23:19:49 GMT</pubDate><content:encoded>&lt;p&gt;Run the following commands if you are running low on C: drive space. Generally, this is caused by windows updates and you need to clear WinSxS free space. Do this in your PowerShell prompt and you will free up a substantial amount of space.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Please Note: You have to run updates on Windows Server 2008 if you are far behind and these commands don’t exist!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;MASTER CLEANUP: (Run this First)&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Dism.exe /online /Cleanup-Image /SPSuperseded&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;FOLLOWUP:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Windows 2008 Use: Dism.exe /online /Cleanup-Image /StartComponentCleanup
Windows 2012 Use: Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Reattach LVM after a reinstalling XenServer</title><link>https://christitus.com/reattach-lvm-xenserver/</link><guid isPermaLink="true">https://christitus.com/reattach-lvm-xenserver/</guid><description>&lt;p&gt;This article describes how to reattach LVM or a local Storage repository on XenServer. The XenServer database has become corrupt or your XenServer does not see the local SR.&lt;/p&gt;
&lt;h2&gt;Instructions&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Do a pvscan to get the Universally Unique Identifier (UUID) of an existing SR on a local disk. In this example uses UUID 39baf126-a535-549f-58d6-feeda55f7801:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;pvscan&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Output&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;PV /dev/sda3 VG VG_XenStorage-39baf126-a535-549f-58d6-feeda55f7801 lvm2 [66.87 GB / 57.87 GB free]
Total: 1 [66.87 GB] / in use: 1 [66.87 GB] / in no VG: 0 [0 ]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note the output above, the VG name of the local drive /dev/sda3 is VG_XenStorage-39baf126-a535-549f-58d6-feeda55f7801 . The VG name contains the SR UUID that resides on this storage media. In this case, the UUID is 39baf126-a535-549f-58d6-feeda55f7801.&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Introduce the SR with the following command:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;xe sr-introduce uuid=39baf126-a535-549f-58d6-feeda55f7801 type=lvm name-label=”Local storage” content-type=user&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This command sets up database records for the SR named “Local storage”&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Locate the SCSI ID of the device or partition where the SR data is stored:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ls -l /dev/disk/by-id/&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;SCSI ID Output&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;total 0
lrwxrwxrwx 1 root root 9 Jan 15 09:44 scsi-SATA_ST3500320AS_9QM13WP2 -&amp;gt; ../../sdb
lrwxrwxrwx 1 root root 10 Jan 15 09:44 scsi-SATA_ST3500320AS_9QM13WP2-part1 -&amp;gt; ../../sdb1
lrwxrwxrwx 1 root root 9 Jan 15 09:44 scsi-SATA_ST380815AS_6QZ5Z1AM -&amp;gt; ../../sda
lrwxrwxrwx 1 root root 10 Jan 15 09:44 scsi-SATA_ST380815AS_6QZ5Z1AM-part1 -&amp;gt; ../../sda1
lrwxrwxrwx 1 root root 10 Jan 15 09:44 scsi-SATA_ST380815AS_6QZ5Z1AM-part2 -&amp;gt; ../../sda2
lrwxrwxrwx 1 root root 10 Jan 15 09:44 scsi-SATA_ST380815AS_6QZ5Z1AM-part3 -&amp;gt; ../../sda3
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;_In this case, the SCSI ID of the device /dev/sda3 is scsi-SATA_ST380815AS_6QZ5Z1AM-part3.&lt;/p&gt;
&lt;p&gt;Notate the device name to use in the next command, where a PBD (physical block device – a connector between the XenServer host and the SR) is created._&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Run the xe host-list command to find out the host UUID for the local host:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;xe host-list&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;uuid ( RO) : 83f2c775-57fc-457b-9f98-2b9b0a7dbcb5
name-label ( RW): xenserver1
name-description ( RO): Default install of XenServer
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Create the PBD using the device SCSI ID, host UUID and SR UUID detected above:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;xe pbd-create sr-uuid=39baf126-a535-549f-58d6-feeda55f7801&lt;/code&gt;
&lt;code&gt;device-config:device=/dev/disk/by-id/scsi-SATA_ST380815AS_6QZ5Z1AM-part3 host-uuid=83f2c775-57fc-457b-9f98-2b9b0a7dbcb5&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Afterward, it displays: aec2c6fc-e1fb-0a27-2437-9862cffe213e&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Attach the PBD created with xe pbd-plug command:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;xe pbd-plug uuid=aec2c6fc-e1fb-0a27-2437-9862cffe213e&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the end, you now have reattach LVM to the XenServer host and be visible in XenCenter.&lt;/p&gt;
&lt;p&gt;Source: Original Article from Citrix &lt;a href=&quot;http://support.citrix.com/article/CTX121896&quot;&gt;http://support.citrix.com/article/CTX121896&lt;/a&gt;&lt;/p&gt;
</description><pubDate>Wed, 03 Aug 2016 16:18:32 GMT</pubDate><content:encoded>&lt;p&gt;This article describes how to reattach LVM or a local Storage repository on XenServer. The XenServer database has become corrupt or your XenServer does not see the local SR.&lt;/p&gt;
&lt;h2&gt;Instructions&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Do a pvscan to get the Universally Unique Identifier (UUID) of an existing SR on a local disk. In this example uses UUID 39baf126-a535-549f-58d6-feeda55f7801:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;pvscan&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Output&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;PV /dev/sda3 VG VG_XenStorage-39baf126-a535-549f-58d6-feeda55f7801 lvm2 [66.87 GB / 57.87 GB free]
Total: 1 [66.87 GB] / in use: 1 [66.87 GB] / in no VG: 0 [0 ]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Note the output above, the VG name of the local drive /dev/sda3 is VG_XenStorage-39baf126-a535-549f-58d6-feeda55f7801 . The VG name contains the SR UUID that resides on this storage media. In this case, the UUID is 39baf126-a535-549f-58d6-feeda55f7801.&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Introduce the SR with the following command:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;xe sr-introduce uuid=39baf126-a535-549f-58d6-feeda55f7801 type=lvm name-label=”Local storage” content-type=user&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This command sets up database records for the SR named “Local storage”&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Locate the SCSI ID of the device or partition where the SR data is stored:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ls -l /dev/disk/by-id/&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;SCSI ID Output&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;total 0
lrwxrwxrwx 1 root root 9 Jan 15 09:44 scsi-SATA_ST3500320AS_9QM13WP2 -&amp;gt; ../../sdb
lrwxrwxrwx 1 root root 10 Jan 15 09:44 scsi-SATA_ST3500320AS_9QM13WP2-part1 -&amp;gt; ../../sdb1
lrwxrwxrwx 1 root root 9 Jan 15 09:44 scsi-SATA_ST380815AS_6QZ5Z1AM -&amp;gt; ../../sda
lrwxrwxrwx 1 root root 10 Jan 15 09:44 scsi-SATA_ST380815AS_6QZ5Z1AM-part1 -&amp;gt; ../../sda1
lrwxrwxrwx 1 root root 10 Jan 15 09:44 scsi-SATA_ST380815AS_6QZ5Z1AM-part2 -&amp;gt; ../../sda2
lrwxrwxrwx 1 root root 10 Jan 15 09:44 scsi-SATA_ST380815AS_6QZ5Z1AM-part3 -&amp;gt; ../../sda3
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;_In this case, the SCSI ID of the device /dev/sda3 is scsi-SATA_ST380815AS_6QZ5Z1AM-part3.&lt;/p&gt;
&lt;p&gt;Notate the device name to use in the next command, where a PBD (physical block device – a connector between the XenServer host and the SR) is created._&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Run the xe host-list command to find out the host UUID for the local host:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;xe host-list&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;uuid ( RO) : 83f2c775-57fc-457b-9f98-2b9b0a7dbcb5
name-label ( RW): xenserver1
name-description ( RO): Default install of XenServer
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Create the PBD using the device SCSI ID, host UUID and SR UUID detected above:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;xe pbd-create sr-uuid=39baf126-a535-549f-58d6-feeda55f7801&lt;/code&gt;
&lt;code&gt;device-config:device=/dev/disk/by-id/scsi-SATA_ST380815AS_6QZ5Z1AM-part3 host-uuid=83f2c775-57fc-457b-9f98-2b9b0a7dbcb5&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Afterward, it displays: aec2c6fc-e1fb-0a27-2437-9862cffe213e&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Attach the PBD created with xe pbd-plug command:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;xe pbd-plug uuid=aec2c6fc-e1fb-0a27-2437-9862cffe213e&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the end, you now have reattach LVM to the XenServer host and be visible in XenCenter.&lt;/p&gt;
&lt;p&gt;Source: Original Article from Citrix &lt;a href=&quot;http://support.citrix.com/article/CTX121896&quot;&gt;http://support.citrix.com/article/CTX121896&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>XenServer tapdisk experienced an error</title><link>https://christitus.com/xenserver-tapdisk-error/</link><guid isPermaLink="true">https://christitus.com/xenserver-tapdisk-error/</guid><description>&lt;p&gt;When re-attaching a SR on a fresh VM, I ran into this XenServer tapdisk error. I ran the following from XenServer console to eject all CD drives on that host. I was then able to start the VM with the old image.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;xe vm-cd-eject --multiple&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;If your XenCenter hangs or becomes unresponsive, you can also reset the toolstack from console from a PuTTy session or if XenCenter console is working running the following command:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;xe-toolstack-restart&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;It’s important to note what caused the XenServer tapdisk error. I experienced this on an old version of XenServer 6 when switching out the ISOs from the VMs.&lt;/p&gt;
</description><pubDate>Wed, 03 Aug 2016 16:12:57 GMT</pubDate><content:encoded>&lt;p&gt;When re-attaching a SR on a fresh VM, I ran into this XenServer tapdisk error. I ran the following from XenServer console to eject all CD drives on that host. I was then able to start the VM with the old image.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;xe vm-cd-eject --multiple&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;If your XenCenter hangs or becomes unresponsive, you can also reset the toolstack from console from a PuTTy session or if XenCenter console is working running the following command:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;xe-toolstack-restart&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;It’s important to note what caused the XenServer tapdisk error. I experienced this on an old version of XenServer 6 when switching out the ISOs from the VMs.&lt;/p&gt;
</content:encoded></item><item><title>“Target account name is incorrect” Domain Controller Error</title><link>https://christitus.com/target-account-name-domain-controller-error/</link><guid isPermaLink="true">https://christitus.com/target-account-name-domain-controller-error/</guid><description>&lt;p&gt;This article explains how to fix the “Target account name is incorrect” error you are getting on your domain controllers. This usually stems from a system administrator doing a snapshot revert on the Domain Controller which messes up the KDC service and domain replication. It also can happen if you had a DC offline for a long time 30+ days. &lt;/p&gt;
&lt;h2&gt;Commands&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Stop and disable the Key Distribution Center (KDC) service on the troubled domain controller&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;net stop kdc
sc config &quot;kdc&quot; start= disabled
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Please Note: space is REQUIRED after start=&lt;/em&gt;&lt;br /&gt;
&lt;em&gt;Alternatively, you can do this from the Services Panel&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Purge the ticket cache on the local domain controller.
&lt;code&gt;klist purge&lt;/code&gt;&lt;br /&gt;
_Note: you can use &lt;code&gt;klist tickets&lt;/code&gt; to view tickets before purging them&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Afterward, Reboot Troubled Domain Controller&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Reset the troubled domain controller’s account password to the primary domain controller (PDC) emulator master using netdom /resetpwd. Find PDC using: netdom query fsmo&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;netdom /RESETPWD /s:pdcserver.domain.local /ud:domain\Administrator /pd:*&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Synchronize the domain directory partition of the replication partner with the PDC emulator master&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;repadmin /kcc&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Once more, Reboot the Troubled DC and start and enable the KDC on the local domain controller:&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;sc config &quot;kdc&quot; start= auto
net start KDC
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Typically I wait about 5-10 minutes after this and start doing checks to see if it is now replicating properly. You can also force a replicate using repadmin /replicate but usually not necessary. In the end, make sure you check to make you aren’t getting the “Target account name is incorrect” error anymore.&lt;/p&gt;
</description><pubDate>Thu, 21 Jul 2016 13:31:35 GMT</pubDate><content:encoded>&lt;p&gt;This article explains how to fix the “Target account name is incorrect” error you are getting on your domain controllers. This usually stems from a system administrator doing a snapshot revert on the Domain Controller which messes up the KDC service and domain replication. It also can happen if you had a DC offline for a long time 30+ days. &lt;/p&gt;
&lt;h2&gt;Commands&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Stop and disable the Key Distribution Center (KDC) service on the troubled domain controller&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;net stop kdc
sc config &quot;kdc&quot; start= disabled
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Please Note: space is REQUIRED after start=&lt;/em&gt;&lt;br /&gt;
&lt;em&gt;Alternatively, you can do this from the Services Panel&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Purge the ticket cache on the local domain controller.
&lt;code&gt;klist purge&lt;/code&gt;&lt;br /&gt;
_Note: you can use &lt;code&gt;klist tickets&lt;/code&gt; to view tickets before purging them&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Afterward, Reboot Troubled Domain Controller&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Reset the troubled domain controller’s account password to the primary domain controller (PDC) emulator master using netdom /resetpwd. Find PDC using: netdom query fsmo&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;netdom /RESETPWD /s:pdcserver.domain.local /ud:domain\Administrator /pd:*&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Synchronize the domain directory partition of the replication partner with the PDC emulator master&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;repadmin /kcc&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Once more, Reboot the Troubled DC and start and enable the KDC on the local domain controller:&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;sc config &quot;kdc&quot; start= auto
net start KDC
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Typically I wait about 5-10 minutes after this and start doing checks to see if it is now replicating properly. You can also force a replicate using repadmin /replicate but usually not necessary. In the end, make sure you check to make you aren’t getting the “Target account name is incorrect” error anymore.&lt;/p&gt;
</content:encoded></item><item><title>Citrix XenCenter error “Could not create SSL/TLS Secure Channel”</title><link>https://christitus.com/citrix-xencenter-error-ssl-secure-channel/</link><guid isPermaLink="true">https://christitus.com/citrix-xencenter-error-ssl-secure-channel/</guid><description>&lt;p&gt;Running the following commands will fix the XenCenter Error. You are typically encountering this error because Windows 10 requires stronger encryption, consequently, this is prevalent on older XenServer installations. I encountered this on XenServer 6.0.&lt;/p&gt;
&lt;h2&gt;Commands&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Putty in using SSH&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;service xapissl stop
mv /etc/xensource/xapi-ssl.pem /etc/xensource/xapi-ssl.pem.bak
/opt/xensource/libexec/generate_ssl_cert &quot;/etc/xensource/xapi-ssl.pem&quot; &apos;10.100.0.40&apos;
service xapissl start
xe-toolstack-restart
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Where you see 10.100.0.40 this is the IP of your XenServer that you are connecting to (not VM ips). Once you run this it reissues the cert and you will be able to properly connect. I’ve seen this on Windows 10 Systems since they force the higher level encryption, however,  If this doesn’t resolve the XenCenter error let me know.&lt;/p&gt;
</description><pubDate>Wed, 13 Jul 2016 14:24:04 GMT</pubDate><content:encoded>&lt;p&gt;Running the following commands will fix the XenCenter Error. You are typically encountering this error because Windows 10 requires stronger encryption, consequently, this is prevalent on older XenServer installations. I encountered this on XenServer 6.0.&lt;/p&gt;
&lt;h2&gt;Commands&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Putty in using SSH&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;service xapissl stop
mv /etc/xensource/xapi-ssl.pem /etc/xensource/xapi-ssl.pem.bak
/opt/xensource/libexec/generate_ssl_cert &quot;/etc/xensource/xapi-ssl.pem&quot; &apos;10.100.0.40&apos;
service xapissl start
xe-toolstack-restart
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Where you see 10.100.0.40 this is the IP of your XenServer that you are connecting to (not VM ips). Once you run this it reissues the cert and you will be able to properly connect. I’ve seen this on Windows 10 Systems since they force the higher level encryption, however,  If this doesn’t resolve the XenCenter error let me know.&lt;/p&gt;
</content:encoded></item><item><title>Prevent autodiscover on Exchange server after an Office 365 Migration</title><link>https://christitus.com/prevent-autodiscover-exchange-server/</link><guid isPermaLink="true">https://christitus.com/prevent-autodiscover-exchange-server/</guid><description>&lt;p&gt;This article teaches you how to prevent autodiscover from happening on Exchange Server. This is important on an Office 365 migration when you still need to keep your local exchange server from resolving.&lt;/p&gt;
&lt;h2&gt;Commands&lt;/h2&gt;
&lt;p&gt;First change your local DNS&lt;/p&gt;
&lt;p&gt;&lt;code&gt;autodiscover.yourdomain.com cname autodiscover.office365.com&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;(Option 1)Next, you need to disable SCP site-wide. I did this performing a GPO Registry edit.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;HKEY_CURRENT_USER\Software\Microsoft\Office\x.0\Outlook\AutoDiscover&lt;/code&gt;&lt;br /&gt;
Notex.0 in the above registry path corresponds to the Outlook version (16.0 = Outlook 2016, 15.0 = Outlook 2013, 14.0 = Outlook 2010, 12.0 = Outlook 2007).&lt;br /&gt;
&lt;code&gt;ExcludeScpLookup DWORD 1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;(Option 2)Now you can also do this with a Reg file. Name it SCPDisable.reg&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Windows Registry Editor Version 5.00  
[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Outlook\AutoDiscover]  
&quot;ExcludeScpLookup&quot;=dword:00000001`
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The above is Office 2010, Notice the 14.0, and make sure you change it to the version you have.&lt;/p&gt;
&lt;p&gt;Now simply create a new profile and your domain should now point to Office 365 by default.&lt;/p&gt;
</description><pubDate>Mon, 04 Jul 2016 16:44:02 GMT</pubDate><content:encoded>&lt;p&gt;This article teaches you how to prevent autodiscover from happening on Exchange Server. This is important on an Office 365 migration when you still need to keep your local exchange server from resolving.&lt;/p&gt;
&lt;h2&gt;Commands&lt;/h2&gt;
&lt;p&gt;First change your local DNS&lt;/p&gt;
&lt;p&gt;&lt;code&gt;autodiscover.yourdomain.com cname autodiscover.office365.com&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;(Option 1)Next, you need to disable SCP site-wide. I did this performing a GPO Registry edit.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;HKEY_CURRENT_USER\Software\Microsoft\Office\x.0\Outlook\AutoDiscover&lt;/code&gt;&lt;br /&gt;
Notex.0 in the above registry path corresponds to the Outlook version (16.0 = Outlook 2016, 15.0 = Outlook 2013, 14.0 = Outlook 2010, 12.0 = Outlook 2007).&lt;br /&gt;
&lt;code&gt;ExcludeScpLookup DWORD 1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;(Option 2)Now you can also do this with a Reg file. Name it SCPDisable.reg&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Windows Registry Editor Version 5.00  
[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Outlook\AutoDiscover]  
&quot;ExcludeScpLookup&quot;=dword:00000001`
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The above is Office 2010, Notice the 14.0, and make sure you change it to the version you have.&lt;/p&gt;
&lt;p&gt;Now simply create a new profile and your domain should now point to Office 365 by default.&lt;/p&gt;
</content:encoded></item><item><title>Grant Full Access to all Public Folders for a user in Exchange</title><link>https://christitus.com/grant-full-access-public-folders/</link><guid isPermaLink="true">https://christitus.com/grant-full-access-public-folders/</guid><description>&lt;p&gt;This post goes over how to grant full access to all public folders for a user in Microsoft Exchange. I recently was migrating all public folders from an Exchange 2010 to Office 365 Environment and didn’t have access to some of the folders. Consequently, this solution saved me a lot of time from doing it through a GUI.&lt;/p&gt;
&lt;h2&gt;Command&lt;/h2&gt;
&lt;p&gt;Enter the following in Exchange Management Shell:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Get-PublicFolder –Identity &quot;\Root Folder Name&quot; -Recurse | Add-PublicFolderAdministrativePermission -User &quot;ctitus&quot; -AccessRights AllExtendedRights&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This will recurse the root folder and grant all rights to the user you specify.&lt;/p&gt;
</description><pubDate>Mon, 04 Jul 2016 16:32:21 GMT</pubDate><content:encoded>&lt;p&gt;This post goes over how to grant full access to all public folders for a user in Microsoft Exchange. I recently was migrating all public folders from an Exchange 2010 to Office 365 Environment and didn’t have access to some of the folders. Consequently, this solution saved me a lot of time from doing it through a GUI.&lt;/p&gt;
&lt;h2&gt;Command&lt;/h2&gt;
&lt;p&gt;Enter the following in Exchange Management Shell:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Get-PublicFolder –Identity &quot;\Root Folder Name&quot; -Recurse | Add-PublicFolderAdministrativePermission -User &quot;ctitus&quot; -AccessRights AllExtendedRights&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This will recurse the root folder and grant all rights to the user you specify.&lt;/p&gt;
</content:encoded></item><item><title>Encore Bandit II/III Connection Instructions</title><link>https://christitus.com/encore-bandit-connection/</link><guid isPermaLink="true">https://christitus.com/encore-bandit-connection/</guid><description>&lt;p&gt;These steps will show you how to connect to the encore bandit devices. I recently configured both a bandit II and a bandit III device for using a VPN over satellite. The devices are configured through a 9-pin serial port they call the “Supervisory Port”. I use a basic serial to USB adapter and putty to connect. All the white papers for this device are good, but the setup and login are not as clear as you would think, that said, below are the following steps I used to connect. Refer to Encore&apos;s &lt;a href=&quot;https://www.encorenetworks.com/wp-content/uploads/2021/04/cfg-main-1.pdf&quot;&gt;BANDIT II/III Expanded Configuration Guide&lt;/a&gt; for the complete device documentation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Steps for connection&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hook Serial Adapter to your PC &lt;em&gt;Please Note the COM port&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Run Putty and select Serial for Connection&lt;/li&gt;
&lt;li&gt;Type default username and password (encore!1) for both&lt;/li&gt;
&lt;li&gt;Configure Device according to Quick Setup&lt;/li&gt;
&lt;/ul&gt;
</description><pubDate>Thu, 17 Mar 2016 14:52:31 GMT</pubDate><content:encoded>&lt;p&gt;These steps will show you how to connect to the encore bandit devices. I recently configured both a bandit II and a bandit III device for using a VPN over satellite. The devices are configured through a 9-pin serial port they call the “Supervisory Port”. I use a basic serial to USB adapter and putty to connect. All the white papers for this device are good, but the setup and login are not as clear as you would think, that said, below are the following steps I used to connect. Refer to Encore&apos;s &lt;a href=&quot;https://www.encorenetworks.com/wp-content/uploads/2021/04/cfg-main-1.pdf&quot;&gt;BANDIT II/III Expanded Configuration Guide&lt;/a&gt; for the complete device documentation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Steps for connection&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hook Serial Adapter to your PC &lt;em&gt;Please Note the COM port&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Run Putty and select Serial for Connection&lt;/li&gt;
&lt;li&gt;Type default username and password (encore!1) for both&lt;/li&gt;
&lt;li&gt;Configure Device according to Quick Setup&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Move Website from Linux to IIS</title><link>https://christitus.com/move-website-linux-iis/</link><guid isPermaLink="true">https://christitus.com/move-website-linux-iis/</guid><description>&lt;p&gt;This guide goes over how to Move Website from Linux to IIS. If you’re in the tech field, you probably see moving from Linux to IIS on a WordPress platform and immediately cringed.&lt;/p&gt;
&lt;h2&gt;Migration&lt;/h2&gt;
&lt;p&gt;The database migration from MySQL to MS SQL is actually pretty easy since you just push it through a large query, but I didn’t really want to mess with it, so I stuck with MySQL.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://dev.mysql.com/downloads/mysql/&quot;&gt;Download and Install MySQL for Windows&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;With that down setting up IIS is also extremely simple now, which is quite surprising given how unfriendly IIS 6 was. The interface is pretty much the same, so you can do it the way you have always known, but now they have added multiple friendly tools in the form of &lt;strong&gt;Microsoft WebMatrix&lt;/strong&gt; and &lt;strong&gt;Web Platform Installer&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://go.microsoft.com/fwlink/?LinkID=286266&quot;&gt;Download Microsoft WebMatrix (official Microsoft Link)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Using the Web Platform Install you can just select whatever install you want (WordPress for me) and click install. It grabs all the dependencies and installs them for you, and from here I had a fresh WordPress install. I did a simple import and changed a couple of settings that were reset and was back up and running. Overall a simple migration, and pretty happy with IIS 10 (What happened to IIS 9 we will never know…)&lt;/p&gt;
</description><pubDate>Sat, 26 Dec 2015 05:41:50 GMT</pubDate><content:encoded>&lt;p&gt;This guide goes over how to Move Website from Linux to IIS. If you’re in the tech field, you probably see moving from Linux to IIS on a WordPress platform and immediately cringed.&lt;/p&gt;
&lt;h2&gt;Migration&lt;/h2&gt;
&lt;p&gt;The database migration from MySQL to MS SQL is actually pretty easy since you just push it through a large query, but I didn’t really want to mess with it, so I stuck with MySQL.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://dev.mysql.com/downloads/mysql/&quot;&gt;Download and Install MySQL for Windows&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;With that down setting up IIS is also extremely simple now, which is quite surprising given how unfriendly IIS 6 was. The interface is pretty much the same, so you can do it the way you have always known, but now they have added multiple friendly tools in the form of &lt;strong&gt;Microsoft WebMatrix&lt;/strong&gt; and &lt;strong&gt;Web Platform Installer&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://go.microsoft.com/fwlink/?LinkID=286266&quot;&gt;Download Microsoft WebMatrix (official Microsoft Link)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Using the Web Platform Install you can just select whatever install you want (WordPress for me) and click install. It grabs all the dependencies and installs them for you, and from here I had a fresh WordPress install. I did a simple import and changed a couple of settings that were reset and was back up and running. Overall a simple migration, and pretty happy with IIS 10 (What happened to IIS 9 we will never know…)&lt;/p&gt;
</content:encoded></item><item><title>FTP Credentials Required for WordPress Update to Plugins/Themes</title><link>https://christitus.com/ftp-credentials-required/</link><guid isPermaLink="true">https://christitus.com/ftp-credentials-required/</guid><description>&lt;p&gt;If you are getting errors on a WordPress update that say you need FTP credentials, your apache install doesn’t have rights to do the changes. You could install vsftpd, but it is MUCH easier to just grant apache access to your WordPress.&lt;/p&gt;
&lt;h2&gt;Commands to grant access&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;sudo chown -R apache:apache path/to/wordpress&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Here is the syntax I used&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;sudo chown -R apache:apache /var/www/html/&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;OR&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo chown -R www-data:www-data /var/www/html/public_html&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Afterward, you should not see the error asking for FTP Credentials again. This is a very simple process and one I highly recommend due to many plugins requiring this to update.&lt;/p&gt;
</description><pubDate>Thu, 03 Dec 2015 22:47:50 GMT</pubDate><content:encoded>&lt;p&gt;If you are getting errors on a WordPress update that say you need FTP credentials, your apache install doesn’t have rights to do the changes. You could install vsftpd, but it is MUCH easier to just grant apache access to your WordPress.&lt;/p&gt;
&lt;h2&gt;Commands to grant access&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;sudo chown -R apache:apache path/to/wordpress&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Here is the syntax I used&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;sudo chown -R apache:apache /var/www/html/&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;OR&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo chown -R www-data:www-data /var/www/html/public_html&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Afterward, you should not see the error asking for FTP Credentials again. This is a very simple process and one I highly recommend due to many plugins requiring this to update.&lt;/p&gt;
</content:encoded></item><item><title>Check External IP in Linux Server</title><link>https://christitus.com/check-external-ip/</link><guid isPermaLink="true">https://christitus.com/check-external-ip/</guid><description>&lt;p&gt;All these commands check external IP in Linux Terminal for any Linux system.&lt;/p&gt;
&lt;h2&gt;Commands&lt;/h2&gt;
&lt;h3&gt;Nice format for External IP&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;curl -s checkip.dyndns.org | sed -e &apos;s/.*Current IP Address: //&apos; -e &apos;s/&amp;lt;.*$//&apos;&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Short and Simple to remember&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;curl ifconfig.co&lt;/code&gt;&lt;/p&gt;
&lt;h5&gt;For those with security concerns without using curl&lt;/h5&gt;
&lt;p&gt;&lt;code&gt;dig TXT +short o-o.myaddr.l.google.com @ns1.google.com | awk -F&apos;&quot;&apos; &apos;{ print $2}&apos;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Any of these commands will achieve the same result, so pick which one you like best. Personally, for business and professional environments I stick with dig and just make an alias for it, however, for home projects a simple curl &lt;a href=&quot;http://ifconfig.co&quot;&gt;ifconfig.co&lt;/a&gt; is great.&lt;/p&gt;
</description><pubDate>Mon, 14 Sep 2015 18:33:12 GMT</pubDate><content:encoded>&lt;p&gt;All these commands check external IP in Linux Terminal for any Linux system.&lt;/p&gt;
&lt;h2&gt;Commands&lt;/h2&gt;
&lt;h3&gt;Nice format for External IP&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;curl -s checkip.dyndns.org | sed -e &apos;s/.*Current IP Address: //&apos; -e &apos;s/&amp;lt;.*$//&apos;&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Short and Simple to remember&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;curl ifconfig.co&lt;/code&gt;&lt;/p&gt;
&lt;h5&gt;For those with security concerns without using curl&lt;/h5&gt;
&lt;p&gt;&lt;code&gt;dig TXT +short o-o.myaddr.l.google.com @ns1.google.com | awk -F&apos;&quot;&apos; &apos;{ print $2}&apos;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Any of these commands will achieve the same result, so pick which one you like best. Personally, for business and professional environments I stick with dig and just make an alias for it, however, for home projects a simple curl &lt;a href=&quot;http://ifconfig.co&quot;&gt;ifconfig.co&lt;/a&gt; is great.&lt;/p&gt;
</content:encoded></item><item><title>SFC scannow error and Windows 10 corruption</title><link>https://christitus.com/sfc-scannow-error/</link><guid isPermaLink="true">https://christitus.com/sfc-scannow-error/</guid><description>&lt;p&gt;If you run into SFC scannow error which cannot be repaired chances are you have some corrupt system components. The fastest way to fix this is by following these steps to repair your system.&lt;/p&gt;
&lt;p&gt;Here is an example of the error you are seeing:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2015/07/SFC-scannow-error.webp&quot; alt=&quot;SFC Scannow Error&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Download Windows 10 ISO from &lt;a href=&quot;https://www.microsoft.com/en-us/software-download/windows10&quot;&gt;https://www.microsoft.com/en-us/software-download/windows10&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Mount the ISO file by double-clicking on it.&lt;/li&gt;
&lt;li&gt;Open ‘Windows Powershell’ or ‘Command Prompt’ with Admin privileges (right click -&amp;gt; Run as Administrator)&lt;/li&gt;
&lt;li&gt;Let’s check the System Health first, by running these commands:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;dism /online /cleanup-image /scanhealth&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dism /online /cleanup-image /checkhealth&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dism /online /cleanup-image /restorehealth&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;I’m sure that will give you an error stating that it could not perform the task. Afterward, Let’s specify the file from the ISO so that we can fix it. Run the following command: (Notice that X must be the drive letter on which your system has mounted the ISO)
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DISM /Online /Cleanup-Image /RestoreHealth /source:WIM:X:SourcesInstall.wim:1 /LimitAccess&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Now let’s repair any damage in the system files, shall we?
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sfc /scannow&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once this is complete, you will see you now have a functional windows environment again. One other tip that I would suggest is to re-run windows updates because your windows components were damaged and the updates have not been happening.&lt;/p&gt;
</description><pubDate>Sun, 26 Jul 2015 02:39:10 GMT</pubDate><content:encoded>&lt;p&gt;If you run into SFC scannow error which cannot be repaired chances are you have some corrupt system components. The fastest way to fix this is by following these steps to repair your system.&lt;/p&gt;
&lt;p&gt;Here is an example of the error you are seeing:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2015/07/SFC-scannow-error.webp&quot; alt=&quot;SFC Scannow Error&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Download Windows 10 ISO from &lt;a href=&quot;https://www.microsoft.com/en-us/software-download/windows10&quot;&gt;https://www.microsoft.com/en-us/software-download/windows10&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Mount the ISO file by double-clicking on it.&lt;/li&gt;
&lt;li&gt;Open ‘Windows Powershell’ or ‘Command Prompt’ with Admin privileges (right click -&amp;gt; Run as Administrator)&lt;/li&gt;
&lt;li&gt;Let’s check the System Health first, by running these commands:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;dism /online /cleanup-image /scanhealth&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dism /online /cleanup-image /checkhealth&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dism /online /cleanup-image /restorehealth&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;I’m sure that will give you an error stating that it could not perform the task. Afterward, Let’s specify the file from the ISO so that we can fix it. Run the following command: (Notice that X must be the drive letter on which your system has mounted the ISO)
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DISM /Online /Cleanup-Image /RestoreHealth /source:WIM:X:SourcesInstall.wim:1 /LimitAccess&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Now let’s repair any damage in the system files, shall we?
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sfc /scannow&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once this is complete, you will see you now have a functional windows environment again. One other tip that I would suggest is to re-run windows updates because your windows components were damaged and the updates have not been happening.&lt;/p&gt;
</content:encoded></item><item><title>iDrac Dell Server (Off-Band Remote Access)</title><link>https://christitus.com/idrac-dell-server/</link><guid isPermaLink="true">https://christitus.com/idrac-dell-server/</guid><description>&lt;p&gt;I recently had a server freeze up when I wasn’t on-site and needed to power cycle it. I had configured iDrac before but it was not responsive. Here are some useful commands that can configure, reboot, and reset the iDrac function on Dell Servers. The commands below are run from a command prompt on the server (unless otherwise stated) in the (C:\Program Files\Dell\SysMgt\idrac) path.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2015/03/idrac.webp&quot; alt=&quot;iDrac&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Remote Commands (Workstation or another server)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;racadm -r -u -p&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Example: &lt;code&gt;racadm -r 10.1.1.1 -u root -p calvin getsysinfo&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;DEFAULT USER: root&lt;/p&gt;
&lt;p&gt;DEFAULT PASS: calvin&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;iDrac Information&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;racadm getsysinfo&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Reset and Factory Defaults&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;racadm racreset&lt;/code&gt; (soft Reset)&lt;/p&gt;
&lt;p&gt;&lt;code&gt;racadm racresetcfg&lt;/code&gt; (Hard Reset – Resets IP/Account settings back to factory default)&lt;/p&gt;
&lt;p&gt;NOTE: Resets Default IP &amp;gt; 192.168.0.120&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Network Setup&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;racadm config -g cfgLanNetworking -o cfgNicEnable 1
racadm config -g cfgLanNetworking -o cfgNicIpAddress 192.168.0.120
racadm config -g cfgLanNetworking -o cfgNicNetmask 255.255.255.0
racadm config -g cfgLanNetworking -o cfgNicGateway 192.168.0.120
racadm config -g cfgLanNetworking -o cfgNicUseDHCP 0
racadm config -g cfgLanNetworking -o cfgDNSServersFromDHCP 0
racadm config -g cfgLanNetworking -o cfgDNSServer1 192.168.0.5
racadm config -g cfgLanNetworking -o cfgDNSServer2 192.168.0.6
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;User Setup&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;racadm config -g cfgUserAdmin -o cfgUserAdminUserName -i 2 john
racadm config -g cfgUserAdmin -o cfgUserAdminPassword -i 2 123456
racadm config -g cfgUserAdmin -o cfgUserAdminEnable -i 2 1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To verify the new user, use one of the following commands:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;racadm getconfig -u john
racadm getconfig –g cfgUserAdmin –i 2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;From here you will use your web browser to enter the iDrac configuration GUI and finish setting up SMTP servers, alerts and other things. I only recommend the above from command line since it gives direct access when the web browser isn’t functions due to bad IP address or invalid username.&lt;/p&gt;
</description><pubDate>Tue, 24 Mar 2015 18:43:46 GMT</pubDate><content:encoded>&lt;p&gt;I recently had a server freeze up when I wasn’t on-site and needed to power cycle it. I had configured iDrac before but it was not responsive. Here are some useful commands that can configure, reboot, and reset the iDrac function on Dell Servers. The commands below are run from a command prompt on the server (unless otherwise stated) in the (C:\Program Files\Dell\SysMgt\idrac) path.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2015/03/idrac.webp&quot; alt=&quot;iDrac&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Remote Commands (Workstation or another server)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;racadm -r -u -p&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Example: &lt;code&gt;racadm -r 10.1.1.1 -u root -p calvin getsysinfo&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;DEFAULT USER: root&lt;/p&gt;
&lt;p&gt;DEFAULT PASS: calvin&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;iDrac Information&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;racadm getsysinfo&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Reset and Factory Defaults&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;racadm racreset&lt;/code&gt; (soft Reset)&lt;/p&gt;
&lt;p&gt;&lt;code&gt;racadm racresetcfg&lt;/code&gt; (Hard Reset – Resets IP/Account settings back to factory default)&lt;/p&gt;
&lt;p&gt;NOTE: Resets Default IP &amp;gt; 192.168.0.120&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Network Setup&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;racadm config -g cfgLanNetworking -o cfgNicEnable 1
racadm config -g cfgLanNetworking -o cfgNicIpAddress 192.168.0.120
racadm config -g cfgLanNetworking -o cfgNicNetmask 255.255.255.0
racadm config -g cfgLanNetworking -o cfgNicGateway 192.168.0.120
racadm config -g cfgLanNetworking -o cfgNicUseDHCP 0
racadm config -g cfgLanNetworking -o cfgDNSServersFromDHCP 0
racadm config -g cfgLanNetworking -o cfgDNSServer1 192.168.0.5
racadm config -g cfgLanNetworking -o cfgDNSServer2 192.168.0.6
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;User Setup&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;racadm config -g cfgUserAdmin -o cfgUserAdminUserName -i 2 john
racadm config -g cfgUserAdmin -o cfgUserAdminPassword -i 2 123456
racadm config -g cfgUserAdmin -o cfgUserAdminEnable -i 2 1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To verify the new user, use one of the following commands:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;racadm getconfig -u john
racadm getconfig –g cfgUserAdmin –i 2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;From here you will use your web browser to enter the iDrac configuration GUI and finish setting up SMTP servers, alerts and other things. I only recommend the above from command line since it gives direct access when the web browser isn’t functions due to bad IP address or invalid username.&lt;/p&gt;
</content:encoded></item><item><title>GFI Archiver resource usage</title><link>https://christitus.com/gfi-archiver-resource-usage/</link><guid isPermaLink="true">https://christitus.com/gfi-archiver-resource-usage/</guid><description>&lt;p&gt;Does your GFI Archiver resource usage SQL process ballon over 8GB? If so, the following procedure will reduce usage by about half and fix many performance issues.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Stop all MailArchiver and SQL services&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a backup of ..MailArchiverStoreDataproduct.config&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Edit product.config and add the following key within the &lt;code&gt;&amp;lt;AppSettings&amp;gt;&lt;/code&gt; section: &lt;code&gt;&amp;lt;add key=&quot;MaxPoolSize&quot; value=&quot;20&quot; /&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Re-start the services&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;*Note GFI has built-in scripts made to stop all NON-SQL services. Run the Stop script then stop SQL Server Instance, When starting start SQL Server Service before running a start script. The scripts default location are: ..MailArchiver\Tools\Scripts&lt;/p&gt;
&lt;p&gt;After performing this procedure the SQL Server Process is now under 4GB or cut in half from their previous usage. In closing, this type of tweak is vital especially if you are running out of resources on the source server or you are running into performance problems within GFI Archiver.&lt;/p&gt;
</description><pubDate>Fri, 06 Mar 2015 23:56:01 GMT</pubDate><content:encoded>&lt;p&gt;Does your GFI Archiver resource usage SQL process ballon over 8GB? If so, the following procedure will reduce usage by about half and fix many performance issues.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Stop all MailArchiver and SQL services&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a backup of ..MailArchiverStoreDataproduct.config&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Edit product.config and add the following key within the &lt;code&gt;&amp;lt;AppSettings&amp;gt;&lt;/code&gt; section: &lt;code&gt;&amp;lt;add key=&quot;MaxPoolSize&quot; value=&quot;20&quot; /&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Re-start the services&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;*Note GFI has built-in scripts made to stop all NON-SQL services. Run the Stop script then stop SQL Server Instance, When starting start SQL Server Service before running a start script. The scripts default location are: ..MailArchiver\Tools\Scripts&lt;/p&gt;
&lt;p&gt;After performing this procedure the SQL Server Process is now under 4GB or cut in half from their previous usage. In closing, this type of tweak is vital especially if you are running out of resources on the source server or you are running into performance problems within GFI Archiver.&lt;/p&gt;
</content:encoded></item><item><title>Raid Re-syncing Windows software raid</title><link>https://christitus.com/windows-software-raid/</link><guid isPermaLink="true">https://christitus.com/windows-software-raid/</guid><description>&lt;p&gt;I want to preface this article in saying that I would never use a software raid in a business environment. However, recently I tried the windows software raid on a home theater PC. We recently had a power issue and caused the RAID 1 to go into resyncing status. Since it was about 2 TB of data, the resync would take several days and be causing performance issues. I found I could not break the raid or remove the mirror.&lt;/p&gt;
&lt;p&gt;The following solutions are how you’d fix the issue:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2014/12/resyncing.webp&quot; alt=&quot;resyncing&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Solution One&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Open up Disk management (Start -&amp;gt; Run -&amp;gt; Type diskmgmt.msc)&lt;/li&gt;
&lt;li&gt;Right click disk to remove from Raid and select Offline (Click on Disk to left not the graphic on right)&lt;/li&gt;
&lt;li&gt;Reboot PC&lt;/li&gt;
&lt;li&gt;Open Disk management back up, select disk, and put online.&lt;/li&gt;
&lt;li&gt;Immediately after, Right click graphic and select remove Mirror.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Solution Two&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Physically unplug one of the disks&lt;/li&gt;
&lt;li&gt;Open Disk Management&lt;/li&gt;
&lt;li&gt;Remove Mirror&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In closing, this will get rid of your raid and give you the ability to repurpose these disks as you see fit. In the above experience, I still had my data on both disks so I just formatted one and repurposed it for other functions.&lt;/p&gt;
</description><pubDate>Sun, 28 Dec 2014 22:53:22 GMT</pubDate><content:encoded>&lt;p&gt;I want to preface this article in saying that I would never use a software raid in a business environment. However, recently I tried the windows software raid on a home theater PC. We recently had a power issue and caused the RAID 1 to go into resyncing status. Since it was about 2 TB of data, the resync would take several days and be causing performance issues. I found I could not break the raid or remove the mirror.&lt;/p&gt;
&lt;p&gt;The following solutions are how you’d fix the issue:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2014/12/resyncing.webp&quot; alt=&quot;resyncing&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Solution One&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Open up Disk management (Start -&amp;gt; Run -&amp;gt; Type diskmgmt.msc)&lt;/li&gt;
&lt;li&gt;Right click disk to remove from Raid and select Offline (Click on Disk to left not the graphic on right)&lt;/li&gt;
&lt;li&gt;Reboot PC&lt;/li&gt;
&lt;li&gt;Open Disk management back up, select disk, and put online.&lt;/li&gt;
&lt;li&gt;Immediately after, Right click graphic and select remove Mirror.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Solution Two&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Physically unplug one of the disks&lt;/li&gt;
&lt;li&gt;Open Disk Management&lt;/li&gt;
&lt;li&gt;Remove Mirror&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In closing, this will get rid of your raid and give you the ability to repurpose these disks as you see fit. In the above experience, I still had my data on both disks so I just formatted one and repurposed it for other functions.&lt;/p&gt;
</content:encoded></item><item><title>Deploy excel macros to all xls files on startup</title><link>https://christitus.com/deploy-excel-macros/</link><guid isPermaLink="true">https://christitus.com/deploy-excel-macros/</guid><description>&lt;p&gt;To deploy excel macros on every excel file you open, you will need to create a personal file in your XLStart folder.&lt;/p&gt;
&lt;h2&gt;Here is a step-by-step&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Create and test your macro&lt;/li&gt;
&lt;li&gt;Save as – Personal.xls (Macro-Enabled workbook)&lt;/li&gt;
&lt;li&gt;Copy the personal file to your C:Program Files\Microsoft Office\Office1#\XLStart folder&lt;/li&gt;
&lt;li&gt;Done!&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I have no clue why the articles on TechNet and Microsoft’s Knowledge-base are so long when this is all you have to do.  Other than its Microsoft 😉&lt;/p&gt;
&lt;p&gt;Note: I’ve also heard of folks dropping there *.bas macro files directly into XLStart and having the same result, but I personally have not used that method.&lt;/p&gt;
</description><pubDate>Tue, 01 Jul 2014 15:39:39 GMT</pubDate><content:encoded>&lt;p&gt;To deploy excel macros on every excel file you open, you will need to create a personal file in your XLStart folder.&lt;/p&gt;
&lt;h2&gt;Here is a step-by-step&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Create and test your macro&lt;/li&gt;
&lt;li&gt;Save as – Personal.xls (Macro-Enabled workbook)&lt;/li&gt;
&lt;li&gt;Copy the personal file to your C:Program Files\Microsoft Office\Office1#\XLStart folder&lt;/li&gt;
&lt;li&gt;Done!&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I have no clue why the articles on TechNet and Microsoft’s Knowledge-base are so long when this is all you have to do.  Other than its Microsoft 😉&lt;/p&gt;
&lt;p&gt;Note: I’ve also heard of folks dropping there *.bas macro files directly into XLStart and having the same result, but I personally have not used that method.&lt;/p&gt;
</content:encoded></item><item><title>Remove or Hide System Reserved Partition</title><link>https://christitus.com/hide-system-reserved-partition/</link><guid isPermaLink="true">https://christitus.com/hide-system-reserved-partition/</guid><description>&lt;p&gt;Does your system reserve partition have a drive letter? With these steps, you will Hide System Reserved Partition and no longer see it when browsing your computer.&lt;/p&gt;
&lt;p&gt;Here is the fix using Diskpart:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Load Command Prompt (cmd)&lt;/li&gt;
&lt;li&gt;Load Diskpart (diskpart)&lt;/li&gt;
&lt;li&gt;List Disks (list disk)&lt;/li&gt;
&lt;li&gt;Select Proper Disk (select disk #)&lt;/li&gt;
&lt;li&gt;List Partitions (list partition)&lt;/li&gt;
&lt;li&gt;Select Proper Partition (select partition #)&lt;/li&gt;
&lt;li&gt;List Volumes (list volume) NOTE: Look at Drive letter of system reserved volume&lt;/li&gt;
&lt;li&gt;Select the volume to hide (select volume #)&lt;/li&gt;
&lt;li&gt;Remove assigned disk letter (remote letter X)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;With this, you should no longer see it, and you will Hide System Reserved Partition for good.&lt;/p&gt;
</description><pubDate>Thu, 26 Jun 2014 17:55:42 GMT</pubDate><content:encoded>&lt;p&gt;Does your system reserve partition have a drive letter? With these steps, you will Hide System Reserved Partition and no longer see it when browsing your computer.&lt;/p&gt;
&lt;p&gt;Here is the fix using Diskpart:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Load Command Prompt (cmd)&lt;/li&gt;
&lt;li&gt;Load Diskpart (diskpart)&lt;/li&gt;
&lt;li&gt;List Disks (list disk)&lt;/li&gt;
&lt;li&gt;Select Proper Disk (select disk #)&lt;/li&gt;
&lt;li&gt;List Partitions (list partition)&lt;/li&gt;
&lt;li&gt;Select Proper Partition (select partition #)&lt;/li&gt;
&lt;li&gt;List Volumes (list volume) NOTE: Look at Drive letter of system reserved volume&lt;/li&gt;
&lt;li&gt;Select the volume to hide (select volume #)&lt;/li&gt;
&lt;li&gt;Remove assigned disk letter (remote letter X)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;With this, you should no longer see it, and you will Hide System Reserved Partition for good.&lt;/p&gt;
</content:encoded></item><item><title>Using the find command Linux Terminal</title><link>https://christitus.com/find-command-linux-terminal/</link><guid isPermaLink="true">https://christitus.com/find-command-linux-terminal/</guid><description>&lt;p&gt;Here is the syntax for using the find command Linux terminal. The following commands are great to have in your back pocket when looking for specific files or directories.&lt;/p&gt;
&lt;p&gt;How to find a file from the root directory and check the entire system:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;find / -name filename.ext&lt;/code&gt;&lt;br /&gt;
See directory structure without files (requires &lt;code&gt;tree&lt;/code&gt; use yum or apt-get to install)&lt;/p&gt;
&lt;p&gt;&lt;code&gt;tree -d /var/www/&lt;/code&gt;
&lt;em&gt;Note: if you don’t include the -d it will list ALL files and folders&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The two commands I use almost daily as they are fantastic for finding files or just seeing how a programs directories are structured.&lt;/p&gt;
</description><pubDate>Fri, 21 Feb 2014 20:56:09 GMT</pubDate><content:encoded>&lt;p&gt;Here is the syntax for using the find command Linux terminal. The following commands are great to have in your back pocket when looking for specific files or directories.&lt;/p&gt;
&lt;p&gt;How to find a file from the root directory and check the entire system:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;find / -name filename.ext&lt;/code&gt;&lt;br /&gt;
See directory structure without files (requires &lt;code&gt;tree&lt;/code&gt; use yum or apt-get to install)&lt;/p&gt;
&lt;p&gt;&lt;code&gt;tree -d /var/www/&lt;/code&gt;
&lt;em&gt;Note: if you don’t include the -d it will list ALL files and folders&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The two commands I use almost daily as they are fantastic for finding files or just seeing how a programs directories are structured.&lt;/p&gt;
</content:encoded></item><item><title>Take ownership of an entire drive in Windows</title><link>https://christitus.com/take-ownership-windows/</link><guid isPermaLink="true">https://christitus.com/take-ownership-windows/</guid><description>&lt;p&gt;The commands below will show you how to take ownership of an entire drive. Here is a simple script to accomplish just that.&lt;/p&gt;
&lt;p&gt;Option 1: Create a cmd file takeowner.cmd in notepad&lt;/p&gt;
&lt;p&gt;Option 2: Type the following or past this in a command line prompt one line at a time&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;takeown /f %1 /r /d y
icacls %1 /grant administrators:F /t
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Please Note: This will take a large amount of time on big drives&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In closing, this will work in almost any situation, however, if you do have issues check out my PowerShell post on taking ownership of entire network drives.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://christitus.com/changing-file-permissions/&quot;&gt;File Permissions in PowerShell&lt;/a&gt;&lt;/p&gt;
</description><pubDate>Mon, 13 Jan 2014 16:37:53 GMT</pubDate><content:encoded>&lt;p&gt;The commands below will show you how to take ownership of an entire drive. Here is a simple script to accomplish just that.&lt;/p&gt;
&lt;p&gt;Option 1: Create a cmd file takeowner.cmd in notepad&lt;/p&gt;
&lt;p&gt;Option 2: Type the following or past this in a command line prompt one line at a time&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;takeown /f %1 /r /d y
icacls %1 /grant administrators:F /t
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Please Note: This will take a large amount of time on big drives&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In closing, this will work in almost any situation, however, if you do have issues check out my PowerShell post on taking ownership of entire network drives.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://christitus.com/changing-file-permissions/&quot;&gt;File Permissions in PowerShell&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>Outlook Security Certificate is invalid</title><link>https://christitus.com/outlook-security-certificate/</link><guid isPermaLink="true">https://christitus.com/outlook-security-certificate/</guid><description>&lt;p&gt;The following article fixes the Outlook security certificate error your users get when they connect to your exchange server internally. This is typically from installing a 3rd party SSL Certificate.&lt;/p&gt;
&lt;p&gt;This walkthrough was adapted from a Spiceworks article that is no longer
available.&lt;/p&gt;
&lt;p&gt;Issue: Outlook anywhere works fine with third party cert, but internal Outlook clients get cert error with NETBIOS name of Exchange server.&lt;/p&gt;
&lt;p&gt;Example: &lt;code&gt;https://NetBIOS_name.contoso.com/autodiscover/autodiscover.xml&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Note: I tested this on Exchange 2010 as well.&lt;/p&gt;
&lt;h2&gt;Outlook Security Certificate Resolution&lt;/h2&gt;
&lt;p&gt;Change the URLs for the appropriate Exchange 2007 components. To do this, follow these steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Start the Exchange Management Shell.&lt;/li&gt;
&lt;li&gt;Change the Autodiscover URL in the Service Connection Point. The Service Connection Point is stored in the Active Directory directory service. To change this URL, type the following command, and then press Enter:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;`Set-ClientAccessServer -Identity CAS_Server_Name -AutodiscoverServiceInternalUri https://mail.contoso.com/autodiscover/autodiscover.xml`
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;Change the InternalUrl attribute of the EWS. To do this, type the following command, and then press Enter:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;`Set-WebServicesVirtualDirectory -Identity &quot;CAS_Server_NameEWS (Default Web Site)&quot; -InternalUrl https://mail.contoso.com/ews/exchange.asmx`
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;Change the InternalUrl attribute for Web-based Offline Address Book distribution. To do this, type the following command, and then press Enter:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;`Set-OABVirtualDirectory -Identity &quot;CAS_Server_nameoab (Default Web Site)&quot; -InternalUrl https://mail.contoso.com/oab`
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;Change the InternalUrl attribute of the UM Web service. To do this, type the following command, and then press Enter:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;`Set-UMVirtualDirectory -Identity &quot;CAS_Server_Nameunifiedmessaging (Default Web Site)&quot; -InternalUrl https://mail.contoso.com/unifiedmessaging/service.asmx`

 _Note: The command in step 5 is required only in an Exchange 2007 environment._ This command no longer exists in an Exchange 2010 environment. Instead, the WebServices URL is used for this purpose.
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;Open IIS Manager.&lt;/li&gt;
&lt;li&gt;Expand the local computer, and then expand Application Pools.&lt;/li&gt;
&lt;li&gt;Right-click MSExchangeAutodiscoverAppPool, and then click Recycle.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now that you have finished, you will not see anymore certificate popups. I highly recommend issuing a proper certificate if possible, but this typically happens when your active directory is not resolvable from the outside world. Such as &lt;code&gt;contsco.local&lt;/code&gt; instead of &lt;code&gt;microsoft.com&lt;/code&gt;.&lt;/p&gt;
</description><pubDate>Mon, 09 Dec 2013 21:33:37 GMT</pubDate><content:encoded>&lt;p&gt;The following article fixes the Outlook security certificate error your users get when they connect to your exchange server internally. This is typically from installing a 3rd party SSL Certificate.&lt;/p&gt;
&lt;p&gt;This walkthrough was adapted from a Spiceworks article that is no longer
available.&lt;/p&gt;
&lt;p&gt;Issue: Outlook anywhere works fine with third party cert, but internal Outlook clients get cert error with NETBIOS name of Exchange server.&lt;/p&gt;
&lt;p&gt;Example: &lt;code&gt;https://NetBIOS_name.contoso.com/autodiscover/autodiscover.xml&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Note: I tested this on Exchange 2010 as well.&lt;/p&gt;
&lt;h2&gt;Outlook Security Certificate Resolution&lt;/h2&gt;
&lt;p&gt;Change the URLs for the appropriate Exchange 2007 components. To do this, follow these steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Start the Exchange Management Shell.&lt;/li&gt;
&lt;li&gt;Change the Autodiscover URL in the Service Connection Point. The Service Connection Point is stored in the Active Directory directory service. To change this URL, type the following command, and then press Enter:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;`Set-ClientAccessServer -Identity CAS_Server_Name -AutodiscoverServiceInternalUri https://mail.contoso.com/autodiscover/autodiscover.xml`
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;Change the InternalUrl attribute of the EWS. To do this, type the following command, and then press Enter:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;`Set-WebServicesVirtualDirectory -Identity &quot;CAS_Server_NameEWS (Default Web Site)&quot; -InternalUrl https://mail.contoso.com/ews/exchange.asmx`
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;Change the InternalUrl attribute for Web-based Offline Address Book distribution. To do this, type the following command, and then press Enter:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;`Set-OABVirtualDirectory -Identity &quot;CAS_Server_nameoab (Default Web Site)&quot; -InternalUrl https://mail.contoso.com/oab`
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;Change the InternalUrl attribute of the UM Web service. To do this, type the following command, and then press Enter:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;`Set-UMVirtualDirectory -Identity &quot;CAS_Server_Nameunifiedmessaging (Default Web Site)&quot; -InternalUrl https://mail.contoso.com/unifiedmessaging/service.asmx`

 _Note: The command in step 5 is required only in an Exchange 2007 environment._ This command no longer exists in an Exchange 2010 environment. Instead, the WebServices URL is used for this purpose.
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;Open IIS Manager.&lt;/li&gt;
&lt;li&gt;Expand the local computer, and then expand Application Pools.&lt;/li&gt;
&lt;li&gt;Right-click MSExchangeAutodiscoverAppPool, and then click Recycle.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now that you have finished, you will not see anymore certificate popups. I highly recommend issuing a proper certificate if possible, but this typically happens when your active directory is not resolvable from the outside world. Such as &lt;code&gt;contsco.local&lt;/code&gt; instead of &lt;code&gt;microsoft.com&lt;/code&gt;.&lt;/p&gt;
</content:encoded></item><item><title>Removing or Adding 9 to Dial out on VeriFone VX510</title><link>https://christitus.com/verifone-vx510-add-9/</link><guid isPermaLink="true">https://christitus.com/verifone-vx510-add-9/</guid><description>&lt;p&gt;Using the following steps to add or remove a 9 when using the VeriFone VX510 to process credit cards.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2013/08/33937_Vx510hero-e1375896480531.webp&quot; alt=&quot;VX510&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Step-by-Step Instructions&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;First go into Quick Setup (6 on pad)&lt;/li&gt;
&lt;li&gt;Password is 1 Alpha Alpha 66831&lt;/li&gt;
&lt;li&gt;Select Phone&lt;/li&gt;
&lt;li&gt;Edit to add or remove 9 and then exit&lt;/li&gt;
&lt;li&gt;Done!&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now run a couple tests to verify that is properly dialing out on your VeriFone VX510. Once done you don’t have to worry about it failing when dialing out any longer. Should you continue to have problems, it is likely that your unit is defective and will need to be replaced.&lt;/p&gt;
</description><pubDate>Wed, 07 Aug 2013 17:29:19 GMT</pubDate><content:encoded>&lt;p&gt;Using the following steps to add or remove a 9 when using the VeriFone VX510 to process credit cards.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2013/08/33937_Vx510hero-e1375896480531.webp&quot; alt=&quot;VX510&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Step-by-Step Instructions&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;First go into Quick Setup (6 on pad)&lt;/li&gt;
&lt;li&gt;Password is 1 Alpha Alpha 66831&lt;/li&gt;
&lt;li&gt;Select Phone&lt;/li&gt;
&lt;li&gt;Edit to add or remove 9 and then exit&lt;/li&gt;
&lt;li&gt;Done!&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now run a couple tests to verify that is properly dialing out on your VeriFone VX510. Once done you don’t have to worry about it failing when dialing out any longer. Should you continue to have problems, it is likely that your unit is defective and will need to be replaced.&lt;/p&gt;
</content:encoded></item><item><title>Installing .NET Framework 3.5 / 3.0 / 2.0 Error 0x800F0906</title><link>https://christitus.com/error-0x800f0906/</link><guid isPermaLink="true">https://christitus.com/error-0x800f0906/</guid><description>&lt;p&gt;Recently I had error 0x800F0906 when doing a dot net framework update. &lt;a href=&quot;http://support.microsoft.com/kb/2734782&quot;&gt;http://support.microsoft.com/kb/2734782&lt;/a&gt; Note: You could take this resolution further and push it out via network script if needed. Make sure to copy the Windows 8 DVD to a local network drive before attempting.&lt;/p&gt;
&lt;p&gt;To resolve this problem, use one of the following methods, as appropriate for the error code that you are receiving.&lt;/p&gt;
&lt;h2&gt;Error code: 0x800F0906&lt;/h2&gt;
&lt;p&gt;This error code occurs because the computer cannot download the required files from Windows Update.&lt;/p&gt;
&lt;p&gt;This behavior can be caused by a system administrator who configures the computer to use Windows Server Update Services (WSUS) instead of the Microsoft Windows Update server for servicing. In this case, contact your system administrator and request that they enable the &lt;em&gt;Specify settings for optional component installation and component repair&lt;/em&gt; Group Policy setting and configure the &lt;em&gt;Alternate source file path&lt;/em&gt; value or select the &lt;em&gt;Contact Windows Update directly to download repair content instead of Windows Server Update Services (WSUS)&lt;/em&gt; option.&lt;/p&gt;
&lt;h3&gt;Configure Group Policy – Option 1&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Start the Local Group Policy Editor or Group Policy Management Console.&lt;/li&gt;
&lt;li&gt;Expand &lt;em&gt;Computer Configuration&lt;/em&gt;, expand &lt;em&gt;Administrative Templates&lt;/em&gt;, and then select &lt;em&gt;System&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Open the &lt;em&gt;Specify settings for optional component installation and component repair&lt;/em&gt; Group Policy setting, and then select &lt;em&gt;Enabled&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you want to specify an alternative source file, in the &lt;em&gt;Alternate source file path&lt;/em&gt; box, specify a fully qualified path of a shared folder that contains the contents of the sources\sxs folder from the installation media. Or, specify a WIM file. To specify a WIM file as an alternative source file location, add the prefix &lt;em&gt;WIM:&lt;/em&gt; to the path, and then add the index of the image that you want to use in the WIM file as a suffix. The following are examples of values that you can specify:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Path of a shared folder: &lt;em&gt;&lt;code&gt;\server_name\share\Win8sxs&lt;/code&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Path of a WIM file, in which 3 represents the index of the image in which the feature files are found: &lt;em&gt;&lt;code&gt;WIM: \server_name\share\install.wim:3&lt;/code&gt;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If it is applicable to do this, select the&lt;em&gt;Contact Windows Update directly to download repair content instead of Windows Server Update Services (WSUS)&lt;/em&gt; check box.&lt;br /&gt;
Tap or click&lt;em&gt;O&lt;/em&gt;K.&lt;br /&gt;
At an elevated command prompt, type the following command and then press Enter to apply the policy immediately:&lt;br /&gt;
&lt;code&gt;gpupdate /force&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Use DISM via PowerShell – Option 2&lt;/h3&gt;
&lt;p&gt;Insert the Windows 8 or Windows Server 2012 installation media.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;At an elevated command prompt, run the following command:
&lt;code&gt;Dism /online /enable-feature /featurename:NetFx3 /All /Source:Drive:sourcessxs /LimitAccess&lt;/code&gt;
&lt;strong&gt;Note&lt;/strong&gt; In this command, Drive is a placeholder for the drive letter for the DVD drive or for the Windows 8 installation media. For example, you run the following command:&lt;br /&gt;
&lt;code&gt;Dism /online /enable-feature /featurename:NetFx3 /All /Source:D:sourcessxs /LimitAccess&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
</description><pubDate>Mon, 01 Jul 2013 19:23:04 GMT</pubDate><content:encoded>&lt;p&gt;Recently I had error 0x800F0906 when doing a dot net framework update. &lt;a href=&quot;http://support.microsoft.com/kb/2734782&quot;&gt;http://support.microsoft.com/kb/2734782&lt;/a&gt; Note: You could take this resolution further and push it out via network script if needed. Make sure to copy the Windows 8 DVD to a local network drive before attempting.&lt;/p&gt;
&lt;p&gt;To resolve this problem, use one of the following methods, as appropriate for the error code that you are receiving.&lt;/p&gt;
&lt;h2&gt;Error code: 0x800F0906&lt;/h2&gt;
&lt;p&gt;This error code occurs because the computer cannot download the required files from Windows Update.&lt;/p&gt;
&lt;p&gt;This behavior can be caused by a system administrator who configures the computer to use Windows Server Update Services (WSUS) instead of the Microsoft Windows Update server for servicing. In this case, contact your system administrator and request that they enable the &lt;em&gt;Specify settings for optional component installation and component repair&lt;/em&gt; Group Policy setting and configure the &lt;em&gt;Alternate source file path&lt;/em&gt; value or select the &lt;em&gt;Contact Windows Update directly to download repair content instead of Windows Server Update Services (WSUS)&lt;/em&gt; option.&lt;/p&gt;
&lt;h3&gt;Configure Group Policy – Option 1&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Start the Local Group Policy Editor or Group Policy Management Console.&lt;/li&gt;
&lt;li&gt;Expand &lt;em&gt;Computer Configuration&lt;/em&gt;, expand &lt;em&gt;Administrative Templates&lt;/em&gt;, and then select &lt;em&gt;System&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Open the &lt;em&gt;Specify settings for optional component installation and component repair&lt;/em&gt; Group Policy setting, and then select &lt;em&gt;Enabled&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you want to specify an alternative source file, in the &lt;em&gt;Alternate source file path&lt;/em&gt; box, specify a fully qualified path of a shared folder that contains the contents of the sources\sxs folder from the installation media. Or, specify a WIM file. To specify a WIM file as an alternative source file location, add the prefix &lt;em&gt;WIM:&lt;/em&gt; to the path, and then add the index of the image that you want to use in the WIM file as a suffix. The following are examples of values that you can specify:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Path of a shared folder: &lt;em&gt;&lt;code&gt;\server_name\share\Win8sxs&lt;/code&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Path of a WIM file, in which 3 represents the index of the image in which the feature files are found: &lt;em&gt;&lt;code&gt;WIM: \server_name\share\install.wim:3&lt;/code&gt;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If it is applicable to do this, select the&lt;em&gt;Contact Windows Update directly to download repair content instead of Windows Server Update Services (WSUS)&lt;/em&gt; check box.&lt;br /&gt;
Tap or click&lt;em&gt;O&lt;/em&gt;K.&lt;br /&gt;
At an elevated command prompt, type the following command and then press Enter to apply the policy immediately:&lt;br /&gt;
&lt;code&gt;gpupdate /force&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Use DISM via PowerShell – Option 2&lt;/h3&gt;
&lt;p&gt;Insert the Windows 8 or Windows Server 2012 installation media.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;At an elevated command prompt, run the following command:
&lt;code&gt;Dism /online /enable-feature /featurename:NetFx3 /All /Source:Drive:sourcessxs /LimitAccess&lt;/code&gt;
&lt;strong&gt;Note&lt;/strong&gt; In this command, Drive is a placeholder for the drive letter for the DVD drive or for the Windows 8 installation media. For example, you run the following command:&lt;br /&gt;
&lt;code&gt;Dism /online /enable-feature /featurename:NetFx3 /All /Source:D:sourcessxs /LimitAccess&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
</content:encoded></item><item><title>Cannot Rename Folders on mapped drive</title><link>https://christitus.com/rename-folders-mapped-drive/</link><guid isPermaLink="true">https://christitus.com/rename-folders-mapped-drive/</guid><description>&lt;p&gt;This error message is displayed and I cannot rename folders on the mapped drive. By making a group policy change I was able to make this error go away.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;The drive that this file or folder is stored on does not allow long file names, or names containing blanks or any of the following characters: / : , ; * ? &amp;lt; &amp;gt; |&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Solution: Create a GPO to fix&lt;/h2&gt;
&lt;p&gt;To resolve this problem, turn off Fast Logon Optimization. I recommend creating a GPO in your domain controller to achieve this. If its an isolated instance to one PC, you can use gpedit.msc to enforce it on that one PC.&lt;/p&gt;
&lt;h3&gt;Group Policy Settings to Change&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;Computer Configuration\Administrative Templates\System\Logon\Always wait for the network at computer startup and logon
User Configuration\Administrative Templates\System\Scripts\Run logon scripts synchronously
&lt;/code&gt;&lt;/pre&gt;
</description><pubDate>Mon, 15 Apr 2013 21:46:08 GMT</pubDate><content:encoded>&lt;p&gt;This error message is displayed and I cannot rename folders on the mapped drive. By making a group policy change I was able to make this error go away.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;The drive that this file or folder is stored on does not allow long file names, or names containing blanks or any of the following characters: / : , ; * ? &amp;lt; &amp;gt; |&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Solution: Create a GPO to fix&lt;/h2&gt;
&lt;p&gt;To resolve this problem, turn off Fast Logon Optimization. I recommend creating a GPO in your domain controller to achieve this. If its an isolated instance to one PC, you can use gpedit.msc to enforce it on that one PC.&lt;/p&gt;
&lt;h3&gt;Group Policy Settings to Change&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;Computer Configuration\Administrative Templates\System\Logon\Always wait for the network at computer startup and logon
User Configuration\Administrative Templates\System\Scripts\Run logon scripts synchronously
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Full Screen RDP and various Remote Desktop Session hotkeys</title><link>https://christitus.com/full-screen-rdp/</link><guid isPermaLink="true">https://christitus.com/full-screen-rdp/</guid><description>&lt;p&gt;Here are all the hotkeys I use regularly when doing Full Screen RDP.&lt;/p&gt;
&lt;p&gt;Full Screen RDP Hotkey:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Ctrl + Alt + Pause/Break Key&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Activate Connection Bar:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Ctrl + Alt + Home&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Send Ctrl+Alt+Del on Remote Computer&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Ctrl + Alt + End&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Simulate Alt+Tab on Remote Computer&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Alt + Page Up/Page Down&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Windows Key Press on Remote Computer&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Alt + Home&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;I often find myself using these hotkeys to move around, but these are needed especially when you have a locked up program in an RDP session.&lt;/p&gt;
</description><pubDate>Tue, 09 Apr 2013 21:40:02 GMT</pubDate><content:encoded>&lt;p&gt;Here are all the hotkeys I use regularly when doing Full Screen RDP.&lt;/p&gt;
&lt;p&gt;Full Screen RDP Hotkey:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Ctrl + Alt + Pause/Break Key&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Activate Connection Bar:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Ctrl + Alt + Home&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Send Ctrl+Alt+Del on Remote Computer&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Ctrl + Alt + End&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Simulate Alt+Tab on Remote Computer&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Alt + Page Up/Page Down&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Windows Key Press on Remote Computer&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Alt + Home&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;I often find myself using these hotkeys to move around, but these are needed especially when you have a locked up program in an RDP session.&lt;/p&gt;
</content:encoded></item><item><title>GFI MailArchiver MAIS Queue Folder has tons of emails stuck</title><link>https://christitus.com/mais-queue-folder/</link><guid isPermaLink="true">https://christitus.com/mais-queue-folder/</guid><description>&lt;p&gt;The Import service can get stuck and this will stop all the mail in the MAIS Queue Folder. These are the emails that have not been processed and added to GFI Archiver yet, so do not delete them. Below is the fix on how I restored the import service and processed all the stuck email.&lt;/p&gt;
&lt;h2&gt;The Fix&lt;/h2&gt;
&lt;p&gt;Deleted all files &lt;strong&gt;EXCEPT&lt;/strong&gt; for *.eml from &lt;code&gt;C:\Program Files (x86)\GFIMailArchiver\MAIS\Queue&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Renamed all *.eml files to *.txt (Command Prompt: ren *.eml *.txt)&lt;/p&gt;
&lt;p&gt;Move all files to &lt;code&gt;C:\Program Files (x86)\GFIMailArchiver\MAIS\Pickup&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;In Closing&lt;/h2&gt;
&lt;p&gt;This will force GFI Mailarchiver to reprocess all these emails. I’d highly recommend doing all these operations from a command prompt as the sheer number of files in the folders can potentially lock up your server when using a Graphic User Interface. Once you restart your processes wait for the MAIS Queue Folder to reduce in size before checking again.&lt;/p&gt;
</description><pubDate>Tue, 09 Apr 2013 16:50:22 GMT</pubDate><content:encoded>&lt;p&gt;The Import service can get stuck and this will stop all the mail in the MAIS Queue Folder. These are the emails that have not been processed and added to GFI Archiver yet, so do not delete them. Below is the fix on how I restored the import service and processed all the stuck email.&lt;/p&gt;
&lt;h2&gt;The Fix&lt;/h2&gt;
&lt;p&gt;Deleted all files &lt;strong&gt;EXCEPT&lt;/strong&gt; for *.eml from &lt;code&gt;C:\Program Files (x86)\GFIMailArchiver\MAIS\Queue&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Renamed all *.eml files to *.txt (Command Prompt: ren *.eml *.txt)&lt;/p&gt;
&lt;p&gt;Move all files to &lt;code&gt;C:\Program Files (x86)\GFIMailArchiver\MAIS\Pickup&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;In Closing&lt;/h2&gt;
&lt;p&gt;This will force GFI Mailarchiver to reprocess all these emails. I’d highly recommend doing all these operations from a command prompt as the sheer number of files in the folders can potentially lock up your server when using a Graphic User Interface. Once you restart your processes wait for the MAIS Queue Folder to reduce in size before checking again.&lt;/p&gt;
</content:encoded></item><item><title>Moving GFI MailArchiver to another server</title><link>https://christitus.com/moving-gfi-mailarchiver/</link><guid isPermaLink="true">https://christitus.com/moving-gfi-mailarchiver/</guid><description>&lt;p&gt;The following walkthrough shows you the process of moving GFI MailArchiver to another server. These KB articles will assist you in the moving and migration of this server. The process is very involved and requires copying all the data files over to the new server. Afterward, backing up every single SQL database (archive store) and detaching/copying them. From there you reattach the stores and reinstall GFI MailArchiver on the new server.&lt;/p&gt;
&lt;h2&gt;Here is the Article describing the data file moves and re-installation on the new server&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Please Note: DO NOT re-install GFI before moving SQL Databases from&lt;/em&gt; the second &lt;em&gt;article unless you plan on leaving SQL on old server!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://support.gfi.com/article/112712-moving-gfi-archiver-to-a-new-server&quot;&gt;https://support.gfi.com/article/112712-moving-gfi-archiver-to-a-new-server&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;This Article describes the actual SQL Server Move&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://support.gfi.com/article/112612-how-to-move-a-gfi-archiver-database-to-another-microsoft-sql-server&quot;&gt;https://support.gfi.com/article/112612-how-to-move-a-gfi-archiver-database-to-another-microsoft-sql-server&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2013/04/Moving-GFI-MailArchiver.webp&quot; alt=&quot;Moving GFI MailArchiver&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Installation Notes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;I had to switch to SQL authentication because my old archive store kept popping up errors.&lt;/li&gt;
&lt;li&gt;A very long process, because of the massive amount of emails in this archiver. Depending on the business it can take a few days or weeks!&lt;/li&gt;
&lt;/ul&gt;
</description><pubDate>Tue, 09 Apr 2013 16:39:37 GMT</pubDate><content:encoded>&lt;p&gt;The following walkthrough shows you the process of moving GFI MailArchiver to another server. These KB articles will assist you in the moving and migration of this server. The process is very involved and requires copying all the data files over to the new server. Afterward, backing up every single SQL database (archive store) and detaching/copying them. From there you reattach the stores and reinstall GFI MailArchiver on the new server.&lt;/p&gt;
&lt;h2&gt;Here is the Article describing the data file moves and re-installation on the new server&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Please Note: DO NOT re-install GFI before moving SQL Databases from&lt;/em&gt; the second &lt;em&gt;article unless you plan on leaving SQL on old server!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://support.gfi.com/article/112712-moving-gfi-archiver-to-a-new-server&quot;&gt;https://support.gfi.com/article/112712-moving-gfi-archiver-to-a-new-server&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;This Article describes the actual SQL Server Move&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://support.gfi.com/article/112612-how-to-move-a-gfi-archiver-database-to-another-microsoft-sql-server&quot;&gt;https://support.gfi.com/article/112612-how-to-move-a-gfi-archiver-database-to-another-microsoft-sql-server&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2013/04/Moving-GFI-MailArchiver.webp&quot; alt=&quot;Moving GFI MailArchiver&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Installation Notes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;I had to switch to SQL authentication because my old archive store kept popping up errors.&lt;/li&gt;
&lt;li&gt;A very long process, because of the massive amount of emails in this archiver. Depending on the business it can take a few days or weeks!&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Configuring SQL Authentication</title><link>https://christitus.com/configuring-sql-authentication/</link><guid isPermaLink="true">https://christitus.com/configuring-sql-authentication/</guid><description>&lt;p&gt;Configuring SQL Authentication can be tricky at times, and this is a great article that goes over the two types of authentication in SQL. I find some programs interface better with direct SQL authentication when Windows Authentication fails for any reason.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: This article is based on GFI&apos;s
&lt;a href=&quot;https://support.gfi.com/article/106972-how-to-configure-microsoft-sql-server-to-accept-sql-authentication-for-gfi-software-products&quot;&gt;SQL authentication guide&lt;/a&gt;,
and all credit for the original procedure goes to GFI.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Fix Authentication in GFI ReportCenter&lt;/h2&gt;
&lt;p&gt;In order to use SQL Server authentication, you must first configure your server using the steps below.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Right-click on the server node and select ‘Properties’&lt;/li&gt;
&lt;li&gt;Select ‘Security’ from the left menu under ‘Select a page’&lt;/li&gt;
&lt;li&gt;Under ‘Server Authentication’, select the ‘SQL Server and Windows Authentication mode option’&lt;/li&gt;
&lt;li&gt;Click ‘OK’ to close the dialog&lt;/li&gt;
&lt;li&gt;Right click on the server node and choose ‘Restart’ for the changes to take effect&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;SQL Server authentication login&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;In the server node expand ‘Security’ and ‘Logins’&lt;/li&gt;
&lt;li&gt;Right click on the login name and select ‘Properties’&lt;/li&gt;
&lt;li&gt;Enter a password and confirm the password for the login&lt;/li&gt;
&lt;li&gt;Select ‘Status’ from the left menu under ‘Select a page’&lt;/li&gt;
&lt;li&gt;Set the ‘Login’ option to ‘Enabled’&lt;/li&gt;
&lt;li&gt;Click ‘OK’ to close the dialog&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Once you have walked through configuring SQL authentication, you can now change your instance to the type you need.&lt;/p&gt;
</description><pubDate>Tue, 09 Apr 2013 16:24:26 GMT</pubDate><content:encoded>&lt;p&gt;Configuring SQL Authentication can be tricky at times, and this is a great article that goes over the two types of authentication in SQL. I find some programs interface better with direct SQL authentication when Windows Authentication fails for any reason.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: This article is based on GFI&apos;s
&lt;a href=&quot;https://support.gfi.com/article/106972-how-to-configure-microsoft-sql-server-to-accept-sql-authentication-for-gfi-software-products&quot;&gt;SQL authentication guide&lt;/a&gt;,
and all credit for the original procedure goes to GFI.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Fix Authentication in GFI ReportCenter&lt;/h2&gt;
&lt;p&gt;In order to use SQL Server authentication, you must first configure your server using the steps below.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Right-click on the server node and select ‘Properties’&lt;/li&gt;
&lt;li&gt;Select ‘Security’ from the left menu under ‘Select a page’&lt;/li&gt;
&lt;li&gt;Under ‘Server Authentication’, select the ‘SQL Server and Windows Authentication mode option’&lt;/li&gt;
&lt;li&gt;Click ‘OK’ to close the dialog&lt;/li&gt;
&lt;li&gt;Right click on the server node and choose ‘Restart’ for the changes to take effect&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;SQL Server authentication login&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;In the server node expand ‘Security’ and ‘Logins’&lt;/li&gt;
&lt;li&gt;Right click on the login name and select ‘Properties’&lt;/li&gt;
&lt;li&gt;Enter a password and confirm the password for the login&lt;/li&gt;
&lt;li&gt;Select ‘Status’ from the left menu under ‘Select a page’&lt;/li&gt;
&lt;li&gt;Set the ‘Login’ option to ‘Enabled’&lt;/li&gt;
&lt;li&gt;Click ‘OK’ to close the dialog&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Once you have walked through configuring SQL authentication, you can now change your instance to the type you need.&lt;/p&gt;
</content:encoded></item><item><title>Could not continue installation because update is pending</title><link>https://christitus.com/update-is-pending/</link><guid isPermaLink="true">https://christitus.com/update-is-pending/</guid><description>&lt;p&gt;When installing a program I kept getting the prompt below that an update is pending. Even after a restart, this would display, therefore I changed these registry keys to clear up the issue.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Microsoft Server setup cannot continue because a restart from a previous installation or update is pending.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;The Fix for an update is pending&lt;/h2&gt;
&lt;p&gt;The following Registry keys control this error message. If you have rebooted and are still experiencing this issue, clear out these keys and relaunch your installer.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\UpdateExeVolatile
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ControlSession Manager\PendingFileRenameOperations
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The Setup MSI displays an error message if one of the following conditions is true:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The value of the &lt;strong&gt;UpdateExeVolatile&lt;/strong&gt;registry key is anything other than 0.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;PendingFileRenameOperations&lt;/strong&gt;registry key has any value.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Microsoft Knowledgebase article&lt;/h3&gt;
&lt;p&gt;You can read this article about regedit.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://technet.microsoft.com/en-us/library/cc164360(v=exchg.80).aspx&quot;&gt;http://technet.microsoft.com/en-us/library/cc164360(v=exchg.80).aspx&lt;/a&gt;&lt;/p&gt;
</description><pubDate>Thu, 04 Apr 2013 19:04:14 GMT</pubDate><content:encoded>&lt;p&gt;When installing a program I kept getting the prompt below that an update is pending. Even after a restart, this would display, therefore I changed these registry keys to clear up the issue.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Microsoft Server setup cannot continue because a restart from a previous installation or update is pending.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;The Fix for an update is pending&lt;/h2&gt;
&lt;p&gt;The following Registry keys control this error message. If you have rebooted and are still experiencing this issue, clear out these keys and relaunch your installer.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\UpdateExeVolatile
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ControlSession Manager\PendingFileRenameOperations
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The Setup MSI displays an error message if one of the following conditions is true:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The value of the &lt;strong&gt;UpdateExeVolatile&lt;/strong&gt;registry key is anything other than 0.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;PendingFileRenameOperations&lt;/strong&gt;registry key has any value.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Microsoft Knowledgebase article&lt;/h3&gt;
&lt;p&gt;You can read this article about regedit.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://technet.microsoft.com/en-us/library/cc164360(v=exchg.80).aspx&quot;&gt;http://technet.microsoft.com/en-us/library/cc164360(v=exchg.80).aspx&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>Ideas</title><link>https://christitus.com/ideas/</link><guid isPermaLink="true">https://christitus.com/ideas/</guid><description>&lt;p&gt;Current Ideas for Videos and Articles&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[ ] ZFS, couple that with Sanoid and Syncoid&lt;/li&gt;
&lt;li&gt;[ ] Tiling Window Manager for Windows - &lt;a href=&quot;https://github.com/LGUG2Z/komorebi&quot;&gt;https://github.com/LGUG2Z/komorebi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[ ] TrueNAS Scale&lt;/li&gt;
&lt;li&gt;[ ] Hyprland Window Manager for Wayland - &lt;a href=&quot;https://github.com/hyprwm/Hyprland&quot;&gt;https://github.com/hyprwm/Hyprland&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[ ] Setting Up Linux Gaming&lt;/li&gt;
&lt;li&gt;[ ] Live Stream Radio Browser Program (Strimio)&lt;/li&gt;
&lt;li&gt;[ ] DSTask - &lt;a href=&quot;https://github.com/naggie/dstask&quot;&gt;https://github.com/naggie/dstask&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[ ] &lt;a href=&quot;http://Portainer.io&quot;&gt;Portainer.io&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[ ] PiKVM (&lt;a href=&quot;https://pikvm.org/&quot;&gt;https://pikvm.org/&lt;/a&gt;)&lt;a href=&quot;https://pikvm.org/&quot;&gt;https://pikvm.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[ ] KVM / QEMU full tutorial&lt;/li&gt;
&lt;li&gt;[ ] Zerotier - BestVPN&lt;/li&gt;
&lt;li&gt;[ ] Darling - MacOS Emulation &lt;a href=&quot;https://www.darlinghq.org/&quot;&gt;https://www.darlinghq.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[ ] plex server setup linux&lt;/li&gt;
&lt;li&gt;[ ] Enable GPO in Win 10 Home &lt;a href=&quot;https://www.itechtics.com/enable-gpedit-windows-10-home/#Method_1_Enable_Group_Policy_Editor_in_Windows_10_Home_using_GPEdit_Installer&quot;&gt;https://www.itechtics.com/enable-gpedit-windows-10-home/#Method_1_Enable_Group_Policy_Editor_in_Windows_10_Home_using_GPEdit_Installer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[ ] automount drives systemd&lt;/li&gt;
&lt;li&gt;[ ] rEFInd Bootloader&lt;/li&gt;
&lt;li&gt;[ ] &lt;a href=&quot;http://snapdrop.net/&quot;&gt;snapdrop.net&lt;/a&gt; - Share files between devices&lt;/li&gt;
&lt;li&gt;[ ] WinGet and Windows Terminal&lt;/li&gt;
&lt;li&gt;[ ] &lt;a href=&quot;https://mycroft.ai&quot;&gt;https://mycroft.ai&lt;/a&gt; - Open Source Home Assistant&lt;/li&gt;
&lt;li&gt;[ ] Samba Advanced Video&lt;/li&gt;
&lt;li&gt;[ ] Github config save&lt;/li&gt;
&lt;li&gt;[ ] systemd-services on startup cleanup&lt;/li&gt;
&lt;li&gt;[ ] debtap install deb packages on arch - rpm2cpio - alien&lt;/li&gt;
&lt;li&gt;[ ] &lt;a href=&quot;https://github.com/dreamer/luxtorpeda/&quot;&gt;https://github.com/dreamer/luxtorpeda/&lt;/a&gt; - Gaming native&lt;/li&gt;
&lt;li&gt;[ ] OpenHABian&lt;/li&gt;
&lt;li&gt;[ ] Startup Programs and managing them&lt;/li&gt;
&lt;li&gt;[ ] Live USB Environments&lt;/li&gt;
&lt;li&gt;[ ] jellyfin&lt;/li&gt;
&lt;li&gt;[ ] Adding Android Libraries / Davik Virtualization&lt;/li&gt;
&lt;li&gt;[ ] Quibble Windows Bootloader - &lt;a href=&quot;https://github.com/maharmstone/quibble&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/maharmstone/quibble&quot;&gt;https://github.com/maharmstone/quibble&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[ ] Kodachi&lt;/li&gt;
&lt;li&gt;[ ] Linux Users and Groups&lt;/li&gt;
&lt;li&gt;[ ] Grafana Zabbix Monitoring&lt;/li&gt;
&lt;li&gt;[ ] Alienvault OSSIM&lt;/li&gt;
&lt;li&gt;[ ] resize filesystem&lt;/li&gt;
&lt;li&gt;[ ] URXVT&lt;/li&gt;
&lt;li&gt;[ ] Ranger&lt;/li&gt;
&lt;li&gt;[ ] Vagrant&lt;/li&gt;
&lt;li&gt;[ ] Arch CHROOT Repair&lt;/li&gt;
&lt;li&gt;[ ] alpine linux - The 100MB Linux&lt;/li&gt;
&lt;li&gt;[ ] Kubernetes Initial Setup&lt;/li&gt;
&lt;li&gt;[ ] DEX Linux&lt;/li&gt;
&lt;li&gt;[ ] Making a workstation to load images on PCs - FOG Project&lt;/li&gt;
&lt;li&gt;[ ] Linux Screen Command&lt;/li&gt;
&lt;li&gt;[ ] Firejail&lt;/li&gt;
&lt;li&gt;[ ] Chroot from USB drive&lt;/li&gt;
&lt;li&gt;[ ] Debloat Linux&lt;/li&gt;
&lt;li&gt;[ ] Linux Firewall - UFW&lt;/li&gt;
&lt;li&gt;[ ] &lt;a href=&quot;http://privacytools.io/&quot;&gt;Privacytools.io&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[ ] Add SSD or Hard Drive to VM&lt;/li&gt;
&lt;li&gt;[ ] pulse effects and pulse equalizer&lt;/li&gt;
&lt;li&gt;[ ] PxE and TFTP Servers&lt;/li&gt;
&lt;li&gt;[ ] Update MOTD for on Servers&lt;/li&gt;
&lt;li&gt;[ ] Using the grep command&lt;/li&gt;
&lt;li&gt;[ ] LAMP Stack on Ubuntu&lt;/li&gt;
&lt;li&gt;[ ] SMB4k&lt;/li&gt;
&lt;li&gt;[ ] Docker&lt;/li&gt;
&lt;li&gt;[ ] Redhat Line of Products (Insights / Ansible / OpenShift)&lt;/li&gt;
&lt;li&gt;[ ] Snaps and Flatpacks&lt;/li&gt;
&lt;/ul&gt;
</description><pubDate>Wed, 14 Nov 2012 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Current Ideas for Videos and Articles&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[ ] ZFS, couple that with Sanoid and Syncoid&lt;/li&gt;
&lt;li&gt;[ ] Tiling Window Manager for Windows - &lt;a href=&quot;https://github.com/LGUG2Z/komorebi&quot;&gt;https://github.com/LGUG2Z/komorebi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[ ] TrueNAS Scale&lt;/li&gt;
&lt;li&gt;[ ] Hyprland Window Manager for Wayland - &lt;a href=&quot;https://github.com/hyprwm/Hyprland&quot;&gt;https://github.com/hyprwm/Hyprland&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[ ] Setting Up Linux Gaming&lt;/li&gt;
&lt;li&gt;[ ] Live Stream Radio Browser Program (Strimio)&lt;/li&gt;
&lt;li&gt;[ ] DSTask - &lt;a href=&quot;https://github.com/naggie/dstask&quot;&gt;https://github.com/naggie/dstask&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[ ] &lt;a href=&quot;http://Portainer.io&quot;&gt;Portainer.io&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[ ] PiKVM (&lt;a href=&quot;https://pikvm.org/&quot;&gt;https://pikvm.org/&lt;/a&gt;)&lt;a href=&quot;https://pikvm.org/&quot;&gt;https://pikvm.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[ ] KVM / QEMU full tutorial&lt;/li&gt;
&lt;li&gt;[ ] Zerotier - BestVPN&lt;/li&gt;
&lt;li&gt;[ ] Darling - MacOS Emulation &lt;a href=&quot;https://www.darlinghq.org/&quot;&gt;https://www.darlinghq.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[ ] plex server setup linux&lt;/li&gt;
&lt;li&gt;[ ] Enable GPO in Win 10 Home &lt;a href=&quot;https://www.itechtics.com/enable-gpedit-windows-10-home/#Method_1_Enable_Group_Policy_Editor_in_Windows_10_Home_using_GPEdit_Installer&quot;&gt;https://www.itechtics.com/enable-gpedit-windows-10-home/#Method_1_Enable_Group_Policy_Editor_in_Windows_10_Home_using_GPEdit_Installer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[ ] automount drives systemd&lt;/li&gt;
&lt;li&gt;[ ] rEFInd Bootloader&lt;/li&gt;
&lt;li&gt;[ ] &lt;a href=&quot;http://snapdrop.net/&quot;&gt;snapdrop.net&lt;/a&gt; - Share files between devices&lt;/li&gt;
&lt;li&gt;[ ] WinGet and Windows Terminal&lt;/li&gt;
&lt;li&gt;[ ] &lt;a href=&quot;https://mycroft.ai&quot;&gt;https://mycroft.ai&lt;/a&gt; - Open Source Home Assistant&lt;/li&gt;
&lt;li&gt;[ ] Samba Advanced Video&lt;/li&gt;
&lt;li&gt;[ ] Github config save&lt;/li&gt;
&lt;li&gt;[ ] systemd-services on startup cleanup&lt;/li&gt;
&lt;li&gt;[ ] debtap install deb packages on arch - rpm2cpio - alien&lt;/li&gt;
&lt;li&gt;[ ] &lt;a href=&quot;https://github.com/dreamer/luxtorpeda/&quot;&gt;https://github.com/dreamer/luxtorpeda/&lt;/a&gt; - Gaming native&lt;/li&gt;
&lt;li&gt;[ ] OpenHABian&lt;/li&gt;
&lt;li&gt;[ ] Startup Programs and managing them&lt;/li&gt;
&lt;li&gt;[ ] Live USB Environments&lt;/li&gt;
&lt;li&gt;[ ] jellyfin&lt;/li&gt;
&lt;li&gt;[ ] Adding Android Libraries / Davik Virtualization&lt;/li&gt;
&lt;li&gt;[ ] Quibble Windows Bootloader - &lt;a href=&quot;https://github.com/maharmstone/quibble&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/maharmstone/quibble&quot;&gt;https://github.com/maharmstone/quibble&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[ ] Kodachi&lt;/li&gt;
&lt;li&gt;[ ] Linux Users and Groups&lt;/li&gt;
&lt;li&gt;[ ] Grafana Zabbix Monitoring&lt;/li&gt;
&lt;li&gt;[ ] Alienvault OSSIM&lt;/li&gt;
&lt;li&gt;[ ] resize filesystem&lt;/li&gt;
&lt;li&gt;[ ] URXVT&lt;/li&gt;
&lt;li&gt;[ ] Ranger&lt;/li&gt;
&lt;li&gt;[ ] Vagrant&lt;/li&gt;
&lt;li&gt;[ ] Arch CHROOT Repair&lt;/li&gt;
&lt;li&gt;[ ] alpine linux - The 100MB Linux&lt;/li&gt;
&lt;li&gt;[ ] Kubernetes Initial Setup&lt;/li&gt;
&lt;li&gt;[ ] DEX Linux&lt;/li&gt;
&lt;li&gt;[ ] Making a workstation to load images on PCs - FOG Project&lt;/li&gt;
&lt;li&gt;[ ] Linux Screen Command&lt;/li&gt;
&lt;li&gt;[ ] Firejail&lt;/li&gt;
&lt;li&gt;[ ] Chroot from USB drive&lt;/li&gt;
&lt;li&gt;[ ] Debloat Linux&lt;/li&gt;
&lt;li&gt;[ ] Linux Firewall - UFW&lt;/li&gt;
&lt;li&gt;[ ] &lt;a href=&quot;http://privacytools.io/&quot;&gt;Privacytools.io&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[ ] Add SSD or Hard Drive to VM&lt;/li&gt;
&lt;li&gt;[ ] pulse effects and pulse equalizer&lt;/li&gt;
&lt;li&gt;[ ] PxE and TFTP Servers&lt;/li&gt;
&lt;li&gt;[ ] Update MOTD for on Servers&lt;/li&gt;
&lt;li&gt;[ ] Using the grep command&lt;/li&gt;
&lt;li&gt;[ ] LAMP Stack on Ubuntu&lt;/li&gt;
&lt;li&gt;[ ] SMB4k&lt;/li&gt;
&lt;li&gt;[ ] Docker&lt;/li&gt;
&lt;li&gt;[ ] Redhat Line of Products (Insights / Ansible / OpenShift)&lt;/li&gt;
&lt;li&gt;[ ] Snaps and Flatpacks&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Windows Store not loading (On Domain)</title><link>https://christitus.com/windows-store-not-loading/</link><guid isPermaLink="true">https://christitus.com/windows-store-not-loading/</guid><description>&lt;p&gt;After joining my computer to the domain windows store would not load. I first had to re-enable UAC because of a GPO and that fixed launching the metro apps. I was still having the issue with Windows Store not loading and this fixed it.&lt;/p&gt;
&lt;h2&gt;Symptoms&lt;/h2&gt;
&lt;p&gt;First, if you’re getting shut out of the store (“Can’t connect to the Store right now” kind of messages) &amp;amp; on a corporate, managed machine (you’ll see ‘Managed by your system administrator’ in Windows Update) – plus getting stuff like this in event viewer:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Fault bucket -1485561316, type 5&lt;br /&gt;
Event Name: WindowsUpdateFailure2&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Resolution&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;[HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsWindowsUpdate]
&quot;DisableWindowsUpdateAccess&quot;=dword:00000000
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Either copy/paste that text into a text file, save it as storefix.reg &amp;amp; run it, or navigate to that tree &amp;amp; change the DWORD from 1 to 0. Next, go into services.msc &amp;amp; restart the Windows Update service.&lt;/p&gt;
</description><pubDate>Fri, 12 Oct 2012 17:13:46 GMT</pubDate><content:encoded>&lt;p&gt;After joining my computer to the domain windows store would not load. I first had to re-enable UAC because of a GPO and that fixed launching the metro apps. I was still having the issue with Windows Store not loading and this fixed it.&lt;/p&gt;
&lt;h2&gt;Symptoms&lt;/h2&gt;
&lt;p&gt;First, if you’re getting shut out of the store (“Can’t connect to the Store right now” kind of messages) &amp;amp; on a corporate, managed machine (you’ll see ‘Managed by your system administrator’ in Windows Update) – plus getting stuff like this in event viewer:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Fault bucket -1485561316, type 5&lt;br /&gt;
Event Name: WindowsUpdateFailure2&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Resolution&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;[HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsWindowsUpdate]
&quot;DisableWindowsUpdateAccess&quot;=dword:00000000
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Either copy/paste that text into a text file, save it as storefix.reg &amp;amp; run it, or navigate to that tree &amp;amp; change the DWORD from 1 to 0. Next, go into services.msc &amp;amp; restart the Windows Update service.&lt;/p&gt;
</content:encoded></item><item><title>Windows Refresh PC Setting</title><link>https://christitus.com/windows-refresh-pc/</link><guid isPermaLink="true">https://christitus.com/windows-refresh-pc/</guid><description>&lt;p&gt;Using Windows Refresh PC now solves the common problem, that PCs get infected with viruses and require you to either reload it from the disc or recovery partition. Sometimes people lost the disc, re-partitioned their drives, or simply had their hard drive fail. This leads to installing windows from scratch and hunting down all your drivers.&lt;/p&gt;
&lt;p&gt;That is all changing in Windows 8, they are including a “Refresh” option and a “Remove everything and Re-install Windows” option.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2012/09/refresh-pc.webp&quot; alt=&quot;Refresh PC&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I’m skeptical on how well this works, but in theory, this could be a great thing for the home user. Windows 8 computers are likely to get infected, just as much as a Windows 7 computer. However, having these options at users fingertips could be a blessing or a curse. Imagine if a virus re-programs these features, wouldn’t that be fun 😉 I guess we will just have to wait and see.&lt;/p&gt;
&lt;h2&gt;“Refresh your PC”&lt;/h2&gt;
&lt;p&gt;The Windows refresh PC options remove all user-installed applications from 3rd parties, i.e. Adobe products from a disc, Google Chrome, or anything you installed on the “desktop” portion of windows 8. This pretty much erases all applications on your PC, except those from the windows store. You see where I’m going here, don’t you? Microsoft hopes that end users will purchase EVERYTHING from their store, which it can vet and make sure it doesn’t have viruses. Microsoft will, of course, take a piece of the pie on that purchase and is why Windows 8 will be so cheap. I have mixed emotions on this, but it does make a lot of sense.&lt;/p&gt;
&lt;h2&gt;“Remove Everything and Reinstall Windows”&lt;/h2&gt;
&lt;p&gt;This will be nice to have it part of the operating system. It should have been there on past windows, but better late than never. A simple reformats, and reload without the need to hunt down the correct windows disc.&lt;/p&gt;
&lt;p&gt;Overall, I’m happy to see Microsoft taking steps to transition the computer world away from where we have been. There will be bugs, and Windows 8 is a far cry from perfect, but I like its direction. I’m looking forward to the official launch next month.&lt;/p&gt;
&lt;p&gt;To Learn more about Windows Refresh PC and Restoring custom images go to &lt;a href=&quot;http://blogs.msdn.com/b/b8/archive/2012/01/04/refresh-and-reset-your-pc.aspx&quot;&gt;http://blogs.msdn.com/b/b8/archive/2012/01/04/refresh-and-reset-your-pc.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This details creating a custom refresh image which would include 3rd party applications. This could be a godsend for IT Professionals in business, since the image would be local and easily a one-click fix all button, so to speak.&lt;/p&gt;
</description><pubDate>Wed, 26 Sep 2012 16:51:38 GMT</pubDate><content:encoded>&lt;p&gt;Using Windows Refresh PC now solves the common problem, that PCs get infected with viruses and require you to either reload it from the disc or recovery partition. Sometimes people lost the disc, re-partitioned their drives, or simply had their hard drive fail. This leads to installing windows from scratch and hunting down all your drivers.&lt;/p&gt;
&lt;p&gt;That is all changing in Windows 8, they are including a “Refresh” option and a “Remove everything and Re-install Windows” option.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/2012/09/refresh-pc.webp&quot; alt=&quot;Refresh PC&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I’m skeptical on how well this works, but in theory, this could be a great thing for the home user. Windows 8 computers are likely to get infected, just as much as a Windows 7 computer. However, having these options at users fingertips could be a blessing or a curse. Imagine if a virus re-programs these features, wouldn’t that be fun 😉 I guess we will just have to wait and see.&lt;/p&gt;
&lt;h2&gt;“Refresh your PC”&lt;/h2&gt;
&lt;p&gt;The Windows refresh PC options remove all user-installed applications from 3rd parties, i.e. Adobe products from a disc, Google Chrome, or anything you installed on the “desktop” portion of windows 8. This pretty much erases all applications on your PC, except those from the windows store. You see where I’m going here, don’t you? Microsoft hopes that end users will purchase EVERYTHING from their store, which it can vet and make sure it doesn’t have viruses. Microsoft will, of course, take a piece of the pie on that purchase and is why Windows 8 will be so cheap. I have mixed emotions on this, but it does make a lot of sense.&lt;/p&gt;
&lt;h2&gt;“Remove Everything and Reinstall Windows”&lt;/h2&gt;
&lt;p&gt;This will be nice to have it part of the operating system. It should have been there on past windows, but better late than never. A simple reformats, and reload without the need to hunt down the correct windows disc.&lt;/p&gt;
&lt;p&gt;Overall, I’m happy to see Microsoft taking steps to transition the computer world away from where we have been. There will be bugs, and Windows 8 is a far cry from perfect, but I like its direction. I’m looking forward to the official launch next month.&lt;/p&gt;
&lt;p&gt;To Learn more about Windows Refresh PC and Restoring custom images go to &lt;a href=&quot;http://blogs.msdn.com/b/b8/archive/2012/01/04/refresh-and-reset-your-pc.aspx&quot;&gt;http://blogs.msdn.com/b/b8/archive/2012/01/04/refresh-and-reset-your-pc.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This details creating a custom refresh image which would include 3rd party applications. This could be a godsend for IT Professionals in business, since the image would be local and easily a one-click fix all button, so to speak.&lt;/p&gt;
</content:encoded></item><item><title>Exchange on Primary Domain Controller Slow Reboot and Startup</title><link>https://christitus.com/exchange-primary-domain-controller/</link><guid isPermaLink="true">https://christitus.com/exchange-primary-domain-controller/</guid><description>&lt;p&gt;If you had the misfortune of installing Exchange on Primary Domain Controller you will experience some pain when doing a reboot. Typically it will take 10-15 minutes before it restarts and up to 30 minutes to start the Microsoft Exchange Information Store. Consequently, what is really happening in the background is the IS service is being terminated incorrectly on shutdown and the store is left in a “DIRTY” shutdown state. This is very bad on several levels and can cause the Store to corrupt and not start at all, which can be catastrophic.&lt;/p&gt;
&lt;p&gt;Luckily, it’s a simple fix and all you have to do is shut down the services before restarting. Below is a script that does it automatically. So, just plug it into a .cmd or .bat file and run.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;@ECHO OFF
ECHO ARE YOU SURE YOU WANT TO RESTART SERVER??
pause
net stop msexchangeadtopology /y
net stop msftesql-exchange /y
net stop msexchangeis /y
net stop msexchangesa /y
net stop iisadmin /y
ECHO DONE STOPING SERVICES REBOOT NOW!
pause
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I hope this helps you and keeps your server running until you are able to install it on another server. That said, try to avoid installing exchange on primary domain controller at all costs. You will avoid so many headaches by doing this.&lt;/p&gt;
</description><pubDate>Thu, 26 Jul 2012 20:31:21 GMT</pubDate><content:encoded>&lt;p&gt;If you had the misfortune of installing Exchange on Primary Domain Controller you will experience some pain when doing a reboot. Typically it will take 10-15 minutes before it restarts and up to 30 minutes to start the Microsoft Exchange Information Store. Consequently, what is really happening in the background is the IS service is being terminated incorrectly on shutdown and the store is left in a “DIRTY” shutdown state. This is very bad on several levels and can cause the Store to corrupt and not start at all, which can be catastrophic.&lt;/p&gt;
&lt;p&gt;Luckily, it’s a simple fix and all you have to do is shut down the services before restarting. Below is a script that does it automatically. So, just plug it into a .cmd or .bat file and run.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;@ECHO OFF
ECHO ARE YOU SURE YOU WANT TO RESTART SERVER??
pause
net stop msexchangeadtopology /y
net stop msftesql-exchange /y
net stop msexchangeis /y
net stop msexchangesa /y
net stop iisadmin /y
ECHO DONE STOPING SERVICES REBOOT NOW!
pause
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I hope this helps you and keeps your server running until you are able to install it on another server. That said, try to avoid installing exchange on primary domain controller at all costs. You will avoid so many headaches by doing this.&lt;/p&gt;
</content:encoded></item><item><title>Fix for Kernel Panic in Mac OSX</title><link>https://christitus.com/kernel-panic-mac-osx/</link><guid isPermaLink="true">https://christitus.com/kernel-panic-mac-osx/</guid><description>&lt;p&gt;Follow these steps to fix a kernel panic in Mac OSX. However, if this doesn’t fix the issue, there is a good chance the motherboard is damaged and you need to send it to Apple.&lt;/p&gt;
&lt;h2&gt;1) SMC RESETTING&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Shut down the computer.&lt;/li&gt;
&lt;li&gt;Plug in the MagSafe power adapter to a power source, connecting it to the Mac if its not already connected.&lt;/li&gt;
&lt;li&gt;On the built-in keyboard, press the (left side) Shift-Control-Option keys and the power button at the same time.&lt;/li&gt;
&lt;li&gt;Release all the keys and the power button at the same time after 25 seconds.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;2) PRAM SETTING&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Shut down the computer.&lt;/li&gt;
&lt;li&gt;Locate the following keys on the keyboard: Command, Option, P, and R. You will need to hold these keys down&lt;/li&gt;
&lt;li&gt;Turn on the computer.&lt;/li&gt;
&lt;li&gt;Hold the keys down until the computer restarts and you hear the startup sound for the second time.&lt;/li&gt;
&lt;li&gt;Release the keys.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;IF THE ABOVE STEPS DOES NOT WORK THEN PLEASE FOLLOW THE BELOW TROUBLESHOOTING STEPS TO FIX A KERNAL PANIC IN MAC OSX.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;3) BOOT TO STARTUP MANAGER&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Press and hold the option key and start the machine then the machine will boot to the startup manager.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Check in the windows the partition of your HD shows or not.&lt;/p&gt;
&lt;p&gt;If it shows then the machine is working fine but if it does not show then the Hard disk is gone for a toss.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4) INSERT THE MAC OSX INSTALL DVD (IF THE HD IS SEEN IN STARTUP MANAGER)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Boot to the disk.&lt;/li&gt;
&lt;li&gt;If you still get the kernel panic in mac osx then it will be 2 possible hardware issues.&lt;/li&gt;
&lt;li&gt;Either the Hard disk or the Logic Board.&lt;/li&gt;
&lt;li&gt;If you are able to boot through the disk and get the language selection link then go to the first option &lt;strong&gt;Select English as the Main Language.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Then very next page you need to click on utility option (Found on the taskbar at the top)&lt;/li&gt;
&lt;li&gt;Select the disk utility and on that page, you get 3 options
&lt;ul&gt;
&lt;li&gt;Some HD size in MB with any of the HD company name&lt;/li&gt;
&lt;li&gt;Macintosh HD.&lt;/li&gt;
&lt;li&gt;Optical drive&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Select the first option and do the repair disk only.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;(NOTE: In the install, DVD do not run the repair disk permissions as it sets the default permissions)&lt;/p&gt;
&lt;p&gt;If you get a repair disk error, you will need to back up any data you can, and reformat the entire hard disk. Once you don’t get a kernel panic in Mac OSX any longer you will be able to restore from time machine. However, if you continue to have issues, you will need to ship it back to Apple for a logic board replacement.&lt;/p&gt;
</description><pubDate>Tue, 24 Jan 2012 22:55:18 GMT</pubDate><content:encoded>&lt;p&gt;Follow these steps to fix a kernel panic in Mac OSX. However, if this doesn’t fix the issue, there is a good chance the motherboard is damaged and you need to send it to Apple.&lt;/p&gt;
&lt;h2&gt;1) SMC RESETTING&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Shut down the computer.&lt;/li&gt;
&lt;li&gt;Plug in the MagSafe power adapter to a power source, connecting it to the Mac if its not already connected.&lt;/li&gt;
&lt;li&gt;On the built-in keyboard, press the (left side) Shift-Control-Option keys and the power button at the same time.&lt;/li&gt;
&lt;li&gt;Release all the keys and the power button at the same time after 25 seconds.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;2) PRAM SETTING&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Shut down the computer.&lt;/li&gt;
&lt;li&gt;Locate the following keys on the keyboard: Command, Option, P, and R. You will need to hold these keys down&lt;/li&gt;
&lt;li&gt;Turn on the computer.&lt;/li&gt;
&lt;li&gt;Hold the keys down until the computer restarts and you hear the startup sound for the second time.&lt;/li&gt;
&lt;li&gt;Release the keys.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;IF THE ABOVE STEPS DOES NOT WORK THEN PLEASE FOLLOW THE BELOW TROUBLESHOOTING STEPS TO FIX A KERNAL PANIC IN MAC OSX.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;3) BOOT TO STARTUP MANAGER&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Press and hold the option key and start the machine then the machine will boot to the startup manager.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Check in the windows the partition of your HD shows or not.&lt;/p&gt;
&lt;p&gt;If it shows then the machine is working fine but if it does not show then the Hard disk is gone for a toss.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4) INSERT THE MAC OSX INSTALL DVD (IF THE HD IS SEEN IN STARTUP MANAGER)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Boot to the disk.&lt;/li&gt;
&lt;li&gt;If you still get the kernel panic in mac osx then it will be 2 possible hardware issues.&lt;/li&gt;
&lt;li&gt;Either the Hard disk or the Logic Board.&lt;/li&gt;
&lt;li&gt;If you are able to boot through the disk and get the language selection link then go to the first option &lt;strong&gt;Select English as the Main Language.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Then very next page you need to click on utility option (Found on the taskbar at the top)&lt;/li&gt;
&lt;li&gt;Select the disk utility and on that page, you get 3 options
&lt;ul&gt;
&lt;li&gt;Some HD size in MB with any of the HD company name&lt;/li&gt;
&lt;li&gt;Macintosh HD.&lt;/li&gt;
&lt;li&gt;Optical drive&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Select the first option and do the repair disk only.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;(NOTE: In the install, DVD do not run the repair disk permissions as it sets the default permissions)&lt;/p&gt;
&lt;p&gt;If you get a repair disk error, you will need to back up any data you can, and reformat the entire hard disk. Once you don’t get a kernel panic in Mac OSX any longer you will be able to restore from time machine. However, if you continue to have issues, you will need to ship it back to Apple for a logic board replacement.&lt;/p&gt;
</content:encoded></item><item><title>“Error 1327. Invalid Drive” or “Error 1325 – not a valid short file name” Fix</title><link>https://christitus.com/valid-short-file-name/</link><guid isPermaLink="true">https://christitus.com/valid-short-file-name/</guid><description>&lt;p&gt;If you are installing a program and receiving a pop-up message during installation of valid short file name this applies to you. I removed a drive from my computer and had this happen to me.&lt;/p&gt;
&lt;h2&gt;Steps to Fix “not a valid short file name”&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Click Start, and then click Run.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In the Open box, type regedit, and then click OK.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Under Registry Editor, locate the following registry key: &lt;code&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;On the right pane, note the values in the Data field of each entry. If any value contains a drive that is not correct for your computer, right-click the entry, type c:\my documents in the Value data box, and then click OK.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Repeat step 4 for each entry whose Data value contains an incorrect drive.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Repeat steps 3 through 5 for each of the following registry keys:&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;7.Close Registry Editor.&lt;/p&gt;
&lt;p&gt;Re-run your setup program and you shouldn’t see “not a valid short file name” error. Also, I’d recommend running the registry cleaning portion of CCleaner and checking your Environmental Variables (Under System Properties, Advanced, then Environmental Variables.)&lt;/p&gt;
</description><pubDate>Thu, 13 Oct 2011 20:05:32 GMT</pubDate><content:encoded>&lt;p&gt;If you are installing a program and receiving a pop-up message during installation of valid short file name this applies to you. I removed a drive from my computer and had this happen to me.&lt;/p&gt;
&lt;h2&gt;Steps to Fix “not a valid short file name”&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Click Start, and then click Run.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In the Open box, type regedit, and then click OK.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Under Registry Editor, locate the following registry key: &lt;code&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;On the right pane, note the values in the Data field of each entry. If any value contains a drive that is not correct for your computer, right-click the entry, type c:\my documents in the Value data box, and then click OK.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Repeat step 4 for each entry whose Data value contains an incorrect drive.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Repeat steps 3 through 5 for each of the following registry keys:&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;7.Close Registry Editor.&lt;/p&gt;
&lt;p&gt;Re-run your setup program and you shouldn’t see “not a valid short file name” error. Also, I’d recommend running the registry cleaning portion of CCleaner and checking your Environmental Variables (Under System Properties, Advanced, then Environmental Variables.)&lt;/p&gt;
</content:encoded></item><item><title>Release and Renew IP in OS X</title><link>https://christitus.com/release-and-renew-ip-in-os-x/</link><guid isPermaLink="true">https://christitus.com/release-and-renew-ip-in-os-x/</guid><description>&lt;p&gt;I recently had some issues where a bridged virtual machine in osx would disconnect my osx side network connection. A simple release and renew would fix this. Simply open up Terminal in OSX and type:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo ifconfig en0 down&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo ifconfig en0 up&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Obviously if you are renewing another interface other than your Ethernet port, en0 would need to be changed to the corresponding short name of the interface.&lt;/p&gt;
</description><pubDate>Thu, 29 Sep 2011 18:46:43 GMT</pubDate><content:encoded>&lt;p&gt;I recently had some issues where a bridged virtual machine in osx would disconnect my osx side network connection. A simple release and renew would fix this. Simply open up Terminal in OSX and type:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo ifconfig en0 down&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo ifconfig en0 up&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Obviously if you are renewing another interface other than your Ethernet port, en0 would need to be changed to the corresponding short name of the interface.&lt;/p&gt;
</content:encoded></item><item><title>Keep Windows 7 from installing device drivers from Windows Update</title><link>https://christitus.com/keep-windows-7-from-installing-device-drivers-from-windows-update/</link><guid isPermaLink="true">https://christitus.com/keep-windows-7-from-installing-device-drivers-from-windows-update/</guid><description>&lt;p&gt;I find a very annoying feature of Windows 7 is every device you install by default searches windows update. This makes installing devices a lot longer than it needs to be. Follow these steps to make windows search your computer first and then Windows Update if needed.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Right Click My Computer from Start Menu and select “Properties”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click “Advanced System Settings”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select Hardware Tab, and click “Device Installation Settings”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Highlight “No, Let me choose what to do”&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;4a. Also, “Install driver software from Windows Update if it is not found on my computer”&lt;/p&gt;
&lt;p&gt;Save Changes and you are done. You now install devices at lightning speed!&lt;/p&gt;
</description><pubDate>Thu, 15 Sep 2011 15:57:09 GMT</pubDate><content:encoded>&lt;p&gt;I find a very annoying feature of Windows 7 is every device you install by default searches windows update. This makes installing devices a lot longer than it needs to be. Follow these steps to make windows search your computer first and then Windows Update if needed.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Right Click My Computer from Start Menu and select “Properties”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click “Advanced System Settings”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select Hardware Tab, and click “Device Installation Settings”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Highlight “No, Let me choose what to do”&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;4a. Also, “Install driver software from Windows Update if it is not found on my computer”&lt;/p&gt;
&lt;p&gt;Save Changes and you are done. You now install devices at lightning speed!&lt;/p&gt;
</content:encoded></item><item><title>Disable Outlook Anywhere in Group Policy Object (GPO)</title><link>https://christitus.com/disable-outlook-anywhere-in-group-policy-object-gpo/</link><guid isPermaLink="true">https://christitus.com/disable-outlook-anywhere-in-group-policy-object-gpo/</guid><description>&lt;p&gt;By default the standard outlk12.adm templates do not come with a configuration of Outlook Anywhere. You can configure the “&lt;strong&gt;Configure Outlook Anywhere user interface options&lt;/strong&gt;” options to disable or grey out the settings. However, this DOES NOT disable Outlook anywhere, just user interaction with it.&lt;/p&gt;
&lt;p&gt;You will need the Article-961112 administrative template that Microsoft released
for this configuration. Microsoft has retired the original KB article and
download, so this walkthrough is retained for historical reference.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Obtain the Article-961112 administrative template from a trusted archive
and unzip it to reveal the &lt;code&gt;article-961112.adm&lt;/code&gt; file.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In the Group Policy Object Editor add the Article-961112.adm file:&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Right-click Administrative Templates and click Add/Remove Templates.&lt;/p&gt;
&lt;p&gt;In the Add/Remove Templates dialog box click Add.&lt;/p&gt;
&lt;p&gt;In the Policy Templates dialog box locate and select the Article-961112.adm file. Click Open.&lt;/p&gt;
&lt;p&gt;Click Close in the Add/Remove Templates dialog box.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Under User Configuration in Administrative Templates expand the policy node labeled Article 961112 Policy Settings. (Note: You may see this under Classic Administrative Templates in a sub-menu)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select the Outlook Anywhere (RPC/HTTP) node to list the following policies under the Setting column in the right-pane:&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;RPC/HTTP Connection Flags -&amp;gt; Set to Enabled -&amp;gt; No Flags
Proxy Server Name -&amp;gt; Do not change
Only Connect if Proxy Server certificate has this principle name -&amp;gt; Do not change
Proxy authentication Setting -&amp;gt; Do not change&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol&gt;
&lt;li&gt;Double-click each policy to configure the appropriate RPC/HTTP setting for your Outlook clients.&lt;/li&gt;
&lt;/ol&gt;
</description><pubDate>Wed, 23 Mar 2011 15:35:23 GMT</pubDate><content:encoded>&lt;p&gt;By default the standard outlk12.adm templates do not come with a configuration of Outlook Anywhere. You can configure the “&lt;strong&gt;Configure Outlook Anywhere user interface options&lt;/strong&gt;” options to disable or grey out the settings. However, this DOES NOT disable Outlook anywhere, just user interaction with it.&lt;/p&gt;
&lt;p&gt;You will need the Article-961112 administrative template that Microsoft released
for this configuration. Microsoft has retired the original KB article and
download, so this walkthrough is retained for historical reference.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Obtain the Article-961112 administrative template from a trusted archive
and unzip it to reveal the &lt;code&gt;article-961112.adm&lt;/code&gt; file.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In the Group Policy Object Editor add the Article-961112.adm file:&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Right-click Administrative Templates and click Add/Remove Templates.&lt;/p&gt;
&lt;p&gt;In the Add/Remove Templates dialog box click Add.&lt;/p&gt;
&lt;p&gt;In the Policy Templates dialog box locate and select the Article-961112.adm file. Click Open.&lt;/p&gt;
&lt;p&gt;Click Close in the Add/Remove Templates dialog box.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Under User Configuration in Administrative Templates expand the policy node labeled Article 961112 Policy Settings. (Note: You may see this under Classic Administrative Templates in a sub-menu)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select the Outlook Anywhere (RPC/HTTP) node to list the following policies under the Setting column in the right-pane:&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;RPC/HTTP Connection Flags -&amp;gt; Set to Enabled -&amp;gt; No Flags
Proxy Server Name -&amp;gt; Do not change
Only Connect if Proxy Server certificate has this principle name -&amp;gt; Do not change
Proxy authentication Setting -&amp;gt; Do not change&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol&gt;
&lt;li&gt;Double-click each policy to configure the appropriate RPC/HTTP setting for your Outlook clients.&lt;/li&gt;
&lt;/ol&gt;
</content:encoded></item><item><title>Target Specific People or Computers with Item-Level Targeting in GPOs</title><link>https://christitus.com/target-specific-people-or-computers-with-item-level-targeting-in-gpos/</link><guid isPermaLink="true">https://christitus.com/target-specific-people-or-computers-with-item-level-targeting-in-gpos/</guid><description>&lt;p&gt;Using Group Policy Objects can be a huge time saver, but if used improperly can be a big headache. Once you’ve messed around with GPO settings enough, you quickly figure out that you need to create new GPOs for specific programs, events, etc… that are not all in one GPO. This gives you a lot more flexibility and makes it very easy to track down troublesome GPO related issues when done properly. Now lets say you create a Power Savings GPO that you want to apply only to computers that meet certain conditions. WMI, Security, and Site Filtering are all too broad for this task, and you want to use Item-Level Targeting. After you create your Group Policy Object you will need to add this setting to the GPO.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;In Group Policy Management Settings&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;-User Configuration -&amp;gt; Preferences -&amp;gt; Control Panel -&amp;gt; Regional Options&lt;/p&gt;
&lt;p&gt;-Right-Click and Select New&lt;/p&gt;
&lt;p&gt;-Navigate to Common Tab&lt;/p&gt;
&lt;p&gt;-Check Item-Level Targeting and Press Targeting…&lt;/p&gt;
&lt;p&gt;From here you will be able to select tons of critaria that you want to meet for your GPO. This can be system requirements to install a program, or only select certain Operating Systems. You can also add is not tags that will rule out any computer that meet that criteria. The options are limitless and its very easy to incorporate in your GPO. Personally, I never use the often complicated and time consuming WMI Filters anymore.&lt;/p&gt;
</description><pubDate>Tue, 22 Mar 2011 21:59:02 GMT</pubDate><content:encoded>&lt;p&gt;Using Group Policy Objects can be a huge time saver, but if used improperly can be a big headache. Once you’ve messed around with GPO settings enough, you quickly figure out that you need to create new GPOs for specific programs, events, etc… that are not all in one GPO. This gives you a lot more flexibility and makes it very easy to track down troublesome GPO related issues when done properly. Now lets say you create a Power Savings GPO that you want to apply only to computers that meet certain conditions. WMI, Security, and Site Filtering are all too broad for this task, and you want to use Item-Level Targeting. After you create your Group Policy Object you will need to add this setting to the GPO.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;In Group Policy Management Settings&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;-User Configuration -&amp;gt; Preferences -&amp;gt; Control Panel -&amp;gt; Regional Options&lt;/p&gt;
&lt;p&gt;-Right-Click and Select New&lt;/p&gt;
&lt;p&gt;-Navigate to Common Tab&lt;/p&gt;
&lt;p&gt;-Check Item-Level Targeting and Press Targeting…&lt;/p&gt;
&lt;p&gt;From here you will be able to select tons of critaria that you want to meet for your GPO. This can be system requirements to install a program, or only select certain Operating Systems. You can also add is not tags that will rule out any computer that meet that criteria. The options are limitless and its very easy to incorporate in your GPO. Personally, I never use the often complicated and time consuming WMI Filters anymore.&lt;/p&gt;
</content:encoded></item></channel></rss>