Custom css

Install AWS VPN Client for openSUSE Tumbleweed

Code:


curl https://d20adtppz83p9s.cloudfront.net/GTK/latest/awsvpnclient_amd64.deb -o awsvpnclient_amd64.deb
sudo zypper in alien
alien --to-rpm awsvpnclient_amd64.deb
sudo alien --to-rpm awsvpnclient_amd64.deb
curl https://ftp.lysator.liu.se/pub/opensuse/distribution/leap/15.4/repo/oss/x86_64/liblttng-ust0-2.12.0-1.30.x86_64.rpm -o liblttng-ust0-2.12.0-1.30.x86_64.rpm
sudo zypper in ./liblttng-ust0-2.12.0-1.30.x86_64.rpm
sudo zypper in ./liburcu6-0.12.1-1.30.x86_64.rpm
sudo zypper in ./awsvpnclient-3.4.0-2.x86_64.rpm
curl https://gist.githubusercontent.com/dbouras/d390bc3511280aaf717fbb976e20447e/raw/a5208723c531dc65f561b074224b2ccdba3585a1/configure-dns -o configure-dns
sudo cp ./configure-dns /opt/awsapiclient/Service/Resources/openvpn/
sudo nano /etc/systemd/system/awsvpnclient.service

https://gist.github.com/dbouras/d390bc3511280aaf717fbb976e20447e#file-configure-dns

add

Code:


Environment="DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true"

to the [Service] section of the file: /etc/systemd/system/awsvpnclient.service

Source: https://gist.github.com/miguelgmalpha/5c9e78d16312d156b0ec1d1c1bb09c1c?permalink_comment_id=4386699#gistcomment-4386699

Code:


sudo systemctl start awsvpnclient
sudo systemctl enable awsvpnclient
cd /opt/awsvpnclient/
export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true
export GTK_CSD=0
./AWS\ VPN\ Client
$

Raspberry Pi OS: How to install packages from one system on another system

 To reinstall packages from one instance of Raspberry Pi OS to another (for instance because you are upgrading):

Code:

dpkg --get-selections > pkgs.list
Copy file to new installation
dpkg --set-selections < pkgs.list
apt-get dselect-upgrade
Source: https://forums.raspberrypi.com/viewtopic.php?p=2110754&sid=fa176deb33007ae82766162b8cf35379#p2110754

Install Selfoss RSS Reader on Raspbian GNU Linux 10 (buster) with lighttpd and mariadb

This guide will install the Selfoss RSS reader on a Raspberry Pi

Install mariadb, php and lighttpd:

Code:


sudo apt install php-mysql php-gd php-cgi php-http lighttpd mariadb-server mariadb-client

Secure the mariadb installation by running:

Code:


sudo mysql_secure_installation

Login to the mariadb console:

Code:


sudo mysql -u root -p

In the console create the database and grand privileges to the database user:

Code:


create database selfoss;
grant all on selfoss.* to selfoss@localhost identified by 'SECURE_PASSWORD';
\q

Replace 'SECURE_PASSWORD' with a secure password.

Enable fastcgi for php in lighttpd:

Code:


sudo /usr/sbin/lighttpd-enable-mod fastcgi fastcgi-php

Change the max_execution_time to 60 in /etc/php/7.3/cgi/php.ini by running this command:

Code:


sudo sed -i 's/max_execution_time = .*/max_execution_time = '60'/' /etc/php/7.3/cgi/php.ini

Download and extract selfoss:

Code:


wget https://github.com/SSilence/selfoss/releases/download/2.18/selfoss-2.18.zip --directory-prefix=/tmp
sudo mkdir /var/www/html/selfoss
sudo unzip /tmp/selfoss-2.18.zip -d /var/www/html/selfoss/
sudo chown -R www-data:www-data /var/www/html/selfoss/
sudo chmod g+w /var/www/html/selfoss/data/cache /var/www/html/selfoss/data/favicons /var/www/html/selfoss/data/logs /var/www/html/selfoss/data/thumbnails /var/www/html/selfoss/data/sqlite /var/www/html/selfoss/public

Take a copy of the default configuration file:

Code:


sudo cp /var/www/html/selfoss/default.ini /var/www/html/selfoss/config.ini

Modify the config.ini to have this database configuration:

Code:


db_type=mysql
db_host=localhost
db_database=selfoss
db_username=selfoss
db_password='SECURE_PASSWORD'
db_port=3306
db_prefix=

Replace 'SECURE_PASSWORD' with the secure password you created when creating the database in the database console.

Edit /var/www/html/selfoss/.htaccess uncomment "RewriteBase /selfoss"

Edit /etc/lighttpd/lighttpd.conf: in server.modules uncomment "mod_rewrite" Also add these rewrite rules:

Code:


url.rewrite-once += (
"^/selfoss/favicon.ico$" => "/selfoss/public/favicon.ico",
 "^/selfoss/favicons/(.*)$" => "/selfoss/data/favicons/$1",
 "^/selfoss/thumbnails/(.*)$" => "/selfoss/data/thumbnails/$1",
 "^/selfoss/([^\?]*.(js|ico|gif|jpg|png|css|asc|txt|eot|woff|ttf|svg))(\?.*)?$" => "/selfoss/public/$1",
 "^/selfoss/index.php(.*)$" => "$0",
 "^/selfoss/([^\?]*)(\?(.*))?" => "/selfoss/index.php?$3",
 "^/selfoss/public/" => "$0",
 "^/selfoss/(.*)" => "/selfoss/index.php$1"
)

Setup a cron job to automatically update feeds by running:

Code:


sudo crontab -e

Add this line to the crontab and save and quit:

Code:


*/15 * * * * curl --silent --show-error -m 3300 -k https://127.0.0.1/selfoss/update >>/var/log/selfoss_update.log > /dev/null

Restart lighttpd:

Code:


sudo service lighttpd restart

Open selfoss in your web browser by going to http://{host-ip-address}/selfoss The first run may give a timeout error whilst it sets up the environment. From then on it should work fine.

Cisco UCS XML API events

Working with the emulator for the Cisco UCS Manager there are certain events that can not be triggered because changes to inventory requires a restart.

If a blade is remove from a chassis an event of the following format will occur.

    <methodVessel cookie="">
        <inStimuli>
            ...
            <configMoChangeEvent cookie="" inEid="276132176">
                <inConfig>
                    <computeBlade dn="sys/chassis-10/blade-6" fltAggr="65536"
                        operQualifier="removed" operState="removed" presence="missing"
                        status="modified" />
                </inConfig>
            </configMoChangeEvent>
            ...
        </inStimuli>
    </methodVessel>

The operQualifier and operState attributes indicates what occurred while the presence attribute confirms that it is now missing.

If a blade is added to the chassis the first event that tells that will be of this format:

    <methodVessel cookie="">
        <inStimuli>
            ...
            <configMoChangeEvent cookie="" inEid="276132831">
                <inConfig>
                    <computeBlade availability="unavailable" checkPoint="shallow-checkpoint"
                        discovery="in-progress" dn="sys/chassis-10/blade-6" fltAggr="0"
                        fsmDescr="blade discovery 10/6(FSM:sam:dme:ComputeBladeDiscover)"
                        fsmFlags="sam:dme:ComputeBladeDiscover:check-point,sam:dme:ComputePhysicalFwUpgrade:config-board-ctrl-fw"
                        fsmPrev="DiscoverBmcPresence" fsmProgr="1"
                        fsmStageDescr="checking CIMC of server 10/6(FSM-STAGE:sam:dme:ComputeBladeDiscover:BmcPresence)"
                        fsmStamp="2014-02-10T17:06:12.513" fsmStatus="DiscoverBmcPresence"
                        fsmTry="1" operQualifier="" operState="discovery" presence="equipped"
                        status="modified" />
                </inConfig>
            </configMoChangeEvent>
            ...
        </inStimuli>
    </methodVessel>

The presence attribute confirms that it is now equipped. From there on it is then possible to query for more information.

Angular based Zendesk App

Asuming you have zat and npm installed on your system a new app can be created by running these commands:

zat new 
 
Enter your iFrame URI or leave it blank to use a default local template page:
 (assets/iframe.html) index.html 
 
sudo npm install -g @angular/cli 
 
ng new <app-name>

