I have written these instruction while trying to diagnose and fix washed out colours on my Dell U2414H monitor attached to my Dell E6540 laptop which uses the Intel HD Graphics 4600 GPU however the solutions and logic will apply to al lot of setups.
Some of these options might not realise unless you restart your PC.
These are a reference for my monitors but if you have a Dell U2414H you might as well use them.
There are a few ways to recover music from Sony Minidiscs and these will vary between devices:
This article is dedicated towards digitally downloading tracks direct from the Walkman with no sound quality loss.
This YouTube tutorial covers everything from grabbing tracks using Method 1 to converting the .aea files to a more useful format.
- Transferring MiniDisc recordings via USB tutorial (Web MiniDisc Pro) - YouTube - This method of transferring MiniDiscs is faster than realtime, and seemingly as close to the original recording as one can get. Didn't see a tutorial on this so I figured I might as well make one in case this helps someone.
Homebrew Mode Ripping in Main UI
Enter Homebrew Mode
CANCEL/CHG
button this will stop the disc spinning and allow you to swap the disc without restarting "Web MiniDisc Pro" but this does not always work.ffmpeg -i input_audio_file_supported_by_ffmpeg -f au - | atracdenc -e atrac1 -i - -o out.aea
This article is based on the server running cPanel/WHM, the website CMS is WordPress with Divi as it's template, but the logic will most likely apply to a lot of other platforms.
I have a contact form that will not send the emails when the submitted details contain a free email address even though the contact form says the message was sent.
The failed emails do not appear in "Track Delivery" in cPanel so I have nothing to inspect and figure out what is going on.
If you do not manage your emails locally then an emails that are sent but are bounced will be returned to the server defined in the MX entry.
<reply-to>
header.system
mailbox in cPanel, they are never passed to the MTA (Exim).spamd
.system
mailbox might look something similar to this:### Title ### Mail failure - rejected by local scanning code ### Message Body ### A message that you sent was rejected by the local scanning code that checks incoming messages on this system. The following error was given: This message was classified as SPAM and may not be delivered ------ This is a copy of your message, including all the headers. ------ .....
These are some solutions an workarounds, pick which ever best suits your needs, which ever you pick you should monitor the situation for a while to make sure the changes you implement are working as expected.
NB: 8.5 = Default Threshold + PHP_SCRIPT + KAM_COUK
You can reduce the SPAM score by disabling or cancelling out certain tests, but this requires a lot more time to setup.
mail()
function on returns True or False.## wordpress/wp-includes/PHPMailer/PHPMailer.php 'instantiate' => 'Could not instantiate mail function.', --> mailPassthru($to, $subject, $body, $header, $params) --> $result = @mail($to, $subject, $body, $header, $params); --> mail() # This is a wrapper for sendmail --> sendmail # cpanel sendmail is blocking gmail addresses --> sendmail returns true or false
sudo nano /etc/mail/spamassassin/local.cf
# Set the threshold at which a message is considered spam (default: 5.0) # # required_score 5.0
warn condition = ${if forany{<, $recipients}{!match_domain{${domain:$item}}{:+relay_domains}}} set acl_m_outbound_recipient = 1 warn condition = $acl_m_outbound_recipient condition = ${if <={$message_size}{1000K}} condition = ${if !eq{$originator_uid}{0}} condition = ${perl{spamd_is_available}} set acl_m_spam_scan_enabled = 1 deny condition = $acl_m_outbound_recipient condition = $acl_m_spam_scan_enabled spam = cpaneleximscanner/defer_ok message = This message was classified as SPAM and may not be delivered log_message = "SpamAssassin as cpaneleximscanner detected OUTGOING not smtp message as spam ($spam_score)" warn condition = $acl_m_outbound_recipient condition = $acl_m_spam_scan_enabled log_message = "S
warn condition = $acl_m_outbound_recipient condition = ${if <={$message_size}{1000K}} condition = ${if !eq{$acl_c_authenticated_local_user}{root}} condition = ${if !match{$authenticated_id}{\N^__cpanel__service__auth__[^+%:@]+$\N}} condition = ${perl{spamd_is_available}} set acl_m_spam_scan_enabled = 1 deny condition = $acl_m_outbound_recipient condition = $acl_m_spam_scan_enabled spam = ${if eq{$acl_m1}{}{cpaneleximscanner}{$acl_m1}}/defer_ok message = This message was classified as SPAM and may not be delivered log_message = "SpamAssassin as ${if eq{$acl_m1}{}{cpaneleximscanner}{$acl_m1}} detected OUTGOING smtp message as spam ($spam_score)" warn condition = $acl_m_outbound_recipient condition = $acl_m_spam_scan_enabled log_message = "SpamAssassin as ${if eq{$acl_m1}{}{cpaneleximscanner}{$acl_m1}} detected OUTGOING smtp message as NOT spam ($spam_score)"
To find the rules, search for them in the following format: describe KAM_DMARC_STATUS
PHP_SCRIPT 2.5 - Sent by PHP script
FREEMAIL_FORGED_REPLYTO 0.1 - Freemail in Reply-To, but not From
KAM_COUK 0.85 - Scoring .co.uk emails higher due to poor registry security.
KAM_DMARC_STATUS 0.01 - Test Rule for DKIM or SPF Failure with Strict Alignment
T_SCC_BODY_TEXT_LINE
URIBL_BLOCKED
small - ADMINISTRATOR NOTICE: The query to URIBL was blocked. See
http://wiki.apache.org/spamassassin/DnsBlocklists\#dnsbl-block for more
information.
## Default rules, but these will be replaced upon upgrade /usr/share/spamassassin ## Rules seem to be here /etc/mail/spamassassin/
/etc/mail/spamassassin
(if you use spamD, be sure to restart)./etc/mail/spamassassin/KAM.cf
Sep 1 13:56:08 srv spamd[414141]: spamd: connection from localhost [127.0.0.1]:43490 to port 783, fd 6 Sep 1 13:56:08 srv spamd[414141]: spamd: setuid to cpaneleximscanner succeeded Sep 1 13:56:08 srv spamd[414141]: generic: trusted_networks doesn't contain internal_networks entry '0/0' Sep 1 13:56:08 srv spamd[414141]: spamd: checking message <XXXXXXXXXXXXXXXXZldVRrQX6dyBuRHk9yR9jnJNGRM@www.example.co.uk> for cpaneleximscanner:992 Sep 1 13:56:18 srv spamd[414141]: spamd: identified spam (5.9/5.0) for cpaneleximscanner:992 in 10.3 seconds, 3794 bytes. Sep 1 13:56:18 srv spamd[414141]: spamd: result: Y 5 - FREEMAIL_FORGED_REPLYTO,KAM_COUK,KAM_DMARC_STATUS,PHP_SCRIPT,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED scantime=10.3,size=3794,user=cpaneleximscanner,uid=992,required_score=5.0,rhost=localhost,raddr=127.0.0.1,rport=43490,mid=<XXXXXXXXXXXXXXXXZldVRrQX6dyBuRHk9yR9jnJNGRM@www.example.co.uk>,autolearn=no autolearn_force=no,shortcircuit=no
## This adds the score /var/lib/spamassassin/3.004006/updates_spamassassin_org/20_freemail.cf ## This is the list of the Freemail domains /var/lib/spamassassin/3.004006/updates_spamassassin_org/20_freemail_domains.cf ## An old list /var/lib/spamassassin/3.004006/updates_spamassassin_org/20_freemail_mailcom_domains.cf
/var/log/maillog
file. This can be used to determine what rules are being triggered by the message.
/usr/local/cpanel/logs/spamd_error_log
I got this from my VPS provider:
SpamAssassin’s internal spam score is calculated by summing the scores of various matched rules.
Rule Description Score HTML_MESSAGE Email contains HTML 1.0 BAYES_99 Bayesian filter suggests 99% spam probability 3.5 RCVD_IN_SPAMHAUS Sender's IP is in the Spamhaus blacklist 2.0 DKIM_VALID Email has a valid DKIM signature -1.0 Total Score 5.5
X-Spam-Score: 40
These are a collection of my notes for the Meta Quest 3
SW1 1LF
and not SW11LF
By ticking this box and clicking the Confirm button, you agree that the content will immediately begin downloading onto your device, and you acknowledge that you will thereby lose any statutory right of withdrawal (EU/EEA) or cancellation (UK). Learn more You will be charged £59.99, including tax, when this free trial ends on 26 Feb 2025 and every year when this subscription is automatically renewed until you cancel. Cancel at any time in your account settings at least 24 hours before the end of this free trial or the next billing date to avoid future charges.By selecting Confirm, you agree to the Meta Quest Store Terms.
- Meta Quest+ subscription | Meta Store
- Experience the ultimate gaming adventure with Meta Quest+. Enjoy instant access to over 25 games, exclusive deals and monthly drops. Cancel at any time with no hidden fees.
- Meta Quest+ is your subscription for premium games and more. Discover and play on repeat. You'll get instant access to a growing content catalogue and curated monthly drops of top titles, all for just £7.99 a month. Plus, you'll get exclusive deals and offers as a subscriber. Get ready to explore new apps and worlds.
- Meta Quest Plus - Homepage | Meta Store
- Claim your free games here every month, both the permanent ones and the ones in the rotating games catalogue.
You can pair your Xbox controller on your Quest for using with games.
random thing to look at later, I have not made a descicion and do not know the quality of the brands, this is more an idea holders
This call accesses the User ID platform feature, which requires certifying through the Oculus Data Use Checkup program. Please visit this page for more detail: https://developer.oculus.com/distribute/publish-data-use/. If you have already completed a Data Use Checkup, please ensure that all compliance issues are resolved by visiting the Compliance Dashboard: https://developer.oculus.com/resources/publish-compliance-dashboard/.
These are my notes on rebuilding my pond
Just a collection of my notes for installing and using Discourse
Suggested alternative Titles - might replace - current one
Terms block
Setup instructions
This article will explore Forward Proxies, Reverse Proxies with a practical example to set up Virtualmin to access a remote Discourse server. We will also use phpmyAdmin to show case a locally hosted App. I will be using Apache but nginx can act as a reverse proxy.
Technologies used in this tutorial
- Ubuntu
- Webmin/Virtualmin
- Apache
- ProxyPass / ProxyPassReverse
- Discourse
- Docker
- TrueNAS
Proxying allows you to map a URL path in a virtual server's website to one or more destination URLs. It can be used to make other services available via a URL path on your website. For example, you might map the path /nodejs to the URL http://localhost:3000, an instance serving the application running on your Virtualmin system.
A proxy maps some URL on a virtual server to another webserver. This means that requests for any page under that URL path will be forwarded to the other site, which could be a separate machine or another webserver process on the same system.
ProxyPass / unix:/var/discourse/shared/socket-only/nginx.http.sock|http://localhost/ ProxyPassReverse / unix:/var/discourse/shared/socket-only/nginx.http.sock|http://localhost/
.well-known
path, and let it be served from the file system. Again, this is always true, nothing special about Discourse or Virtualmin being involved.ProxyPass /.well-known/acme-challenge/ ! ProxyPassReverse /.well-known/acme-challenge/ !
I have struggled for years to understand what the point of the cgi-bin folder was for which then lead me to research into the whole area and what was the point of this technology.
CGI allows the use of scripts and binaries from many other languages and the benefit of this are:
This is the only folder allowed on your server where you can runs CGI applications and is usually created when you install the package `php-cgi`.
- The file extension .cgi can be changed if required when setting up the server.
- The .cgi files can be either scripts or binaries.
- A CGI can only external interact externally as follows (but this does not include what its internal routines do):
- Read the Stdin
- Read the Environmental Variables
- Output the Stdout
- When a CGI App is started a single process for it is created and when it has finished executing the process is terminated removing it from RAM etc.
- You can easily upgrade a CGI script by just changing the CGI file.
PHP can be run via any of the following wrappers but this is not the same for CGI Apps
Notes
- CGI is one process for each request and has large overheads.
- FastCGI
- uses a persistent process and requires more settings for this.
- is a bit more complicated because the processes start up at the very beginning of the server.
- FastCGI keeps a pool of scripts running whereas CGI opens a single process, runs it and then when finished is immediately closed. Because the processes are always open there is no overhead of starting up the process any more.
- CGI and FastCGI Apps are not the same, but are similar. FastCGI Apps need extra code to handle persistent states.
- You can run a CGI App under FastCGI but you need a wrapper app.
- CGI and FastCGI are almost always run from the cgi-bin folder
- The file extensions of .cgi and .fcgi are use as appropriate
These technologies are getting or already have been replaced with proxying and dedicated server modules such as mod_perl and mod_python.
Most programming languages offer their own dedicated servers so it makes sense to have those do the relevant work and then return the results to your web server. Proxying allows a web server to do this invisibly just as CGI and FastCGI have done in the past and allows the resource hit to be offloaded.
Proxying is configured in your Apache Config files.
What about PHP-FPM?
This technology is dedicated to running PHP, and in a sense is probably now a dedicated engine for PHP only.
I cant see this going away anytime soon but it will only ever run PHP.
I have put my Virtualmin notes here as they are more relevant to this niche feature.
Q:
<Directory /home/example/public_html> Options -Indexes +IncludesNOEXEC +SymLinksIfOwnerMatch +ExecCGI Require all granted AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch </Directory> <Directory /home/example/cgi-bin> Require all granted AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch </Directory>
A:
AllowOverride
means .htaccess
can override the default configuration. The default configuration does not have ExecCGI
..htaccess
. Historically it was pretty common to run CGI scripts in public_html, too, but much less so these days.public_html
, if you’ve got any web apps installed. So, if a remote attacker gains ability to write to public_html
, it’s already over. There would be no need to modify .htaccess
to run scripts, they’d just drop a PHP shell in public_html
and be done.Options -Indexes +IncludesNOEXEC +FollowSymLinks +ExecCGI +Multiviews allow from all AllowOverride All AddHandler fcgid-script .php AddHandler fcgid-script .php5 AddHandler cgi-script .cgi FCGIWrapper /home/domain/fcgi-bin/php5.fcgi .php FCGIWrapper /home/domain/fcgi-bin/php5.fcgi .php5
Deciding on how to connect your software to the relevant database requires you to understand the relevant technologies. I struggled with this myself so I looked it up and made some notes.
TL;DR
- Modern version of PHP are compiled by default with php-mysql which has in it:
- mysqlnd
- mysqli
- pdo_mysql
- Use PDO for your new PHP projects.
After going thourh my research I put together this list of answers and points.
What are they and what do they do? Which is best for performance
sudo apt install php-mysqlnd
sudo apt install php7-mysqlnd
mysqlnd
is the default library, but it was possible to compile mysqli
and pdo_mysql
extensions with libmysql
with a compile-time configuration flag.mysqli
extension with libmysql
is no longer supported.My local backup is using 'Veeam Endpoint for Windows' and an external USB Hard Drive which were working fine until after a Windows Update. It took a while before I worked out the link between the update and Veeam.
I would get errors like these shown below.
Error: Full backup file merge failed
26/01/2024 18:09:41 :: Full backup file merge failed Error: Agent: Failed to process method {Transform.Patch}: The media is write protected.
Error: Asynchronous read operation failed
26012024 215538 Error The device is not ready. Asynchronous read operation failed Failed to upload disk. Agent failed to process method {DataTransfer.SyncDisk}. Exception from server The device is not ready. Unable to retrieve next block transmission command. Number of already processed blocks [86184]. Failed to download disk 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
After a Windows Update, there was something wrong with the mount point for the 'Recovery Partition' because the update had corrupted the partition somehow. Because of this corruption, Veeam cannot correctly mount the 'Recovery Partition' so the backup fails.
Mount and Unmount the 'Recovery Partition' (Add and Remove a drive letter)
The backup will show a success message as follows: