Skip to content

World

Topics from outside of this forum. Views and opinions represented here may not reflect those of this forum and its members.

A world of content at your fingertips…

Think of this as your global discovery feed. It brings together interesting discussions from across the web and other communities, all in one place.

While you can browse what's trending now, the best way to use this feed is to make it your own. By creating an account, you can follow specific creators and topics to filter out the noise and see only what matters to you.

Ready to dive in? Create an account to start following others, get notified when people reply to you, and save your favorite finds.

Register Login
  • Sampo2910

    Hi All,

    It’s been a while. I took a break from well…everything to be honest. Anyway here I am and I hope you are all well.

    I have a question regarding nodebb and external links. Is it possible to make all external links open in a new window by default? Pretty sure it’s not in the settings. A lot has chnaged since I last played around with it.

    Thank you in advance.


    @Sampo2910 search the forum here for ogproxy which is the client side version of that plugin I wrote. It’s in use here on this forum.
  • Madchatthew

    So everyone knows about the upcoming Winblows 10 being flushed down the toilet by MS and trying to force everyone to go to Winblows 11. Well who has two thumbs and isn’t playing that game? 👍 👍 This guy!

    So on that note, last week I decided I wanted to get a jump start on making Linux my daily driver on the main computer. Which by the way is over 10 years old. Thank you Asus, AMD, Corsair and Samsung, Western Digital. Sorry had to do a shout out to them. They aren’t the cheapest, but they do make excellent products and I don’t use anything else when I build my PCs. That is also based on experience repairing computers.

    I digress, lets get back on topic. So due to the success of the Arch Linux server that I am running for a production web hosting server on Hetzner, I decided to go ahead and install Arch Linux with KDE Plasma on my main computer. Well I should say our computer since my wife and daughter use it as well. The wife just uses the web browser, and now LibreOffice to write stories for freelancing. Also Gnucash for invoicing and such. So she is pretty much taken care of for now.

    My daughter uses the desktop computer for voice to text to quickly write a story or idea that she has come up with. Before she was using Word, but now will be using LibreOffice as well. The downside to this is that I will have to find a program that will do voice to text. I did a little research on this already, but need to test some of them out. Currently she uses a laptop with Windows on it to play games. As it gets closer to Winblows 10 going the way of the dodo bird, I will put Arch Linux with KDE Plasma on it as well.

    Finally for me, I play games, one of them being Minecraft. I run a Minecraft server on the desktop for my daughter and I to play on, and that migration from Winblows to Linux was so very simple. And I must say playing Minecraft on the desktop and playing on the server at the same time, they both run ssssoooooo smooth. Better than when running both on Winblows. I have Steam installed and am struggling a little bit with getting American Truck Simulator working without so much lag. On Winblows it had a little bit of lag, but not as bad as it is now and was thinking it would run better than on Winblows. I have been testing different Proton versions and think I am getting close. I was able to get the Bluetooth headphone working and the printer working from Linux. Of course I do more with the Desktop and still have things to test and make sure they are working appropriately.

    So far, I am very happy with the switch. There are things that will come up with Linux that will need to be troubleshooted, but that will be part of the fun. When I first started using Winblows, there were many things I needed to troubleshoot and try to get working and it was fun. I look forward to applying those same things with Linux and rather than just blowing away the install and going with something else, troubleshooting and learning the operating system and becoming better at it. No operating system is perfect and there will always be issues, but I am finding Linux a lot of fun to troubleshoot and get things working.

    Thanks for reading and don’t be afraid to make the switch and maybe no sweatin as you go down the hall. 🤣


    @phenomlab said: @Madchatthew ouch. Sounds nasty. Did you get to the bottom of why it happened? I believe it is due to not everything getting upgraded because i wasn’t checking on the different packages I had installed from the AUR. Then when I ran yay it was like, hey would you like to update all of these things that you haven’t updated in months, perhaps years or ever for that matter and I was like yes please If you don’t have yay there are no notifications that you need more updates than what you realize. Chrome was staying updated because it would give me a notification, but there was the nvidia package that needed to be upgraded as well and I had never upgraded it. I didn’t realize it and should have. Then some of those packages use cmake and that needed to be updated as well. So using yay is beneficial to make sure you get all the updates you need.
  • phenomlab

    I’ve had limited success with the plugin nodebb-plugin-twitter and its various forks in the sense that the embeds failed to load - here’s an example of that exact problem (never resolved from what I can see)

    https://github.com/NodeBB-Community/nodebb-plugin-twitter/issues/2

    I decided to write my custom JS which can be found here

    https://github.com/phenomlab/nodebb-twitter-embeds

    This not only works in the same way as the NodeBB plugin, but will also render client-side so does not pile up in terms of resources on your server 🙂 In addition, the available arguments for the embeds are below

    https://developer.x.com/en/docs/twitter-for-websites/embedded-tweets/guides/embedded-tweet-parameter-reference

    Here’s a real-life example

    https://x.com/phenomlab/status/1810648261369233607


    @phenomlab said: @DownPW thanks for spotting (and fixing) this issue. I admittedly threw this together quickly for @jac some time ago, and it hasn’t had any love since. If OK with you, I’ll merge these changes into the github repository? No problem dude
  • DownPW

    Hi everyone, @phenomlab

    I’m currently facing persistent xhr poll error issues with NodeBB behind Cloudflare (Free plan, proxied / orange cloud). I’ve been debugging this for quite a while and would really appreciate some expert input.


    🔎 The Problem

    In the browser console I consistently get:

    [socket.io] Connection error: xhr poll error
    

    With error i nnodebb :

    ae8a3eb4-96d2-4fee-903f-4147c3522059-image.jpeg
    Network tab shows:

    /socket.io/?_csrf=...&EIO=4&transport=polling → 403
    

    570a8724-b086-44a1-bf3e-51d4e0935fb6-image.jpeg

    So the failure happens during the polling transport phase, before WebSocket upgrade. I guess

    Login works.
    Sessions work.
    Forum loads.
    But sockets keep failing with 403 with error connexion in nodebb interface


    🧭 Infrastructure Overview

    Server

    • VPS wHetzner with public IP and firewall Hetzner with open port : 80, 443, Virtualmin CF Proxied 8443, nodebb 4567, redis 6379, clustering 4567, 4568, 4569
    • Same ports open in the server with firewalld/virtualmin
    • Managed via Virtualmin
    • Nginx reverse proxy
    • Let’s Encrypt SSL
    • Ubuntu Server

    NodeBB Setup

    • Latest stable NodeBB 4.9.1
    • Node.js LTS 18
    • MongoDB
    • Redis enabled
    • Cluster mode enabled scaling

    Here my config.json:

    ```
    
    {
    
        "url": "https://xxx-xxx.net",
    
        "socket.io": {
    
         "cors": {
    
          "origin": "*"
    
         }
    
        },
    
        "trust proxy": true,
    
        "secret": "xxxx-xxxx-4c42-xxxxx-xxxxxxxx",
    
        "database": "mongo",
    
        "mongo": {
    
            "host": "127.0.0.1",
    
            "port": "27017",
    
            "username": "nodebb",
    
            "password": "xxxxxxxxxxxxxxxxx",
    
            "database": "nodebb",
    
            "uri": ""
    
        },
    
        "port": [4567, 4568,4569],
    
            "redis": {
    
            "host":"127.0.0.1",
    
            "port":"6379",
    
            "database": 5
    
        }
    
    }
    
    ```
    

    Here my vhost nginx :

        
    
            upstream io_nodes {
        
                ip_hash;
                server 127.0.0.1:4567;
                server 127.0.0.1:4568;
                server 127.0.0.1:4569;
            }
    
            server {
    
            	server_name xx-xx.net www.xx-xxx.net mail.xx-xx.net webmail.xx-xx.net admin.xx-xx.net;
    
            	root /home/xxx-xxx/nodebb; #dossier root nodebb
    
            	index index.php index.htm index.html;
    
            	access_log /var/log/virtualmin/xxx-xxx.net_access_log;
    
            	error_log /var/log/virtualmin/xx-xx.net_error_log;
    
            	client_max_body_size 20M;
    
            	fastcgi_param GATEWAY_INTERFACE CGI/1.1;
        
            	fastcgi_param SERVER_SOFTWARE nginx;
    
            	fastcgi_param QUERY_STRING $query_string;
    
            	fastcgi_param REQUEST_METHOD $request_method;
        
            	fastcgi_param CONTENT_TYPE $content_type;
    
            	fastcgi_param CONTENT_LENGTH $content_length;
    
            	fastcgi_param SCRIPT_FILENAME "/home/xx-xx/public_html$fastcgi_script_name";
    
            	fastcgi_param SCRIPT_NAME $fastcgi_script_name;
        
            	fastcgi_param REQUEST_URI $request_uri;
        
            	fastcgi_param DOCUMENT_URI $document_uri;
        
            	fastcgi_param DOCUMENT_ROOT /home/xx-xxx/public_html;
    
            	fastcgi_param SERVER_PROTOCOL $server_protocol;
    
            	fastcgi_param REMOTE_ADDR $remote_addr;
        
                   	fastcgi_param REMOTE_PORT $remote_port;
        
            	fastcgi_param SERVER_ADDR $server_addr;
        
            	fastcgi_param SERVER_PORT $server_port;
        
               	fastcgi_param SERVER_NAME $server_name;
    
            	fastcgi_param PATH_INFO $fastcgi_path_info;
        
            	fastcgi_param HTTPS $https;
        
    
            	location /.well-known {
            	}
        
            
        
            	location ^~ /.well-known/acme-challenge/ {
                	try_files $uri /;
                	allow all;
            	}
        
    
                # Ajout du Reverse Proxy :
                location / {
    
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header X-Forwarded-Proto $scheme;
    
                    #proxy_set_header Host $http_host;
    
                    proxy_set_header X-NginX-Proxy true;
    	        proxy_set_header Host $host;
                    proxy_pass http://io_nodes; 
                    proxy_redirect off;
    
                    # Socket.IO Support
    
                    proxy_http_version 1.1;
                    proxy_set_header Upgrade $http_upgrade;
                    proxy_set_header Connection "upgrade";
                }
        
    
            	# serve static assets
    
            	# Ajouter le bloc ci-dessous qui forcera tout le trafic dans le cluster nodebb - redis lorsqu'il est référencé avec "@nodebb"
    
                # (A désactiver si pas de cluster nodebb - redis ou http://127.0.0.1:4567 pour serve static assets )
        
    
            	location @nodebb {
    
                	# proxy_pass http://127.0.0.1:4567;
    
            	proxy_pass http://io_nodes;
    
            	}
        
    
            	location ~ ^/assets/(.*) {
    
                	root /home/xxx-xxx/nodebb/;
                	try_files /build/public/$1 /public/$1 @nodebb;
            	}
        
            
        
            	# serve static assets compressed
        
            	gzip            on;
            	gzip_min_length 1000;
            	gzip_proxied    off;
            	gzip_types      text/plain application/xml text/javascript application/javascript application/x-javascript text/css application/json;
        
    
            	location ~ "\.php(/|$)" {
    
            		try_files $uri $fastcgi_script_name =404;
            		default_type application/x-httpd-php;
            		fastcgi_pass unix:/run/php/173162234249002.sock;
            	}
        
            
        
            	fastcgi_split_path_info "^(.+\.php)(/.+)$";
    
            	if ($host = webmail.xxx-xxxx.net) {
        
            		rewrite "^/(.*)$" "https://xxx-xxx.net:20000/$1" redirect;
            	}
        
            
        
            	if ($host = admin.planete-warez.net) {
    
                		rewrite "^/(.*)$" "https://planete-warez.net:10000/$1" redirect;
    
            	}
        
            
        
            	listen 65.21.3.134:443 ssl http2;
            	listen [2a01:4f9:c010:db20::1]:443 ssl http2;
    
                ssl_certificate /etc/letsencrypt/live/xx-xx.net/fullchain.pem; # managed by Certbot
                ssl_certificate_key /etc/letsencrypt/live/xx-xx.net/privkey.pem; # managed by Certbot
        
            
        
            	rewrite /awstats/awstats.pl /cgi-bin/awstats.pl;
        
            }
        
            server {
    
                if ($host = xx-xx.net) {
                    return 301 https://$host$request_uri;
                } # managed by Certbot
        
    
            	server_name xx-xx.net www.xx-xx.net mail.xx-xx.net webmail.xx-xx.net admin.xx-xx.net;
    
            	listen 65.21.3.134;
            	listen [2a01:4f9:c010:db20::1];
    
                return 404; # managed by Certbot
    
            }
        
    
    Nginx has been reloaded.  
    NodeBB restarted multiple times without  "origin": "*"  or "cors": {
    
    * * *
    
    # ☁️ Cloudflare Configuration
    
    Plan: Free  
    Status: Proxied (orange cloud)
    
    ### SSL/TLS
    
    - Mode: Full (Strict) with Let's encrypt SSL on the web servers with certbot
    - WebSockets: ON
    
    ### Cache Rules
    
    - Rules created:
    
        - If URI Path contains `/socket.io/`
        - Then: Bypass cache
    
    ### WAF
    
    - Custom ignore rule for `/socket.io/*`
    - Custom ignore rule for `/api/*`
    
    No rate limiting.  
    
    --> Issue persists.
    
    * * *
    
    # 🧪 What Has Been Tested
    
    - Verified Redis connectivity
    - Verified cluster processes running
    - Verified cluster port in netstats
    - Confirmed `trust proxy: true`
    - Confirmed `X-Forwarded-Proto` is set
    - Cleared all caches
    - Restarted everything multiple times
    - test without  "origin": "*"  or "cors": {
    
    
    * * *
    
    # 🧠 Observations
    
    The failing request includes `_csrf`, for example:
    
        /socket.io/?_csrf=...&EIO=4&transport=polling
    
    This suggests either:
    
    - CSRF validation failing
    - Session cookie mismatch
    - Header mismatch
    - Cloudflare altering something in polling requests
    
    But:
    
    - Login works
    - Normal requests work
    - Only socket polling fails
    
    * * *
    
    # ❓ Questions
    
    1. Has anyone experienced 403 specifically on `transport=polling` behind Cloudflare?
    2. Is there anything specific in NodeBB cluster mode that could cause this?
    3. Could Cloudflare be interfering with long-polling specifically (even with WebSockets enabled)?
    4. Is there a recommended minimal known-good config for NodeBB + Cloudflare (Free) + cluster?
    
    * * *
    
    At this point I’m unsure whether:
    
    - This is CSRF related
    - This is Cloudflare related
    - This is a subtle proxy/session issue
    - Or something specific to polling transport
    
    Any guidance or expert would be greatly appreciated.
    
    Thanks in advance 🙏

    @phenomlab said: If you bypass or disable cloudflare, does the problem subside? I will test that tonight. I have create waf rules on CF and page rule for ignore socket.io… [image: e1ff1160-846d-4aad-ab06-5070485b0f43-image.jpeg] [image: 577c9be8-cec3-4b81-b0a5-8b9c315eabee-image.jpeg]
  • JAC

    read more →
    Here’s another… Google busy again! https://www.theverge.com/tech/870056/google-cellular-data-lawsuit-settlement
  • Madchatthew

    One of the things that I have found that can be annoying with Arch is that if you aren’t updating the OS on a regular basis, you will run into not being able to due the updates because the mirrorlist will be out of date. The easiest way to circumvent this is to update Arch using sudo pacman -Syu weekly/bi-weekly.

    Another option is to install Reflector and enable and start the service so it can run on boot it is hooked into pacman when you run it. I am not sure if this would be a problem if you are using Arch as a daily driver and updating through the Software Center.

    This installs Reflector

    sudo pacman -S reflector
    

    This starts Reflector service

    sudo systemctl start reflector
    

    This allows Reflector service to start at boot

    sudo systemctl enable reflector
    

    This allows you to check on the status of Reflector

    sudo systemctl status reflector
    

    https://wiki.archlinux.org/title/Reflector


    I have another update for reflector that I just figured out. You will want to edit the following file and add details to make sure that every time it updates the mirror list, it is grabbing them from your country and I grab 10 and sort them by rate. This will ensure that your mirrorlist isn’t getting populated with links from other countries which can slow down you downloads. sudo nano /etc/xdg/reflector/reflector.conf This is what the file looks like. # Reflector configuration file for the systemd service. # # Empty lines and lines beginning with "#" are ignored. All other lines should # contain valid reflector command-line arguments. The lines are parsed with # Python's shlex modules so standard shell syntax should work. All arguments are # collected into a single argument list. # # See "reflector --help" for details. # Recommended Options # Set the output path where the mirrorlist will be saved (--save). --save /etc/pacman.d/mirrorlist # Select the transfer protocol (--protocol). --protocol https # Select the country (--country). # Consult the list of available countries with "reflector --list-countries" and # select the countries nearest to you or the ones that you trust. For example: --country US # Use only the most recently synchronized mirrors (--latest). --latest 10 # Sort the mirrors by synchronization time (--sort). --sort rate Here are the different flag options that you can change or add to this file. I found this on google by searching arch linux reflector flags. Filtering Options (What to find) --country <CODE/Name>: Selects mirrors from specific countries (e.g., US, France,Germany). Use {Link: reflector --list-countries https://archlinux.org/mirrors/status/}, for a full list. --protocol <http|https>: Filters for HTTP or HTTPS mirrors. --age <hours>: Only includes mirrors synced within the last X hours (e.g., --age 12). --delay <hours>: Limits to mirrors with a reported sync delay of X hours or less (e.g., --delay 0.25 for 15 mins). --latest <N>: Limits results to the top N newest mirrors. Sorting Options (How to order) --sort rate: Sorts by download speed (requires testing, can be slow). --sort age: Sorts by most recently synced. --sort score: Sorts by overall score. --sort country: Sorts by country, useful with multiple countries. Output Options (Where to put it) --save <path>: Writes the filtered/sorted list to a file (e.g., /etc/pacman.d/mirrorlist). --verbose or -v: Shows detailed progress and mirror info.
  • Madchatthew

    Hello Everyone,

    I have my new server up and running and have even moved over my wife’s wordpress website. I have to say I can tell a big difference on speed. The digital ocean server was fast, but with more resources for a couple dollars more I can tell a huge difference.

    So now for my question. I have my reverse dns setup as mydomainname.com which is the name of my server as host and have created a virtualmin server to it so it can have ssl. So for the reverse dns I have mydomainname.com entered in the IPv4 entry.

    Now for my wife to receive email from a contact form I need to have an MX entry in her DNS management with a MX record of hollyjessen.com pointing to mydomainname.com right?

    Or do I point it to something different?

    Should I also have the DKIM entries entered in as a TXT entry in the DNS management as well?

    Thank you for your help!


    read more →
    @Onix said in Email Server Settings: If anyone has long-term experience with self-hosted SMTP + DNS set-ups that remain stable, would be great to hear which configurations worked best. I can help with this
  • phenomlab

    Ever since the first computer was created and made available to the world, technology has advanced at an incredible pace. From its early inception before the World Wide Web became the common platform it is today, there have been innovators. Some of those faded into obscurity before their idea even made it into the mainstream - for example, Sir Clive Sinclair’s ill fated C5 - effectively the prehistoric Sedgeway of the 80’s era that ended up in receivership after falling short of both sales forecasts and enthusiasm from the general public - mostly cited around safety, practicality, and the notoriously short battery life. Sinclair had an interest in battery powered vehicles, and whilst his initial idea seemed outlandish in the 80s, if you look at the electric cars market today, he was actually a groundbreaking pioneer.

    The technology Revolution

    The next revolution in technology was, without doubt, the World Wide Web. A creation pioneered in 1989 by Sir Tim Berners-Lee whilst working for CERN in Switzerland that made use of the earliest form of common computer language - HTML This new technology, coupled with the Mosaic Browser formed the basis of all technology communication as we know it today. The internet. With the dot com tech bubble lasting between 1995 and 2001 before finally bursting, the huge wave of interest in this new transport and communication phenomenon meant that new ideas came to life. Ideas that were previously considered inconceivable became probable, and then reality as technology gained significant ground and funding from a variety of sources. One of the earliest investors in the internet was Cisco. Despite losing almost 86% of its market share during the dot com fallout, it managed to cling on and is now responsible for providing the underpinning technology and infrastructure that makes the web as we know it today function. In a similar ilk, eBay and Amazon were early adopters of the dot com boom, and also managed to stay afloat during the crash. Amazon is the huge success story that went from simply selling books to being one of the largest technology firms in its space, and pioneering technology such as Amazon Web Services that effectively destroyed the physical data centre with its unstoppable adoption rate of organisations moving their operations to cloud based environments.

    With the rise of the internet came the rise of automation, and Artificial Intelligence. Early technological advances and revolutionary ideas arrived in the form of self serving ATM’s, analogue cell phones, credit card transaction processing (data warehouses), and improvements to home appliances all designed to make our lives easier. Whilst it’s undisputed that technology has immensely enriched our lives and allowed us to achieve feats of engineering and construction that Brunel could have only dreamed of, the technology evolution wheel now spins at an alarming rate. The mobile phone when first launched was the size of a house brick and had an antennae that made placing it in your pocket impossible unless you wore a trench coat. Newer iterations of the same technology saw analogue move to digital, and the cell phone reduce in size to that of a Mars bar.  As with all technology advances, the first generation was rapidly left behind, with 3G, then 4G being the mainstream and accepted standard (with 5G being in the final stages before release). Along with the accessibility factor in terms of mobile networks came the smartphone. An idea first pioneered in 2007 by Steve Jobs with the arrival of the iPhone 2G. This technology brand rocketed in popularity and rapidly became the most sought after technology in the world thanks to its founder’s insight. Since 2007, we’ve seen several new iPhone and iPad models surface - as of now, up to the iPhone X. 2008 saw competitor Android release its first device with version 1. Fast forward ten years and the most recent release is Oreo (8.0). The smartphone and enhanced capacity networks era made it possible to communicate in new ways that were previously inaccessible. From instant messaging to video calls on your smartphone, plus a wealth of applications designed to provide both entertainment and enhanced functionality, technology was now the at the forefront and a major component of everyday life.

    The brain’s last stand ?

    The rise of social media platforms such as Facebook and Twitter took communication to a new level - creating a playing field for technology to further embrace communication and enrich our lives in terms of how we interact with others, and the information we share on a daily basis. However, to fully understand how Artificial Intelligence made such a dramatic impact on our lives, we need to step back to 1943 when Alan Turing pioneered the Turing Test. Probably the most defining moment in Artificial Intelligence history was in 1997 when reigning chess champion Garry Kasparov played supercomputer Deep Blue - and subsequently lost. Not surprising when you consider that the IBM built machine was capable of evaluating and executing 200 million moves per second. The question was, could it cope with strategy ? The clear answer was yes. Dubbed “the brain’s last stand”, this occurrence set the inevitable path for Artificial Intelligence to scale to new heights. The US military attempted to use AI in the Cold War, although this amounted to virtually nothing. However, interest in the progress of Artificial Intelligence rose quickly, with development in this new technology being taken seriously with a range of autonomous robots. BigDog, developed by Boston Dynamics, was one of the first. Designed to operate as a robotic pack animal in terrain considered unreachable or inaccessible for standard vehicles - although it has never actually seen active service. iRobot also gained popularity and became a major player in this area. The bomb disposal device PackBot combines user control with artificial intelligence capabilities such as explosives sniffing. As of today, over 2000 of these PackBot devices have been utilised in Iraq and Afghanistan with the aim of successfully and safely tackling IED’s to prevent loss of human life.

    Never heard of Boston Dynamics ? Here’s a video that’ll give you an insight into one of their latest creations

    A similar occurrence to the Kasparov incident in 2011 saw IBM again unveil it’s latest technology (Watson) which took on the human brain again - this time in US quiz show Jeopardy. Watson was “trained” for three years to take on this challenge, and using a complex set of algorithms and machine learning, trounced the human opposition (who happened to be two of the shows smartest contestants) and stole the show. This incident quickly went viral, and placed Artificial Intelligence as a prominent technology that had advanced to the point where it proved beyond reasonable doubt to be superior to the human brain. 2014 saw the introduction of driverless vehicles that leveraged Artificial Intelligence to make decisions based on road and traffic conditions. Both Tesla and Google are major players in this area - more predominantly Tesla of late. I’ve previously written an article concerning the use of Artificial Intelligence around driverless vehicles that can be found here.

    The Facebook Experiment

    In the save year, Tim Berners-Lee himself said that machines were getting smarter, but humans were not. He also stated that computers would end up communicating with each other in their own language. Given the Facebook AI experiment conducted this year, this prediction was in fact correct. Here’s a synopsis of the discussion between two bots named Alice and Bob.

    Bob: i can i i everything else . . . . . . . . . . . . . .
    Alice: balls have zero to me to me to me to me to me to me to me to me to
    Bob: you i everything else . . . . . . . . . . . . . .
    Alice: balls have a ball to me to me to me to me to me to me to me
    Bob: i i can i i i everything else . . . . . . . . . . . . . .
    Alice: balls have a ball to me to me to me to me to me to me to me
    Bob: i . . . . . . . . . . . . . . . . . . .
    Alice: balls have zero to me to me to me to me to me to me to me to me to
    Bob: you i i i i i everything else . . . . . . . . . . . . . .
    Alice: balls have 0 to me to me to me to me to me to me to me to me to
    Bob: you i i i everything else . . . . . . . . . . . . . .
    Alice: balls have zero to me to me to me to me to me to me to me to me to

    Whilst this discussion became difficult to decipher from the human perspective and looked like complete gibberish (you could draw some parallel with The Chuckle Brothers on LSD) the AI learning in this experiment had actually taken the decision to communicate in a bespoke method as a means of making the stream more effective. The problem with this approach was that the bots were designed to communicate with humans, and not themselves. AI decision making isn’t something new either. Google translate actually converts unsanitized input to its own internal machine language before providing a translation. The developers at Google noticed this, but where happy for this to continue as it made the AI more effective. And now for reality. Is this considered acceptable when it’s supposed to enhance something rather than effectively exclude a human from the process ? The idea here is around interaction. There’s a lot of rumours circulating the internet as to Facebook’s decision to pull the plug. Was it out of fear, or did the scientists device to simply abandon the experiment because it didn’t produce the desired result ?

    The future of AI - and human existence ?

    A more disturbing point is that AI appears to have had control in the decision making process, and did not need a human to choose or approve any request. We’ve actually had basic AI for many years in the form of speech recognition when calling a customer service centre, or when seeking help on websites in the form of unattended bots that can answer basic questions quickly and effectively - and in the event that they cannot answer, they have the intelligence to route the question elsewhere. But what happens if you take AI to a new level where you give it control of something far more sinister like military capabilities ? Here’s a video outlining how a particular scenario concerning the usage of autonomous weapons could work if we continue down the path of ignorance. Whilst it seems like Hollywood, the potential is very real and should be taken seriously. In fact, this particular footage, whilst fiction, had been taken very seriously with names such as Elon Musk and Stephen Hawking providing strong support and backing to effectively create a ban on autonomous weapons and the use of AI in their deployment.

    Does this strike a chord with you ? Is this really how we are going to allow AI to evolve ? We’ve had unmanned drones for a while now, and whilst they are effective at providing a mechanism for surgical strike on a particular target, they are still controlled by humans that can override functionality, and ultimately decide when to execute. The real question here is just how far do we want to take AI in terms of autonomy and decision making ? Do we want AI to enrich our lives, or assume our identities thus allowing the human race to slip into oblivion ? If we allow this to happen, where does our purpose lie, and what function would humanity then provide that AI can’t ? People need to realise that as soon as we fully embrace AI and give it control over aspects of our lives, we will effectively end up working for it rather than it working for us. Is AI going to pay for your pension ? No, but it could certainly replace your existence.

    In addition, how long before that “intelligence” decides you are superfluous to requirement ? Sounds very “Hollywood” I’ll admit, but there really needs to be a clear boundary as to what the human race accepts as progress as opposed to elimination. Have I been watching too many Terminator films ? No. I live technology and fully embrace it, but replacing human way of life with machines is not the answer to the world’s problems - only the downfall. It’s already started with driverless cars, and will only get worse - if we allow it.


    @Madchatthew yeah, I’ve seen these posts all over LinkedIn
  • Madchatthew

    Yes, linux on a stick, otherwise know as a usb drive. I’m not talking about a live usb version of Linux. I am talking about actually install Linux on a usb drive. I was curious over the weekend, how cool would it be to install Linux on a usb drive and be able to use any computer to boot up and use my own same operating system each time with persistent data. Meaning that I can update, install and change whatever I want and be able to have the versatility of using whatever computer that may be around.

    I had read a couple of articles regarding this and decided to give it a try. I used Virtualbox to create a virtual machine. During the creation, I did not create the virtual hard drive portion. Under the USB section, I made sure to choose USB 3.0 and with the USB drive plugged in, I added it to that section. In the network section, I kept the network option to NAT and everything else I setup according to what I would normally do. Those don’t technically matter because when you boot up, the OS will use the system resources directly. One other thing that I had to select was to use EFI. With that option selected, you get the option to boot up with systemd and not grub. That did make a difference.

    I use Arch for this. One thing I found out is that you want to use the latest installer. I would say that no matter which Linux version you use, to use the latest installer to make sure you get the latest mirrors and such. I have tried this on one of the laptops at home and it worked beeeaauuttiifffuullyyyy! It was awesome. When I was done and shutdown the laptop, removed the USB drive and started the laptop up, it booted right into windblows again. So with this method, you have a portable OS that you can take anywhere and use on any computer.

    I did try using this on my work computer, but they have that locked down so you can’t get to the boot menu. I may try it again at some point just in case I picked the wrong option, but regardless, I have a couple more laptops at home that I can test it on in the mean time.

    This was a fun experiment and I have to say that the results were Linux running blazing fast, even over a USB port. My next option would be to run it over USB C and I imagine the OS would be even faster.


    @DownPW I haven’t tried either of those, I am sure they run fast as well. Linux is so versatile it is awesome!
  • JAC

    I currently run Kaspersky, my product runs out at the start of November, most of the reviews either say Bit defender or Norton as the best product.

    I’ve tried Kaspersky, Norton & AVG previously (yes some pretty bad ones 😉) so I guess this time I’m definitely looking for the best.

    Do you have a preference when it comes to antivirus software?


    read more →
    @phenomlab or Challenge Accepted haha
  • phenomlab

    After a lot of planning (and more coffee than I’d like to admit), I’m proud to share that Phenomlab Ltd is now officially incorporated and ready to launch.

    This marks the next step in a journey that began right here on Sudonix, where so many of the tools, ideas, and conversations that shaped this venture first took root.

    Phenomlab Ltd focuses on delivering enterprise-grade cybersecurity, compliance, and infrastructure consulting for startups and SMEs, combining deep technical expertise with real-world pragmatism.

    The guiding philosophy remains the same:

    Leadership when it matters

    That means clear, honest, and effective solutions that make technology work for people, and not against them.

    And just to be crystal clear

    Sudonix isn’t going anywhere.
    It remains a free, open community built for knowledge sharing, collaboration, and innovation. Phenomlab Ltd is an evolution of my professional work, and not a replacement for this platform, it’s members, or the problem it was created to help solve.

    Sudonix has always been about helping people solve problems, learn, and grow, and that’s not changing. If anything, Phenomlab Ltd gives me more opportunities to bring that same philosophy to businesses that need real expertise without the enterprise overhead.

    I want to say thank you to everyone here who’s supported, challenged, and inspired me along the way to do this. You’ve all played a part in making this happen.

    https://phenomlab.com


    @DownPW of course. As I mentioned in the first post, Sudonix isn’t going anywhere. It’ll continue to be free as it always has been.
  • Muhammad Abdan Farooqui

    I’m looking for recommendations on the best antivirus for Mac UK that offers complete protection for both home and office devices. I need something that’s easy to manage, runs smoothly without slowing down performance, and includes features like real-time protection, firewall, and phishing defense.

    What antivirus software are you currently using, and how well does it handle both personal and work-related security needs?


    @Muhammad-Abdan-Farooqui Welcome! i’m currently using (and recommend) Bitdefender. For my sins, I’m using Windows, but need this for teams and Office365 integration (otherwise I’d always choose Linux). Have you looked at the Bitdefender product for MAC? https://www.bitdefender.com/en-gb/consumer/antivirus-for-mac
  • phenomlab

    1000015238.jpg

    I learned PHP in 2006 and still use it extensively today. Let’s also not forget that thanks to wordpress, PHP powers over 70% of the Internet.

    W3Techs reports that 74.2% of all websites for which the server‑side language is known are powered by PHP (as of May 21, 2025).

    Another recent source (ZenRows) quotes 74.5%, describing it similarly as the share of websites using PHP for server‑side tasks.

    Some other data points like Citrusbug offer a slightly higher figure of 76.2%.

    A Kinsta article puts the number at 79.2% of all websites.

    Given the consistency across multiple reputable sources, PHP currently powers approximately 74% to 79% of websites with identifiable server-side languages.

    So not “dead” then…


    @Madchatthew I can’t see it happening either to be honest. It’s one of the most mature programming languages there is, and given the figures, it’s clear to see is not going anywhere anytime soon.
  • phenomlab

    From VPN to Spyware: The FreeVPN.One Chronicles

    The Turning Point

    FreeVPN.One began its life as a popular Chrome VPN extension. With over 100,000 installs and even a verified badge on the Chrome Web Store, it seemed legitimate. Privacy-conscious users trusted it for secure browsing—until now. Recent research has revealed a disturbing transformation: what was once a tool cloaked in privacy is now an invasive surveillance tool.

    The Spyware Mechanism

    A forensic investigation by Koi Security uncovered a chilling reality: the extension automatically takes full-page screenshots of every website a user visits. This includes sensitive content like personal messages, banking dashboards, and private photos. Here’s how it works:

    • Utilizing Chrome’s chrome.tabs.captureVisibleTab() API, the extension silently snaps screenshots behind the scenes.
    • Screenshots are bundled with metadata—like URLs, tab IDs, and unique user identifiers—and exfiltrated to a remote server aitd.one/brange.php without your consent or awareness.

    Timeline of the Betrayal

    Koi Security outlined a telling progression:

    Date Version Behavior
    April 2025 v3.0.3 Requests new permissions; no spying yet
    June 2025 v3.1.1 “AI Threat Detection” branding; broader web access
    17 July 2025 v3.1.3 Spyware becomes active: screenshots, location tracking, device fingerprinting begin
    25 July 2025 v3.1.4 Exfiltration encrypted (uses AES-256‑GCM with RSA key wrapping) to evade detection tools

    Developer’s Excuses—and the Harsh Reality

    The extension’s developer has tried to play it off as a “security scan”, claiming screenshots are only taken as part of this process. According to them, data isn’t stored but merely analyzed by AI. However:

    • The screenshots encompass all sites—even innocuous ones like Google Sheets and banking portals.
    • The UI’s “AI Threat Detection” button is essentially a decoy, as screenshotting begins automatically, long before any user interaction.
    • Investigators found no legitimate company information tied to the publisher: the email leads to a bare Wix page with no corporate identity or transparency.
    • Communication from the developer stopped entirely after initial outreach.

    What Users Need to Know Now

    1. Act Immediately
      If you’ve used this extension:

      • Remove it from your browser immediately.
      • Change passwords for any sites accessed while the extension was active.
    2. Avoid Free VPN Extensions That Lack Transparency
      This case is, unfortunately, not unique. Many free VPNs use your data as a revenue source, selling logs or loading tracking scripts—even when they claim to protect your privacy.

    3. Prioritize Audited and Trusted Services
      Use VPNs with:

      • Strong privacy policies (e.g., audited ‘no‑logs’ claims).
      • Clear, reputable ownership and transparency.
      • Regular security audits.
    4. Be Cautious with Browser Extensions
      Even non‑VPN extensions can become attack vectors. Spy‑ware hidden in innocent‑looking add-ons is all too real.

    Final Thoughts

    FreeVPN.One turned from a convenient privacy tool into a dangerous spy tool in just a few months. This serves as a stark reminder: in the tech world, trust is hard-earned—but easily broken.

    • Free doesn’t always mean benign. When you don’t pay, sometimes you are the product.
    • Regularly audit your extensions. If something requests broad permissions or comes out of nowhere, it might not be worth the risk.
    • Invest in transparency. Opt for tools backed by reputable companies, audited code, and clear policies.

    Sources

    https://spyboy.blog/2025/02/25/the-hidden-dangers-of-free-vpns-why-free-often-comes-at-a-high-cost


    @DownPW said in From VPN to Spyware: The FreeVPN.One Chronicles: With rare exceptions, if it’s free, either you’re the product or it’s no good Yeah, you got that right!
  • Vijay-Kumavat

    48890011-f0d9-43e6-bc8c-5c6a1634cf40-image.png

    f532cfd7-92b6-47c4-babc-f2d58e27bdf9-image.png

    Hi @phenomlab
    Can i add the same Header & footer in nodebb (V: 3.1.3 )with harmony theme ?


    @Vijay-Kumavat Yes, both are well documented here if you search the forum.
  • phenomlab

    Thought I’d start a thread to include amusing images relating to technology. Here’s one to get us started

    IMG-20211203-WA0000.jpg


    [image: 1608635114226.jpg]
  • phenomlab

    Found something interesting with Adobe. For a while, I’ve been paying an annual fee to use Illustrator and Photoshop - not cheap either. Seeing as I no longer needed it, I thought I’d cancel.

    Now here’s the caveat. You take an annual deal to keep the monthly cost down, but when you cancel, you have to pay out the remainder of the contract - very cunning, Adobe 😞

    There is, however, a workaround.

    1. Downgrade the plan you have to something lesser. This then cancels the existing contract (for free)
    2. The new “contract” is in fact a trial, so you just cancel and walk away for free.

    100% works as I’ve literally just done it, and it may help someone else.


    @phenomlab LOL yep that is right, because there was a huge stack of them, I remember and it seemed like it took forever to go through the whole stack. Then you had to install drivers for each device. Oh the good ole days haha
  • JAC

    @JAC those speeds are indeed possible over light as a transport medium (if you consider the speed) but I can’t comprehend the distance quoted. If you happen to encounter a solid obstacle, the beam is either absorbed, or deflected meaning the data never arrives.
  • Madchatthew

    Hello, I was wondering what everyone uses for cloud storage? My ideal setup would be to build myself a new computer and use the current (old) one to setup proxmox and have a nextcloud storage setup and have my own cloud, but finances aren’t allowing me to do that currently. Maybe some day. So I am stuck with the likes of OneDrive, Google Drive, Dropbox and those types of solutions.

    What do you use for your solution. Is it pricey? Is there enough storage? You know the usual questions around that topic.

    Thank you!


    @phenomlab I will have to test this out in my virtual environment. I have an Arch KDE Plasma install in virtualbox that I am testing a bunch of things out before I actually wipe the hard drive and install linux. I am currently in the process of copying my Arch test web server over to virtualbox on linux to make sure that it works. This is the virtual server that I test updates on before updating the production server. I can’t remember the error I was getting but I think it had to do with the network device. That was on the virtualbox side. So the cloud storage will be the next thing that I test.
  • phenomlab

    OKTA has released a free password manager which given their status in the security community, is well worth a look

    https://www.okta.com/products/okta-personal/

    If you aren’t using a password manager, now is the time to do so!


    @Madchatthew yes, works well for us.