Create build and deploy scripts in the package.json:
{
"build": "ng build --deleteOutputPath --prod --base-href . --aot --source-map",
"deploy": "npm run build && cp manifest.json dist/ && cp -r translations dist/ && cp node_modules/@zendeskgarden/svg-icons/dist/index.svg dist/assets && mv dist/assets/assets/* dist/assets && cp dev.zat dist/.zat; cd dist; zat update; cd ..",
}

Because of the file size limits from Zendesk adding npm modules is not a viable solution since that would include the modules directly in the Zendesk app. Instead it is required to include the 3rd party components you depend on through script tags. Example of including access to required libraries in the index.html file:
<script src="https://assets.zendesk.com/apps/sdk/2.0/zaf_sdk.js" type="text/javascript"></script>
<script crossorigin="anonymous" integrity="sha256-27lOq325r4MQT9M9GG3pS3ts5iRaSqw+h9fHpW16NLw=" src="https://cdn.jsdelivr.net/npm/@zendeskgarden/css-variables@5.2.0/dist/index.js"></script>
<script crossorigin="anonymous" integrity="sha256-59IZ5dbLyByZgSsRE3Z0TjDuX7e1AiqW5bZ8Bg50dsU=" src="https://cdn.jsdelivr.net/npm/moment@2.22.2/moment.js"></script>
<link href="https://cdn.jsdelivr.net/combine/npm/@zendeskgarden/css-buttons@6,npm/@zendeskgarden/css-bedrock@7,npm/@zendeskgarden/css-forms@6,npm/@zendeskgarden/css-utilities@3,npm/@zendeskgarden/css-menus@8,npm/@zendeskgarden/css-tables@3,npm/@zendeskgarden/css-grid@0.1.15,npm/@zendeskgarden/css-callouts@3" rel="stylesheet" type="text/css"></link>

Remove the vertical scrollbar with this css:
html { overflow-y: hidden; }

Podcasts in UE Smart Radio

I upgraded my Squeezebox radio to UE Smart Radio.
By doing that I thought I lost the ability to access podcasts from the Squeezebox.
Browsing the logitech forums it turned out that with the TuneIn radio application it was still possible to play podcasts on the Squeezebox radio.

Here is the procedure:

1. Create a user on tunein.com
2. Go to "Favorites" on tunein.com and add a "Custom URL"
3. Add the URL to the podcast you want to access from your Squeezebox
4. Go to uesmartradio.com and log in
5. Add the TuneIn Radio service to your Squeezebox Radio with the user created in step 1.
6. Now go to the TuneIn Radio application on the Squeezebox and go to Radio > My Presets > Shows

Kubuntu 16.04 on Lenovo P50

I have been running openSUSE for years.

When I got the Lenovo P50 laptop with a HiDPI screen I was not able to get the Nvidia proprietary driver to run with the resolution I wanted.

It turns out that there is more to HiDPI than just the driver. And the fact that I have an external monitor that is not HiDPI probably makes it even harder.

Nevertheless I have colleagues who were able to get the same hardware to work with the proprietary Nvidia driver. They were running Linux Mint Cinnamon Edition. I'm not sure which version actually.

I ended up trying out Kubuntu to figure out if that would help. It did not. I got the exact same issue as I had with openSUSE.
But not only that. I had issues with things that worked in openSUSE Leap 42.2. Sound wouldn't always play through headphones. The only workaround I have found is to restart the OS.
My music streaming service that is based on the browser sometimes don't play any songs when I click play. The browser I use is Google Chrome but the web application is not as stable as in the same browser in openSUSE.
Adding the smb based network printer at work is not possible through the printer configuration interface. YaST on openSUSE was able to do this.

I am considering multiple things to do from here:
  1. Go back to openSUSE Leap (maybe wait until 42.3 at the end of July)
  2. Try Linux Mints KDE version.
On top of that it would probably also help if I got a HiDPI monitor to connect to my laptop.
The Wayland display server protocol should also be much better at handling the combination of HiDPI and non-HiDPI monitors. It does not seem like Wayland is ready for primetime yet though. Fedora has Wayland as default display server. So that could be a possibility.

Install AWS VPN Client for openSUSE Tumbleweed

Code: curl https://d20adtppz83p9s.cloudfront.net/GTK/latest/awsvpnclient_amd64.deb -o awsvpnclient_amd64.deb sudo zypper in alien alien --t...