This will be a collection of GitHub specific and Git notes
I have put my real quick overview of accounts plans and who should use what here.
- Public repositories
- Host open source projects in public GitHub repositories, accessible via web or command line.
- Public repositories are accessible to anyone at GitHub.com.
- Collaborators and members for public repositories are always unlimited irrespective of your personal plan (e.g. free, Pro) or your organization's plan (e.g. Free, teams, Enterprise)
- Private repositories
- Host code in private GitHub repositories, accessible via appliance, web, and command line.
- Private repositories are only accessible to you and people you share them with.
- Collaborators and members for private repositories:
- On a GitHub personal account (Free, Pro), collaborators and members are unlimited.
- On a GitHub Free Organization, collaborators and members are unlimited.
- Although collaborators and organization members serve different purposes within GitHub, for organizations subscribed to GitHub Team collaborators must occupy a paid seat in order to access private repositories. Organization members always require a paid seat.
- If you decide to upgrade your organization from GitHub Free to GitHub Team, you must add a paid seat for each organization member as well as each collaborator for them to keep access.
- No data will be lost, just access for those who do not have a seat.
- You only need to buy seats for those users that you want to have access to the organizations repositories going forward, not for everybody who has every made a change or contribution to any of the organization's repositories.
- Upgrading your account's plan - GitHub Docs - If you'd like additional users to have access to your GitHub Team organization's private repositories, you can purchase more seats anytime.
- Pricing Plans
- All pricing @ GitHub is done on a per-user basis.
- Personal accounts and organization seats are classed as separate Billing entities.
- If you upgrade your personal account from GitHub Free to the GitHub Pro plan then you can:
- get additional features for your personal Private repositories such as Pages and Wikis
- you will also get more Git features and various Code workflow enhancements for both your Public and Private repositories.
- If you use GitHub Team for your organization you will also get enhancements for your Public and Private repositories as-well as improved organization management better granular user role control.
- User Accounts
- A user account is for one person and some times is referred to as a `Personal Account`.
A person only needs one user account.
You only need one Facebook account right!- This account can be used to host all of a user's project and also be used to login in to organizations.
- There are currently 2 pricing plans for an `personal` account, Free and Pro.
- If you are an individual developers with no commercial angle, then you should just use a personal/single account for all of your repositories.
- If you need more actions, features and that other stuff then you can upgrade your account to Pro.
- I would use my personal account where I need to fork a repo to push some fixes to someone else's code.
- A user can own more than one organization.
- Organizations
- Organizations are shared accounts where businesses and open-source projects can collaborate across many projects at once, with sophisticated security and administrative features.
- GitHub Free allows you to add as many members and collaborators to your organization as you’d like at no charge.
- There are currently 3 pricing plans for an account, Free, Team and Enterprise.
- Having an organization for your company ensures that the assets are not controlled by single member of staff under their personal account.
You should use an organization for your code if:
- If you are a company and you are making software.
- If you are a individual developer or a company that is going to sell software.
- You will need to collaborate with team members or other entities.
- Your software project(s) will be large.
- Features:
- Allow for collaboration between team members and other entities.
- Allows more granular permissions for repositories that belong to the organization.
- An organisation can have public and private members. Public members do not count towards your organizations seats.
- Allow for for organising repositories by groups such as; Company, Code Language, Software Type, etc.....
- You can convert your personal account into an organization (but this is not best practice).
- You can identify an organization easily because thy have a people tab.
- Organizations can have more than one organization owner to avoid lapses in ownership.
- Teams
- The concept of Teams in GitHub allows for greater flexibility for collaboration and integration, as well as separation of repositories and permissions.
- Enterprise accounts
- Are for very large companies, or those teams that need to manage multiple organisations but all under the same company banner.
- Pricing is done per member, each member requires a seat/license, I am assuming there will always be at leats one member.
- Discounts
- Discounted plans for GitHub accounts - GitHub Docs - GitHub provides discounts to students, educators, educational institutions, nonprofits, and libraries.
.com
with .dev
in the URL. For example, this repo https://github.com/github/dev becomes http://github.dev/github/devRepository --> Insights --> Forks
Repository Type = Network (Forks of other forks)
can be quite useful.https://github.com/Open-Shell/Open-Shell-Menu/compare/v4.4.190...v4.4.191
GitHub Free
and GitHub Pro
follow the instructions below:
This section will deal with configuring GitHub for your developing and company needs.
- The hierarchy of GitHub is as follows:
- Enterprise Account --> Organization --> Repository --> Users
Does setting up a SSH key and PAT allow me to use them to recover my account with my email address when locked out of my account???
Read this article, it is very clear and calming.
- How to Recover Your GitHub Account
- Regain access to your GitHub account with a step-by-step guide on using 2FA codes, email verification, and support requests for account recovery.
- Best Practices to Prevent Account Lockout
- Setting Up Multiple 2FA Methods for Backup
- Downloading and Securely Storing Recovery Codes
- Ensuring Access to Verified Devices and Email Addresses
This is covering the use of 2FA on GitHub.
- If you loose your 2FA methods and your Recovery codes then you will be locked out of your account permanently, this is to protect GitHub and users from social engineering.
- You can use any 2FA method you have configured to login which is useful if you loose access to one.
- Make sure you set up as many recovery methods as possible.
- Having multiple 2FA methods reduces the risk of users getting locked out of their accounts
- 2FA does not just mean TOTP, you can also add SMS, Github Mobile.
- SMS is not really secure, but easy to setup and can prevent lockout.
- Download and print out your Recovery codes
- When you change your password your Recovery Codes will be revoked and new ones issued which you should download immediately.
- Download 2FA Recovery codes here:
Profile --> Settings --> Access --> Password and authentication --> Recovery options --> Recovery codes --> View
The search feature on GitHub is very powerful and is underused by a lot of people.
in:title findme
GET /search/issues?q=text+to+search+in:title+repo:some/repo
This free feature allows you to run websites directly from GitHub, even with your own custom domain name. Useful for small developers who are bandwidth constrained.
master
branch be the root directory of a repository’s gh-pages
branch. This is useful for things like sites developed with Yeoman, or if you have a Jekyll site contained in the master
branch alongside the rest of your code.What are they and how to do you create, edit and share them.
Apps
in the marketplace, how do i use them + put examples here.
Settings --> Code, planning and automation --> Repositories --> Repository default branch: master/main
Once your organizational structure (or not) is configured you then actually need to create your repos. In this section we will deal with how to setup a nice looking repository to ge the best out of it.
joomla joomla-component joomla-extensions app-server app-site
Bad: https://github.com/webmin/authentic-theme/blob/0ca0f9e215fdad49e028158f1f0d5096295a8595/tconfig-lib.pl#L201C1-L204C6
Good: https://github.com/webmin/authentic-theme/blob/0ca0f9e215fdad49e028158f1f0d5096295a8595/tconfig-lib.pl#L201-L204
LF(Unix/Linux)
locallyCRLF(Windows)
to LF(Linux/Unix)
endings before submission and vice-versa upon checkout.^M
represents carriage return (CR
). This diff means something removed a Unicode BOM from the beginning of the line and added a CR
at the end.^M
is in the new-changes side (right/green side), then that means the file's line-endings were changed from LF
to CRLF
, otherwise, file was CRLF
and is now changed to LF
.^
symbol stands for Control, so ^M
means Ctrl+M.^A
is character code 1 (because A
is 65). ^M
is 77 - 64 = 13 (because M
is 77), which corresponds to carriage return in ASCII.^L
represents the form-feed character (FF
is the abbreviation, not hexadecimal), and has ASCII value 12
or 0x0C
.Try
git config core.whitespace cr-at-eol
to hide it from the diffgit config --global core.autocrlf true
CR
would return the carriage to the first position of the line while LF
would feed to the next line.CR+LF
in the file themselves made it possible to send a file directly to the printer, without any kind of printer driver.CR
and LF
when they were first used.This content is not all specific to GitHub but deserves to be separate section.
Things like flags and badges, add the code and tutorials for them here.
<!-- Copy-paste in your Readme.md file --> <a href = "https://github.com/open-reSource/openresource.dev/graphs/contributors"> <img src = "https://contrib.rocks/image?repo=open-reSource/openresource.dev"/> </a> Made with [contributors-img](https://contrib.rocks).
<img>
tag.
.gitignore
file tells Git which files and folders to ignore (not track).I will include how to use Git in VSCode tips and tricks.
## CentOS / Alma / Rocky / RHEL cd /usr/libexec/webmin/virtual-server ## Ubuntu cd /usr/share/webmin/virtual-server ## Common (the actual patch command) curl https://github.com/virtualmin/virtualmin-gpl/commit/7037f778b30eda80bb9a8a3a1bd4065377763b1c.patch | git apply --reject --whitespace=fix curl https://github.com/virtualmin/virtualmin-gpl/commit/85f803eb05e1fe8db0b59bd5a44fec8590034e88.patch | git apply --reject --whitespace=fixThis is from https://github.com/virtualmin/virtualmin-gpl/issues/747
These are just here for reference, you should only use VSCode with the relevant extensions. It should be noted most IDE also have visual GUIs for handling Git.
There are all of these files and folders that everyone seems to use so I am going to try and get a full list.
these are my notes
This is a collection of Windows power commands to help diagnose and change power and sleep settings.
powercfg /a
powercfg /lastwake
powercfg /DEVICEQUERY wake_armed
The solution might be one or a combination of the following solutions, but I have put them in the order I think you should try them in.
NB: The laptops trackpad, nipple/Pointers and keyboard will not wake the system up.
Links
Options
Notes
Below are the actions I did to prevent my system waking up on it sown, but it was being caused for me by the Mouse.
Open-Shell + RetroBar (with Dark themes from Tek Syndicate) + EarTrumpet + Winaero (context menu and Ribbon fixes) + WindHawk (Taskbar tray system icon tweaks - to hode unwanted system icons)
--------------
I finally upgraded to Windows 11 and discovered a lot of functionality had been removed and Microsoft was making restoring it difficult. In Windows 11 24H2 it is even worse.
I will be outlining my solutions I have found on the internet to restore my desktop to how it was. I will be using 3rd party tools as I did on Windows 10. Not all changes might be required or wanted by you so just do the ones you need.
As I find more solutions I will add them here.
This is optional at the minute as I have not test it, however the Quick Launch step would not be needed if this works.
%SystemDrive%\Users\%username%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch
You can employ more than one of the solutions below to get the work enviroment you need.
The Quick Launch folder
This is just for reference.
%SystemDrive%\Users\%username%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch
Methods / Workarounds
%SystemDrive%\Users\%username%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch
%SystemDrive%\Users\%username%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch
%SystemDrive%\Users\%username%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch
Links
Links
$RegistryPath = 'HKCU:\Control Panel\NotifyIconSettings' $Name = 'IsPromoted' $Value = '1' Get-ChildItem -path $RegistryPath -Recurse | ForEach-Object {New-ItemProperty -Path $_.PSPath -Name $Name -Value $Value -PropertyType DWORD -Force }
Links
Links
ep_setup.exe /uninstall
.ep_setup.exe
to ep_uninstall.exe
and execute that.reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoRestartShell /t REG_DWORD /d 0 /f
Always show all icons and notifications on the taskbar
from prior Windows versions, but also allows for individual apps to be toggled if so desired.
Lenovo ThinkPad series laptops are categorised by their target audience and features, with the E series being entry-level, the L series a step up, and the T series the flagship for professionals, while the X and P series focus on portability and high-performance respectively.
Here's a breakdown of the ThinkPad series (some from Google Search AI):
Explained
- Lenovo ThinkPad T15 Gen 2 Laptop I5-1135G7
- T15
- T Series with a 15" screen
- Gen 2/G2
- Generation 2
- G2/G7: If you see these on their own, it probably is the generation, but make sure it is not part of the CPU number
- check with other links just to see if this was one mistake.
- I5-1135G7
- Intel 11th Gen CPU
Docking Stations
When trying to do an edge to edge fullwidth image slider in Divi so you can use it as an Image carousel, you might run across some simple problems and below are some solutions to this issue.
The Fullwidth slider and normal slider module behave in the same way and the following methods will work on both of them.
This styles the slider how I want it, which is quite standard.
This is the simplest method and easy to do. This whole module is designed for this.
/* Disable Title and Content */ selector .et_pb_slide_description .et_pb_slide_title, selector .et_pb_slide_description .et_pb_slide_content { display: none; }
This allows you to use the slider's `Image and Video`in a full width mode using CSS code to do the magic and works for both fullwidth and the normal slider module and is based on Create a Fullwidth Image Slider using the Divi Slider Module | Divi Sensei
/* Convert Slider module into an Image Carousel (Divi Sensei, Cleaned) - Just add .full-image-slider to your slider - Original */ .full-image-slider .et_pb_slide { padding-left: 0 !important; padding-right: 0 !important; } .full-image-slider .et_pb_slide:first-child .et_pb_slide_image img.active { animation: unset !important; } .full-image-slider .et_pb_container { max-width: 100% !important; width: 100% !important; height: auto !important; min-height: 0 !important; } .full-image-slider .et_pb_slide_image img { max-height: none !important; width: 100% !important; } .full-image-slider .et_pb_slide_image { margin: 0 !important; padding: 0 !important; top: 0 !important; position: relative !important; width: 100% !important; display: block !important; -webkit-animation-name: fade !important; -moz-animation-name: fade !important; -ms-animation-name: fade !important; -o-animation-name: fade !important; animation-name: fade !important; } .full-image-slider .et_pb_slider_container_inner { position: relative; } .full-image-slider .et_pb_slide_description { position: absolute !important; top: 0 !important; bottom: 0 !important; left: 0 !important; right: 0 !important; padding: 0 !important; margin: 0 !important; width: auto !important; height: auto !important; } .full-image-slider .et_pb_slide_description .et_pb_button_wrapper, .full-image-slider .et_pb_slide_description .et_pb_button_wrapper a, .full-image-slider .et_pb_slide_description .et_pb_button_wrapper a:hover { width: 100% !important; height: 100% !important; padding: 0 !important; margin: 0 !important; color: rgba(0, 0, 0, 0) !important; border: none !important; background: none !important; } .et_pb_column.et_pb_slider_fullwidth_off.full-image-slider .et_pb_slide_description .et_pb_slide_title, .et_pb_column.et_pb_slider_fullwidth_off.full-image-slider .et_pb_slide_description .et_pb_slide_content, .full-image-slider .et_pb_slide_description .et_pb_slide_title, .full-image-slider .et_pb_slide_description .et_pb_slide_content { display: none; }
full-image-slider
/* Convert Slider module into an Image Carousel (Divi Sensei) - Adapted to use Free-Form CSS */ selector .et_pb_slide { padding-left: 0 !important; padding-right: 0 !important; } selector .et_pb_slide:first-child .et_pb_slide_image img.active { animation: unset !important; } selector .et_pb_container { max-width: 100% !important; width: 100% !important; height: auto !important; min-height: 0 !important; } selector .et_pb_slide_image img { max-height: none !important; width: 100% !important; } selector .et_pb_slide_image { margin: 0 !important; padding: 0 !important; top: 0 !important; position: relative !important; width: 100% !important; display: block !important; -webkit-animation-name: fade !important; -moz-animation-name: fade !important; -ms-animation-name: fade !important; -o-animation-name: fade !important; animation-name: fade !important; } selector .et_pb_slider_container_inner { position: relative; } selector .et_pb_slide_description { position: absolute !important; top: 0 !important; bottom: 0 !important; left: 0 !important; right: 0 !important; padding: 0 !important; margin: 0 !important; width: auto !important; height: auto !important; } selector .et_pb_slide_description .et_pb_button_wrapper, selector .et_pb_slide_description .et_pb_button_wrapper a, selector .et_pb_slide_description .et_pb_button_wrapper a:hover { width: 100% !important; height: 100% !important; padding: 0 !important; margin: 0 !important; color: rgba(0, 0, 0, 0) !important; border: none !important; background: none !important; } selector .et_pb_slide_description .et_pb_slide_title, selector .et_pb_slide_description .et_pb_slide_content { display: none; }
.et_pb_slide_description, .et_pb_slider_fullwidth_off .et_pb_slide_description { padding: 16% 8%; width: auto; margin: auto; }
.et_pb_fullwidth_slider_0_tb_header { margin-top: 471px !important; }
Constant Image Size
It is best to use images of the same dimensions when making a slider but if you cannot for some reason then use the following code to make images with different sizes all display with a constant dimensions:
Advanced --> Free-Form CSS --> CSS
/* set the height of the slide image*/ selector .et_pb_slide_image img { width: auto; height: 600px; object-fit: cover; }
Custom Gallery Arrows
/* Custom Gallery Arrows */ .et-pb-arrow-prev::before { content: "4"; background-color: #24bca4; border: 1px solid #fff; border-radius: 50%; color: #fff; } .et-pb-arrow-next::before { content: "5"; background-color: #24bca4; border: 1px solid #fff; border-radius: 50%; color: #fff; }
Below are the basic instructions pon setting up a blog for you client (or yourself). Once you have set up your blog you can always change the look and feel afterwards.
There are 2 places you can design your `Blog` page:
I prefer creating a `Blog` page as it is easy and more logical for me to manage, especially for small sites.
Using the `Blog` template to override the posts page as defined in static pages is a not really needed unless you have a specific reason such as overriding the `Global` Header and Footer or even just adding a featured image.
You can mix and max the styles below by having blocks with a Sidebar but you might find you run out of real estate on your page quickly.
Follow the instructions below, styling as required, and you will get a layout similar to the Divi Blog that utilises blocks.
Follow the instructions below, style as required and you will get a standard post list layout with a sidebar.
Follow the instructions below, style as required and you will get a standard post list layout with a sidebar.
If you don't want a sidebar, set the middle section row to have only 1 column and remove the `Sidebar` module and configuration from the following instructions, the rest will be the same.
If you don't want comments, just don't add the bottom section.
Create the layout as shown below:
After someone has used the blog search feature you need to make sure the search results they are offered are styled correctly.
You can use either either of the `Blog` page layouts, but it you want to use your `Blog` page design you used above then this is very simple,
Instructions
I want to use a `ms-windows-store://`link which will open the `Quick Assist` app in the `Microsoft Windows Store`on the local PC and not the website. This link will make it easier for allowing me to remotely access a client's PC when required rather that telling them on how to install software or press certain keys on the keyboard.
By using the local `Windows Store`, the product page for the app benefits from:
`Quick Assist` Store links
You can easily add links to the Microsoft Store website as these are normal URLs, however, when I use a `ms-windows-store` URLs in a custom link menu item, it is always removed.
Add `ms-windows-store` as an allowed protocol, steps of which are now outlined below.
I found how to add a protocol to the `Allowed Protocols` list with information in this article, Using WordPress ‘kses_allowed_protocols’ PHP filter | IT Support Guides and is in 2 parts, the code, and then where to put it.
You can also craft a custom menu item type using the plugin Menu Item Types – WordPress plugin | WordPress.org but this requires sometime to extract the code from WordPress and build a custom menu item type which can be used by this plugin. Most of the relevant code links are in the research section at the end.
I modified the code from the article to add/allow the `ms-windows-store` protocol.
// Add a Custom Protocol (ms-windows-store) add_filter('kses_allowed_protocols', 'add_myprotocol'); function add_myprotocol($protocols) { $protocols[] = 'ms-windows-store'; return $protocols; }
TL;DR - Use Code Snippets and have the code snippet run everywhere. The URL is filtered when submitted and then when displayed.
Now you have the relevant code, where do you put it? There are several ways to add these filters in to WordPress, pick which one is best for you. Your different options are below:
These are some of the relevant code locations I found.
The Dell model number system is hard to understand so I have put together some notes to explain these numbers.
Names
Latitude, Inspiron, Vostro (discontinued), OptiPlex, Precision
Type
These naming convention is based on OptiPlex but some of it is valid for other desktops.
- Example: OptiPlex 3070 Micro
- Explanation:
- A business class desktop PC
- in the 3000 series
- first manufactured in June 2019
- Micro format
Links
I have used information found for the Latitude range of Dell laptops but the rules should be the same for the other laptop ranges such as XPS and Inspiron.
- Example: Latitude 7390 2-in-1
- Explanation:
- A business class laptop
- in the 7000 series
- with a 13" screen
- first manufactured in 2018
- which can be folded and used as a tablet by using it's touchscreen
- A laptop with the same model number can have a better CPU, Motherboard RAM and other features as the laptops are redeveloped over time but not necessary reflected with a new model number, perhaps because it uses the same chassis.
- These different laptops will have a different Dell Part number.
Classification
I am not sure they are classified like this any more.
The laptops can be targeted at different markets so have an arbitrary description assigned to them which is not reflected in the model number.
Links
- Example:
- Model: LA45NM150
- DP / N: 0HDCY5
- Explanation:
- Manufactured by LiteOn
- with a 45w power rating
- .......
Chargers can be made by different manufacturers but they will share the same Dell Part Number.
NB: Newer models of the scanner might have newer versions of software on their download pages. But you will need a serial and part number for the relevant scanner.
FtaljgX1.exe
driver file you have just downloaded
Disk1
Disk1
folder and run setup.exe
- Once installed, the driver is as follows:
- The driver name is: fi-6130Zdj
- Driver Provider: FUJITSU
- Driver Date: 04/02/2025
- Driver version: 9.25.17.0
- Driver Signer: Microsoft Windows Hardware Compatibility Publisher
Notes
C:\windows\twain_32\fjscan32\
These are a collection of useful tips and tricks for using the Amazon Fire TV Stick (aka Firestick)
Issue
I connected once to my Firestick all good with airscreen, I then could not reconnect whatever i did. This was after i changed the name of the airscreen.
Cause
The reason for this fault is most likely some sort of cache that is not getting cleared with the name and device id etc..
Solution
TL;DR
- The pendrive (or another USB device) needs to be inserted into the USB socket on the OTG cable when you power on the Firestick to enable OTG, after this it will work as expected, inserting and removing the pendrive and other devices, because OTG is enabled.
- The pendrive must be formatted to FAT32.
- You could use a OTG cable with a USB hub buily-in which would keep the OTG live at all times and not required a USB device to be plugged in to activate it leaving you free to insert pendrives when you want rather than having to remember to have a USB device plugged in at boot time. This might get fixed in later software updates and might not be present on all Firestick versions.
This can be very frustrating but here is a simple procedure that will getyour pendrive to work in most cases.
Instructions
Notes
Access NTFS Drives On Firestick (No Root!) | TechDoctorUK
This tutorial has a really easy video to follow to setup your Firestick to use NTFS formatted drives using ES File explorer.
ES File explorer allows you to mount NTFS drives and then open files on them with your chosen media player. I am not sure if the mounted drives are available outside of the ES File explorer.
Quick Instructions
Firesticks will only read USB pendrives that are formatted in FAT32 and this filesystem has a file size limit of 4GB. Normally this would not be an issue but if you have a movie that is larger than 4GB you cannot put it on your pendrive but I hear people say just put it on a network drive which is great if your network is capable of the required speed.
The instructions below will show you how to work around this limit by creating an archive of your movie file that is split up into files that are smaller than the 4GB filesize limit of FAT32 and then playing them in a capable player.
Kodi is capable of playing movies that are encapsulated in archive files (using addons) as if they were one file. Currently VLC player cannot play archive files on the Firestick.
https://mirrors.kodi.tv/releases/android/arm/
In this section we will break the movie into smaller files so these can be put onto the FAT32 pendrive.
Insert your pendrive so it is visible in the Firestick and Kodi will now show the movie as normal with thumbnails, and can be played as such.
As mentioned above I could not get multi-part zip files to work but this might change with updates to the software, however the RAR option works well so you should just use that file type.