Saturday, March 16, 2019

Linux Remote Desktop


sudo apt-get update
sudo apt-get install xrdp 
 
#desktop
sudo apt-get install mate-core mate-desktop-environment mate-notification-daemon
 
#setting session
sudo sed -i.bak '/fi/a #xrdp multiple users configuration \n mate-session \n' /etc/xrdp/startwm.sh
 
#firewall

sudo ufw allow 3389/tcp
 
#Use remmina desktop to connect
 


Extra
 
service --status-all
printf 'Desktop: %s\nSession: %s\n' "$XDG_CURRENT_DESKTOP" "$GDMSESSION"

References:
[1] Setting xrdp https://medium.com/@vivekteega/how-to-setup-an-xrdp-server-on-ubuntu-18-04-89f7e205bd4e
[2] https://websiteforstudents.com/connect-to-ubuntu-16-04-17-10-18-04-desktop-via-remote-desktop-connection-rdp-with-xrdp/
[3] Print desktop name and session
https://askubuntu.com/questions/72549/how-to-determine-which-window-manager-is-running


Friday, March 15, 2019

SSH Skip port forwarding


Instant terminal sharing
https://tmate.io/


Share your UNIX terminal in seconds!
https://www.teleconsole.com/

Share local machine port to public access
https://serveo.net/
https://github.com/milio48/serveo
$wget https://raw.githubusercontent.com/milio48/serveo/master/serveo.sh 

$./serveo.sh tcp 5432 0

vs ngrok
Serveo is an excellent alternative to ngrok. Serveo was inspired by ngrok and attempts to serve many of the same purposes. The primary advantage of Serveo over ngrok is the use of your existing SSH client, so there's no client application to install.

Other slight advantages include preservation of URLs across reconnect for free (ngrok allows this only for paid accounts) and in-terminal request inspection and replay (ngrok uses a web interface).

vs OpenSSH

Using Serveo instead of OpenSSH frees you from having to configure and maintain a server. It also handles HTTPS and subdomain generation, two features that complicate a typical SSH port-forwarding setup.

Apache Guacamole is a clientless remote desktop gateway


http://guacamole.apache.org/


Manual mode (A like to connect to B)

PCA ----+----  PCB
            |
          PCX

Server Side (PCX Need root permission)

$sudo vi /etc/ssh/sshd_config

AllowTcpForwarding yes
GatewayPorts yes


$sudo firewall-cmd --add-port=7004/udp [--permanent]
$sudo firewall-cmd --add-port=7004/tcp [--permanent]

Target PCB

$ssh -f -N -R 7004:127.0.0.1:22 -l user_PCX -p port PCX(ip/domain name)
This means open port 7004 on PCX forwarding to port 22, PCX will start to listen on port 7004.

Source PCA
$ssh PCX(ip/domain name) -l user_PCB -p 7004

Enjoy!



References:
[1] https://rootsaid.com/ssh-without-port-forwarding/
[2] https://linuxhint.com/ssh-port-forwarding-linux/
[3] https://dev.to/samuyi/the-how-to-of-ssh-port-forwarding-1f4e



Tuesday, March 12, 2019

Review documents


Resources:

[1] https://www.visaoerevisao.com
[2] https://www.editage.com.br
[3] http://www.nativeenglish.com.br/ (word)

Monday, March 11, 2019

Ubuntu route (s)



ip route list

route

route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.169.5.1



sudo route del -net 192.168.76.0/24
and
sudo route del -net 192.168.76.0 netmask 255.255.255.0


References:
[1] https://www.cyberciti.biz/faq/linux-route-add/

Sunday, March 10, 2019

mySql Optimize date queries and inserts



High Level of use



DROP INDEX VENTAS_fecven_idx ON VENTAS

select * from VENTAS where date(fecven)='2019-03-09' #~2.81

select * from VENTAS where fecven >='2019-03-09 00:00:00' and fecven<'2019-03-10 00:00:00'  #~2.9


select * from VENTAS where fecven Between '2019-03-09 00:00:00' and '2019-03-10 00:00:00'  #~3.6


CREATE INDEX VENTAS_fecven_idx ON VENTAS (fecven)


