C++ rant

Please consider the following standard C++ program.

#include <iostream>
using namespace std;
main(){
  cout << "Hello, World!";
  return 0;
}

What is wrong with this?

  1.  include statement: we are including a header or a piece of source code, why isn’t it called iostream.h?
  2. using namespace std: if standard, it could be omitted and considered standard because it has not been mentioned.
  3. main function: why there are no parameters in it
  4. return statement: do we assume the function has been defined as int….

Ideal version, in my opinion…. but opinions are subjective

#include <iostream.h>

int main(int argc, char *argv[], char *env[]){
  cout << "Hello, World!";
  return 0;
}

 

Observium installation on Debian 9 – adding devices fails

Installing fresh Observium (18.9.9420) (community version) on Debian 9 does not end up with a working installation.  (See Observium documentation)

Only one device is added, that cannot be viewed afterwards.

Possible solution: modify the database structure after installation and before adding your devices.

Start checking if the devices_id field has an auto-increment value set and is the primary key.

One can do so by issuing following commands:

mysql>show columns from devices from observium;

or alternatively:

mysql>show create table devices;

If the auto-increment value is missing, please add it:

mysql> use observium;

mysql> alter table devices change column device_id device_id int(11) not null auto_increment;

Easy fix, but takes some time to find out.

Some background information from the logs:

##### Software versions #####

o OS Linux 4.9.0-8-amd64 [amd64] (Debian 9.6)
o Apache 2.4.25
o PHP 7.0.33-0+deb9u1 (OPcache: DISABLED)
o Python 2.7.13
o MySQL 10.1.37-MariaDB-0+deb9u1 (extension: mysqli 5.0.12-dev)
o SNMP NET-SNMP 5.7.3
o RRDtool 1.6.0
o Fping 3.15 (IPv4 and IPv6)

##### Memory Limit #####

o PHP Unlimited

##### MySQL mode #####

o MySQL NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

##### Charset info #####

o PHP UTF-8
o MySQL utf8

##### Timezones info #####

o Date Wednesday, 15-May-19 13:35:30 CAT
o PHP +02:00
o MySQL +02:00

After making the change, please check the auto_increment value is there.

show columns from devices from observium;

Hotspot detection

How to set-up hotspot.

Firefox URL: http://detectportal.firefox.com/success.txt

Google Chrome URL: connectivitycheck.gstatic.com/generate_204

Edge URL:

Internet Explorer URL:

Opera URL:

Chomium URL: chrome.google.com

Dolphin URL:

Observium disk full

If your graphs are showing with ‘graph error’ and your disk is almost full, please follow the instructions below.

Add extra disk to your VM or to your machine and type following commands with root privileges.

# display disk name
fdisk -l

# create partition
fdisk /dev/sdb

# type n enter enter enter enter w enter
# means new partition, default values accept, and write out changes

# extend physical volume group
vgs
vgextend observium-vg /dev/sdb1

# extend size in volume group and resize file system
lvextend -L +19G /dev/mapper/observium--vg-root
resize2fs /dev/mapper/observium--vg-root

# check everything is ok
df -k

# now regenerate graphs that were missing
cd /opt/observium
php discovery.php -h all
php poller.php -h all

Above assumes you are adding a second disk of 20 GB. sdb and +19G might need to change if your configuration is different.

Mint upgrading from 18.3 to 19 – Netbeans broke

Seems netbeans cannot work with OpenJDK 10/11 and stops silently shortly after start.

Solution:

uninstall 8.1 from software list and/or remove manual installation from /usr/local

Install OpenJDK 1.8

Download latest 8.2 from netbeans.org.

Install Netbeans 8.2 in current user (aka path /home/youruser). Also install Glassfish/Tomcat in current user. For some reason, installation in /usr/local does fail.

During installation, point your java jdk to /usr/lib/jvm/openjdk-1.8.

Please note that editing the /etc/netbeans.conf file as indicated by some sites is not resolving the issue.