select * from VENTAS where date(fecven)='2019-03-09' #~2.794

select * from VENTAS where fecven >='2019-03-09 00:00:00' and fecven<'2019-03-10 00:00:00'  #~0.265

select * from VENTAS where fecven Between '2019-03-09 00:00:00' and '2019-03-10 00:00:00'  #~0.261

CREATE INDEX MOVPRO_fecmov_idx ON MOVPRO (fecmov)
#change date(fecmov) between f1 and f2
#to         fecmov between f1 and f2  #implicit add 00:00:00

DROP INDEX MOVPRO_fecmov_idx ON MOVPRO


Setting mysql

SET GLOBAL bulk_insert_buffer_size = 1024 * 1024 * 128;
[mysqld]
bulk_insert_buffer_size=128M

References
[1] Insert https://dev.mysql.com/doc/refman/8.0/en/insert-optimization.html
[2] Amazon Best Practices https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_BestPractices.html

Saturday, March 09, 2019

Linux Discovery ports

Mac
sudo lsof -iTCP -sTCP:LISTEN


Linux
List used ports 
$netstat -tulpn | grep LISTEN

tcp        0      0 127.0.0.1:5939          0.0.0.0:*               LISTEN      -                  
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      -                  
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -                  
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -                  
tcp6       0      0 :::80                   :::*                    LISTEN      -                  
tcp6       0      0 :::22                   :::*                    LISTEN      -                  
tcp6       0      0 ::1:631                 :::*                    LISTEN      -

List process that using port
You like to knows who is using port 80, then

$sudo lsof -i :80
apache2   965     root    4u  IPv6  26650      0t0  TCP *:http (LISTEN)
apache2 13794 www-data    4u  IPv6  26650      0t0  TCP *:http (LISTEN)
apache2 13795 www-data    4u  IPv6  26650      0t0  TCP *:http (LISTEN)
apache2 13796 www-data    4u  IPv6  26650      0t0  TCP *:http (LISTEN)
apache2 13797 www-data    4u  IPv6  26650      0t0  TCP *:http (LISTEN)
apache2 13798 www-data    4u  IPv6  26650      0t0  TCP *:http (LISTEN)


Second option

$sudo netstat -peanut | grep ":80"
tcp6       0      0 :::80                   :::*                    LISTEN      0          26650      965/apache2

Setting apache
$vi /etc/apache2/apache2.conf

#       /etc/apache2/
#       |-- apache2.conf
#       |       `--  ports.conf
#       |-- mods-enabled
#       |       |-- *.load
#       |       `-- *.conf
#       |-- conf-enabled
#       |       `-- *.conf
#       `-- sites-enabled
#               `-- *.conf


Thursday, March 07, 2019

PostgreSQL 8.4 en CentOS

1) Deshabilitar repositorios

#vi /etc/yum.repos.d/CentOS-Base.repo

agregar la siguiente linea a [base] y [updates]
exclude=postgresql*

2) AƱadir los repositorios de PostgreSQL 8.4
Descargar el rpm apropiado desde http://yum.pgsqlrpms.org/reporpms/repoview/pgdg-centos.html

#wget http://yum.pgsqlrpms.org/reporpms/8.4/pgdg-centos-8.4-2.noarch.rpm
#rpm -ivh pgdg-centos-8.4-2.noarch.rpm (este archivos es el que descargamos)

3) Instalar PostgreSQL

3.1 verifique version
#yum list postgresql*

#yum install postgresql postgresql-server

3.1 Error probable de dependencia a apr-util
#yum install apr-util
#yum install postgresql postgresql-server

4) Arrancar el servidor y habilitar conexiones remotas

#service postgresql initdb
#service postgresql start

5) Configurar Accesos en /var/lib/pgsql/data/
5.1 pg_hba.conf
host all all 0.0.0.0/0 trust   #no need password , use md5
5.2 postgresql.conf
listen_addresses='*'
port=5432
max_connections=100
superuser_reserved_connections=5

6) Reinicia servicio
#/etc/init.d/postgresql restart


Referencias
[0] Postgres 9.1 http://wiki.postgresql.org/wiki/YUM_Installation
[1] Auto Start/Stop http://www.michaelhinds.com/tech/linux/install-postgres.html
[2] http://www.ixavi.com/2010/01/instalar-postgresql-8-3-en-centos-desde-yum/

Linux root password reset


Mode 1:Recover mode

In recover mode try to remount and after that change password

mount -o remount,rw /
 
Mode 2: Using live

mkdir /mnt/recover
mount /dev/sda2 /mnt/recover
 
chroot /mnt/recover
 
passwd  #or
passwd user 
exit
umount /mnt/recover

Other way : Using files(for root or any user)
 
 /etc/passwd
 /etc/shadow
  
root:x:0:0:root:/root:/bin/bash
to
root::0:0:root:/root:/bin/bash 
 
References:
[1] http://www.microhowto.info/howto/reset_a_forgotten_root_password_using_a_live_distribution.html
[2] https://www.computersecuritystudent.com/UNIX/UBUNTU/1204/lesson5/index.html
 

Sunday, March 03, 2019

Raspberry Resources


DOSBox and rpi-x86 will play DOS games and run Win31/Win95.

QEMU can be used to emulate an x86 PC but performance will be terrible.

Wine will not work because it does not translate binary data, only Windows API calls, the binaries are still incompatible.

This is a difficult problem to solve which is probably why ExaGear charge money for it.

Resources:
[1] Chart comparison all famous Arm processors https://www.loverpi.com/blogs/news/85588545-raspberry-pi-banana-pi-orange-pi-odroid-differences-and-chart
[2] Odroid vs other https://tudosobreraspberry.info/2017/08/comparacao-raspberry-pi-orange-pi-banana-pi-e-odroid/

[3] Raspberry Pi3 vs UDOO x86 https://www.youtube.com/watch?v=dJkHxDjFuNA
[4] Combine qemu and wine for run Windows applications https://github.com/AlbrechtL/RPi-QEMU-x86-wine
[5] https://www.kickstarter.com/projects/udoo/udoo-x86-the-most-powerful-maker-board-ever/?src=soc
[6] https://www.raspberrypi.org/forums/viewtopic.php?t=189198

[7] https://elchapuzasinformatico.com/2016/04/udoo-x86-10-veces-mas-potente-raspberry-pi-3-79e/
[8] https://www.redeszone.net/2016/05/20/udoo-x86-mini-ordenador-10-veces-mas-potente-raspberry-pi-3/
[9] https://www.anandtech.com/show/11978/macom-sells-off-appliedmicros-xgene-cpu-business
[1] Experimental comparison Raspberry and Orange https://raspberryparatorpes.net/rivales/raspberry-pi-vs-orange-pi-2017/

Ubuntu users


#adduser username
 
#usermod -aG sudo username
 
$su - username
 
$whoami
$sudo whoami   
 
Examples to use
 
$fdisk -l
$sudo fdisk -l
$sudo ls -l /root

Saturday, March 02, 2019

mySql Optimization parameters or commands



Query


SHOW GLOBAL STATUS
SHOW VARIABLES LIKE '%size%';
SHOW GLOBAL VARIABLES LIKE '%size%';

Settings

SET GLOBAL join_buffer_size = 1024 * 1024 * 128 #128M
 
or
 
[mysqld]
join_buffer_size = 128M  #default ~256K
 
 
 
 
References:
[0] Compute memory http://mysqlcalculator.com/ 
[1] join_buffer_size https://dba.stackexchange.com/questions/74693/how-to-break-table-into-two-without-losing-performance 
[2] https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html
[3] Example tunning https://dba.stackexchange.com/questions/127862/tuning-mysql-variables-to-accommodate-high-load
[4] Query variables https://dev.mysql.com/doc/refman/8.0/en/show-variables.html

Sunat Servicios Web






Resources:
[1] Code perl http://cpan.dei.uc.pt/authors/id/G/GP/GPAREDES/SUNAT/SEE.pm

[2] http://orientacion.sunat.gob.pe/index.php/empresas-menu/comprobantes-de-pago-empresas/comprobantes-de-pago-electronicos-empresas/see-desde-los-sistemas-del-contribuyente/guias-manuales-y-servicios-web

JavaScript Frameworks Lecture



References:

[1] https://reactjs.org/
[2] https://www.w3schools.com/whatis/whatis_react.asp
[3] Repository https://github.com/facebook/react

mySql Common Commands




CREATE TABLE foo LIKE bar;
 
 
 
CREATE TABLE IF NOT EXISTS offices_bk
SELECT * FROM
    offices;
==
CREATE TABLE IF NOT EXISTS new_table LIKE existing_table;
INSERT new_table
SELECT * FROM existing_table;
ALTER TABLE <tablename> CHANGE COLUMN <colname> <colname> VARCHAR(65536);
 
 
 
ALTER TABLE emp MODIFY COLUMN name VARCHAR(100);

Or use CHANGE, but that means you have to give the column name twice (because CHANGE allows you to change the name of the column too).
ALTER TABLE emp CHANGE COLUMN name name VARCHAR(100);

 
 

Friday, March 01, 2019

Linux Discover Teamviewer id



$sudo grep -n id /home/user/.local/share/teamviewer14/logfiles/TeamViewer14_Logfile.log

$whereis teamviewer
$/usr/bin/teamviewer help
$/usr/bin/teamviewer info #for get id too

$/usr/bin/teamviewer daemon stop
$/usr/bin/teamviewer setup
$/usr/bin/teamviewer daemon status
$/usr/bin/teamviewer daemon start

References:
[1] http://www.tonisoto.com/2013/07/launching-teamviewer-remotely-throught-ssh/

Thursday, February 28, 2019

mySql change port problem

Can't start server: Bind on TCP/IP port: Permission denied
Do you already have another mysqld server running on port: 13306 ?


Common solution is change my.cnf adding port=newport, but in what section?

Discover who is the principal executable
$locate mysqld.service

/etc/systemd/system/multi-user.target.wants/mysqld.service
/usr/lib/systemd/system/mysqld.service

$vi /usr/lib/systemd/system/mysqld.service #for watch settings
In my case, was this:
ExecStart=/usr/bin/mysqld_safe --basedir=/usr

then i know what section i need to change

$vi /etc/my.cnf  # add new port in section [mysqld_safe]

Aditional commands during process:

tail -30 /var/log/mysql/error.log

sudo lsof -i TCP:3306
netstat -lp | grep 3306
 
$systemctl status iptables.service
$service iptables status
 
 

Wednesday, February 27, 2019

Ubuntu mySQL Backup/Restore

1)Create


2) Restore


$mysql -u root -p mysql
> create database mydb; mysql
> use mydb; mysql
> source db_backup.dump;


3) Another way, you  need to run:

$mysql -p -u[user] [database] < db_backup.dump


If the dump contains multiple databases you should omit the database name:

$mysql -p -u[user] < db_backup.dump


4) Restore specific database

$mysql -u onepoint -p --one-database maxx2016 < back_20190226.sql


Monday, February 25, 2019

Ubuntu Apache Django settings



References:
[1] main https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-apache-and-mod_wsgi-on-ubuntu-16-04

[2] https://coderwall.com/p/ooerda/python-django-apache-ubuntu
[3] https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-apache-and-mod_wsgi-on-debian-8

Fixing geopandas and osmnx problem: Could not find libspatialindex_c library file

For secondary problem trying to resolve (trying to find the library i got):
Traceback (most recent call last):
  File "", line 1, in
NameError: name 'find_library' is not defined

The solution is:

import ctypes
from ctypes.util import find_library
 
When you install environment and install geopandas, rtree and osmnx
 
pip install git+git://github.com/geopandas/geopandas.git
pip install rtree
pip install osmnx
 
No error, everythong aparently is ok, and you try to test

$python

>>> import rtree
Traceback (most recent call last):
 File "", line 1, in
 File "/var/www/sampleapp/crivist/myEnv/lib/python3.5/site-packages/rtree/__init__.py", line 1, in
   from .index import Rtree
 File "/var/www/sampleapp/crivist/myEnv/lib/python3.5/site-packages/rtree/index.py", line 5, in
   from . import core
 File "/var/www/sampleapp/crivist/myEnv/lib/python3.5/site-packages/rtree/core.py", line 125, in
   raise OSError("Could not find libspatialindex_c library file")
OSError: Could not find libspatialindex_c library file


You can solve using:
sudo apt install python3-rtree
But in some servers, you can't access to apt, then you decide do next commands:

$git clone https://github.com/libspatialindex/libspatialindex.git
$cd libspatialindex
$cmake --prefix=/usr .
$make
$sudo make install  #You cannot install on system


CMake Error at src/cmake_install.cmake:52 (file):
  file INSTALL cannot copy file
  "/home/fincahuanaco/Temp/libspatialindex/bin/libspatialindex.so.5.0.0" to
  "/usr/local/lib/libspatialindex.so.5.0.0".
Call Stack (most recent call first):
  cmake_install.cmake:42 (include)

But you compile, then you have the link to file, then set next variable

export SPATIALINDEX_C_LIBRARY=environmentpath/lib/libspatialindex_c.so


Enjoy
 


References:
[1] geopandas http://geopandas.org/install.html
[2] python environment https://docs.python-guide.org/dev/virtualenvs/
[3] python environment 2 https://docs.python.org/3/tutorial/venv.html

Level Set Topics





References:


[1] Methods In (Bio)Medical Image Analysis 2019 https://www.cs.cmu.edu/~galeotti/methods_course/



Wednesday, February 20, 2019

Python 3D Interactive







[1] Python draw 2d and 3d http://jeffskinnerbox.me/notebooks/matplotlib-2d-and-3d-plotting-in-ipython.html

[2] Python 3D picking https://stackoverflow.com/questions/10424517/how-to-get-properties-of-picked-object-in-mplot3d-matplotlib-python

[3] Python mayavi picking http://docs.enthought.com/mayavi/mayavi/auto/example_pick_on_surface.html

[4] Python mayavi for 3D https://docs.enthought.com/mayavi/mayavi/mlab.html

Fedora 23 - Executing MONO Asp.NET MVC App



Table 'mysql.user' doesn't exist:ERROR
Or
ERROR 1146 (42S02): Table 'mysql.role_edges' doesn't exist


$mysql_upgrade -u root


Access problem (resolve inner mysql)

$mysql -u root -p
>show GRANTS FOR onepoint@localhost;


Execution problem



Turns out simply creating the folder using mkdir

$sudo mkdir /etc/mono/registry
$sudo chmod uog+rw /etc/mono/registry # setting the right permissions

Another way

You can set MONO_REGISTRY_PATH to point to a directory that you control:

$mkdir my-registry
$MONO_REGISTRY_PATH=`pwd`/my-registry
$xsp4
 
Next problem


System.MissingMethodException Method 'RouteCollection.get_AppendTrailingSlash' not found.




[uxxx@sxxx MaxxCoreWeb]$ mono --version
Mono JIT compiler version 4.0.5 (Stable 4.0.5.1/1d8d582 Mon Jan  4 11:09:45 UTC 2016)




These message showed because the system was build in mono 4.5 and mono 4.2 (both are compatible
for me in my system), but in my case i installed mono 4, lastest on Fedora 23.



Command for update repository to Fedora 27, but after update still doesn't ran

 
$rpm --import "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"
$su -c 'curl https://download.mono-project.com/repo/centos7-stable.repo | tee /etc/yum.repos.d/mono-centos7-stable.repo'
$dnf update


I removed mono and tried to install mono 5, mono 4.8 and mono 4.2, but i got error of conflicts. Then i executed next command:

$sudo dnf autoremove #for remove dependences


And tried again and was successful.


$ sudo dnf install mono-complete-4.8.1.0-0.xamarin.1.x86_64




References:
[1] Upgrade tips https://fedoraproject.org/wiki/DNF_system_upgrade
[2] mono https://www.mono-project.com/download/stable/#download-lin-fedora

Ubuntu Forware port 80

  #!/bin/bash iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8069 iptables -t nat -A PREROUTING -i eth0 -p tc...