It is time to setup working environment with Zotac P106-90 GPU as computation unit. I have installed latest CUDA 10.2 toolkit and driver to Orcale Linux without complicated tricks.
1. I download local installer CUDA run file from Nvidia.
2. I have changed my runlevel to multi-user (3) with
systemctl set-default multi-user.target
3. I rebooted to terminal only mutli-user runlevel
4. Trying to run ./cuda_10.2.89_440.33.01_linux.run few times, but in /var/log/nvidia-install.log I have seen X server still run.
5. Then I found in NVIDIA instruction I can kill X Server and remove lock file.
kill <process_id>
rm /tmp/.X2.lock
6. After resolve xserver lock I have a message in nvidia-installer.log that Nouveau driver is disabled and I need to reboot to run installation again to replace driver.
7. I repeated the trick with killing XServer process and lock file remove, I successfully install all Nvidia driver, CUDA Toolkit 10.2 and samples.
8. I changed runlevel back to grapical
systemctl set-default graphical.level
9. I rebooted to DE to check cuda samples works.
Friday, May 1, 2020
Thursday, April 30, 2020
Render Buddha fractal on decommissioned P106-90
Probably I got an answer, how to prepare me to parallel data computing with great Pascal architecture for my small budget 30usd. I have found Zotac P106-90 is out of mining game for now, I can bought and adopt for GPU computation. This graphics card looks like Zotac GTX 1060 but it have no any video output. My first test is for Windows 10, latest Cuda 10.2 produce great Buddha fractal for me. For render Buddha 48MB fractal image it takes 6 min.
nvcc --version
Cuda compilation tools, release 10.2, V10.2.89Built on Wed_Oct_23_19:32:27_Pacific_Daylight_Time_2019Copyright (c) 2005-2019 NVIDIA Corporationnvcc: NVIDIA (R) Cuda compiler driver
I used JCudaFractals written in Java with JCuda library.
mvn compile
mvn exec:java -Dexec.mainClass="net.marvk.jcudafractals.Main"
Sometime I got CUDA_ERROR_ILLEGAL_ADDRESS errors.
jcuda.CudaException: CUDA_ERROR_ILLEGAL_ADDRESS
at jcuda.driver.JCudaDriver.checkResult (JCudaDriver.java:359)
at jcuda.driver.JCudaDriver.cuCtxSynchronize (JCudaDriver.java:2139)
at net.marvk.jcudafractals.fractal.Buddhabrot2.buddhabrot (Buddhabrot2.java:95)
at net.marvk.jcudafractals.controller.Controller.lambda$new$0 (Controller.java:25)
at java.util.stream.IntPipeline$1$1.accept (IntPipeline.java:180)
at java.util.stream.Streams$RangeIntSpliterator.forEachRemaining (Streams.java:104)
at java.util.Spliterator$OfInt.forEachRemaining (Spliterator.java:699)
at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:484)
at java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:474)
at java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:550)
at java.util.stream.AbstractPipeline.evaluateToArrayNode (AbstractPipeline.java:260)
at java.util.stream.ReferencePipeline.toArray (ReferencePipeline.java:517)
at net.marvk.jcudafractals.controller.Controller.<init> (Controller.java:26)
at net.marvk.jcudafractals.Main.main (Main.java:10)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run (ExecJavaMojo.java:282)
at java.lang.Thread.run (Thread.java:834)
In common this cheap GPU works in calculations as expected.
C:\Users\Eugene>"C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe"
Thu Apr 30 22:49:50 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 441.22 Driver Version: 441.22 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 P106-090 TCC | 00000000:02:00.0 Off | N/A |
| 47% 49C P0 55W / 75W | 674MiB / 3012MiB | 100% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1524 C ...v7\win\64bit\Core_22.fah\FahCore_22.exe 289MiB |
| 0 2892 C D:\CUDA-Z-0.10.251-32bit.exe 73MiB |
| 0 3360 C ...gram Files\Java\jdk-11.0.7\bin\java.exe 270MiB |
+-----------------------------------------------------------------------------+
I also check performance parameters in CUDA-Z program that show, it is slow to upload data to device, but it very fast to share data between several devices.
CUDA-Z Report
=============
Version: 0.10.251 32 bit http://cuda-z.sf.net/
OS Version: Windows AMD64 6.2.9200
Driver Version: 441.22 (TCC)
Driver Dll Version: 10.20 (26.21.14.4122)
Runtime Dll Version: 6.50
Core Information
----------------
Name: P106-090
Compute Capability: 6.1
Clock Rate: 1531 MHz
PCI Location: 0:2:0
Multiprocessors: 5
Threads Per Multiproc.: 2048
Warp Size: 32
Regs Per Block: 65536
Threads Per Block: 1024
Threads Dimensions: 1024 x 1024 x 64
Grid Dimensions: 2147483647 x 65535 x 65535
Watchdog Enabled: No
Integrated GPU: No
Concurrent Kernels: Yes
Compute Mode: Default
Stream Priorities: Yes
Memory Information
------------------
Total Global: 3012.12 MiB
Bus Width: 192 bits
Clock Rate: 4004 MHz
Error Correction: No
L2 Cache Size: 48 KiB
Shared Per Block: 48 KiB
Pitch: 2048 MiB
Total Constant: 64 KiB
Texture Alignment: 512 B
Texture 1D Size: 131072
Texture 2D Size: 131072 x 65536
Texture 3D Size: 16384 x 16384 x 16384
GPU Overlap: Yes
Map Host Memory: Yes
Unified Addressing: No
Async Engine: Yes, Bidirectional
Performance Information
-----------------------
Memory Copy
Host Pinned to Device: 738.929 MiB/s
Host Pageable to Device: 712.643 MiB/s
Device to Host Pinned: 776.933 MiB/s
Device to Host Pageable: 724.519 MiB/s
Device to Device: 35.1506 GiB/s
GPU Core Performance
Single-precision Float: 2149.6 Gflop/s
Double-precision Float: 36.9897 Gflop/s
64-bit Integer: 92.5176 Giop/s
32-bit Integer: 743.671 Giop/s
24-bit Integer: 558.109 Giop/s
Generated: Thu Apr 30 23:18:43 2020
nvcc --version
Cuda compilation tools, release 10.2, V10.2.89Built on Wed_Oct_23_19:32:27_Pacific_Daylight_Time_2019Copyright (c) 2005-2019 NVIDIA Corporationnvcc: NVIDIA (R) Cuda compiler driver
I used JCudaFractals written in Java with JCuda library.
mvn compile
mvn exec:java -Dexec.mainClass="net.marvk.jcudafractals.Main"
Sometime I got CUDA_ERROR_ILLEGAL_ADDRESS errors.
jcuda.CudaException: CUDA_ERROR_ILLEGAL_ADDRESS
at jcuda.driver.JCudaDriver.checkResult (JCudaDriver.java:359)
at jcuda.driver.JCudaDriver.cuCtxSynchronize (JCudaDriver.java:2139)
at net.marvk.jcudafractals.fractal.Buddhabrot2.buddhabrot (Buddhabrot2.java:95)
at net.marvk.jcudafractals.controller.Controller.lambda$new$0 (Controller.java:25)
at java.util.stream.IntPipeline$1$1.accept (IntPipeline.java:180)
at java.util.stream.Streams$RangeIntSpliterator.forEachRemaining (Streams.java:104)
at java.util.Spliterator$OfInt.forEachRemaining (Spliterator.java:699)
at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:484)
at java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:474)
at java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:550)
at java.util.stream.AbstractPipeline.evaluateToArrayNode (AbstractPipeline.java:260)
at java.util.stream.ReferencePipeline.toArray (ReferencePipeline.java:517)
at net.marvk.jcudafractals.controller.Controller.<init> (Controller.java:26)
at net.marvk.jcudafractals.Main.main (Main.java:10)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run (ExecJavaMojo.java:282)
at java.lang.Thread.run (Thread.java:834)
In common this cheap GPU works in calculations as expected.
C:\Users\Eugene>"C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe"
Thu Apr 30 22:49:50 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 441.22 Driver Version: 441.22 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 P106-090 TCC | 00000000:02:00.0 Off | N/A |
| 47% 49C P0 55W / 75W | 674MiB / 3012MiB | 100% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1524 C ...v7\win\64bit\Core_22.fah\FahCore_22.exe 289MiB |
| 0 2892 C D:\CUDA-Z-0.10.251-32bit.exe 73MiB |
| 0 3360 C ...gram Files\Java\jdk-11.0.7\bin\java.exe 270MiB |
+-----------------------------------------------------------------------------+
I also check performance parameters in CUDA-Z program that show, it is slow to upload data to device, but it very fast to share data between several devices.
CUDA-Z Report
=============
Version: 0.10.251 32 bit http://cuda-z.sf.net/
OS Version: Windows AMD64 6.2.9200
Driver Version: 441.22 (TCC)
Driver Dll Version: 10.20 (26.21.14.4122)
Runtime Dll Version: 6.50
Core Information
----------------
Name: P106-090
Compute Capability: 6.1
Clock Rate: 1531 MHz
PCI Location: 0:2:0
Multiprocessors: 5
Threads Per Multiproc.: 2048
Warp Size: 32
Regs Per Block: 65536
Threads Per Block: 1024
Threads Dimensions: 1024 x 1024 x 64
Grid Dimensions: 2147483647 x 65535 x 65535
Watchdog Enabled: No
Integrated GPU: No
Concurrent Kernels: Yes
Compute Mode: Default
Stream Priorities: Yes
Memory Information
------------------
Total Global: 3012.12 MiB
Bus Width: 192 bits
Clock Rate: 4004 MHz
Error Correction: No
L2 Cache Size: 48 KiB
Shared Per Block: 48 KiB
Pitch: 2048 MiB
Total Constant: 64 KiB
Texture Alignment: 512 B
Texture 1D Size: 131072
Texture 2D Size: 131072 x 65536
Texture 3D Size: 16384 x 16384 x 16384
GPU Overlap: Yes
Map Host Memory: Yes
Unified Addressing: No
Async Engine: Yes, Bidirectional
Performance Information
-----------------------
Memory Copy
Host Pinned to Device: 738.929 MiB/s
Host Pageable to Device: 712.643 MiB/s
Device to Host Pinned: 776.933 MiB/s
Device to Host Pageable: 724.519 MiB/s
Device to Device: 35.1506 GiB/s
GPU Core Performance
Single-precision Float: 2149.6 Gflop/s
Double-precision Float: 36.9897 Gflop/s
64-bit Integer: 92.5176 Giop/s
32-bit Integer: 743.671 Giop/s
24-bit Integer: 558.109 Giop/s
Generated: Thu Apr 30 23:18:43 2020
Sunday, April 12, 2020
Two AppImage for a day
I have found large Linux applications have packed for AppImages I can run without install.
The AppImage format is a format for packaging applications in a way that allows them to run on a variety of different target systems (base operating systems, distributions) without further modification.
First of them is Gravit Designer that can open and edi Adobe Illustrator files, looks like important thing.
Second, is decade known for me program, Scilab. It works now pretty fast when I know it teen years ago.
To download AppImage for Scilab, base on the answer:
The AppImage format is a format for packaging applications in a way that allows them to run on a variety of different target systems (base operating systems, distributions) without further modification.
First of them is Gravit Designer that can open and edi Adobe Illustrator files, looks like important thing.
Second, is decade known for me program, Scilab. It works now pretty fast when I know it teen years ago.
To download AppImage for Scilab, base on the answer:
mkdir ~/Software
cd ~/Software
wget https://github.com/davidcl/Scilab.AppDir/releases/download/6.0.2-1/Scilab-x86_64.AppImage
chmod +x Scilab-x86_64.AppImage
ln -s Scilab-x86_64.AppImage scilab
Saturday, March 21, 2020
Where to find space to Steam games on small user home
Usually, Linux user have limited space on their home for data, but not for large binaries what shipped with Steam. I have found an option to change steamapps folder to separate large volume belong to the user.
Steam library folders allow to setup location for games and finally I can enjoy new Life is Strange episode for me.
Steam library folders allow to setup location for games and finally I can enjoy new Life is Strange episode for me.
Monday, March 9, 2020
Install OpenCl Neo on Oracle Linux
I found it is easy to install opencl to Oracle Linux as one, two, three.
curl http://registrationcenter-download.intel.com/akdlm/irc_nas/11396/SRB5.0_linux64.zip > SRB5.0_linux64.zip
unzip SRB5.0_linux64.zip
yum install intel-opencl-cpu-r5.0-63503.x86_64.rpm
yum install intel-opencl-devel-r5.0-63503.x86_64.rpm
yum install intel-opencl-r5.0-63503.x86_64.rpm
yum provides "*/libOpenCL.so"
Produced output with path to the lib:
intel-opencl-r5.0-63503.x86_64 : OpenCL ICD loader and ICD for Intel Iris Graphics
Repo : @System
Matched from:
Filename : /opt/intel/opencl/libOpenCL.so
Then test opencl runtime directly in .Net Core
Supported Platforms & Devices:
+--------------------------------------------------+----------------+----------------------+-----------------------------------------+----------------+----------------+----------------+----------------
| Platform | OpenCL Version | Vendor | Device | Driver Version | Bits | Memory | Clock Speed | Available |
+--------------------------------------------------+----------------+----------------------+-----------------------------------------+----------------+----------------+----------------+----------------
| Intel(R) OpenCL | 2.0 | Intel(R) Corporation | Intel(R) Core(TM) i3-8100 CPU @ 3.60GHz | 1.2.0.475 | 64 Bit | 3.43 GiB | 3600 MHz | ✔ |
+--------------------------------------------------+----------------+----------------------+-----------------------------------------+----------------+----------------+----------------+----------------
| Intel(R) CPU Runtime for OpenCL(TM) Applications | 2.1 | Intel(R) Corporation | Intel(R) Core(TM) i3-8100 CPU @ 3.60GHz | 1.2.0.475 | 64 Bit | 3.43 GiB | 3600 MHz | ✔ |
+--------------------------------------------------+----------------+----------------------+-----------------------------------------+----------------+----------------+----------------+----------------
curl http://registrationcenter-download.intel.com/akdlm/irc_nas/11396/SRB5.0_linux64.zip > SRB5.0_linux64.zip
unzip SRB5.0_linux64.zip
yum install intel-opencl-cpu-r5.0-63503.x86_64.rpm
yum install intel-opencl-devel-r5.0-63503.x86_64.rpm
yum install intel-opencl-r5.0-63503.x86_64.rpm
yum provides "*/libOpenCL.so"
Produced output with path to the lib:
intel-opencl-r5.0-63503.x86_64 : OpenCL ICD loader and ICD for Intel Iris Graphics
Repo : @System
Matched from:
Filename : /opt/intel/opencl/libOpenCL.so
Then test opencl runtime directly in .Net Core
git clone https://github.com/lecode-official/opencl-dotnet.git
cd opencl-dotnet
cd OpenCl.DotNetCore.Tests
dotnet run
Supported Platforms & Devices:
+--------------------------------------------------+----------------+----------------------+-----------------------------------------+----------------+----------------+----------------+----------------
| Platform | OpenCL Version | Vendor | Device | Driver Version | Bits | Memory | Clock Speed | Available |
+--------------------------------------------------+----------------+----------------------+-----------------------------------------+----------------+----------------+----------------+----------------
| Intel(R) OpenCL | 2.0 | Intel(R) Corporation | Intel(R) Core(TM) i3-8100 CPU @ 3.60GHz | 1.2.0.475 | 64 Bit | 3.43 GiB | 3600 MHz | ✔ |
+--------------------------------------------------+----------------+----------------------+-----------------------------------------+----------------+----------------+----------------+----------------
| Intel(R) CPU Runtime for OpenCL(TM) Applications | 2.1 | Intel(R) Corporation | Intel(R) Core(TM) i3-8100 CPU @ 3.60GHz | 1.2.0.475 | 64 Bit | 3.43 GiB | 3600 MHz | ✔ |
+--------------------------------------------------+----------------+----------------------+-----------------------------------------+----------------+----------------+----------------+----------------
Sunday, March 8, 2020
MySql is good choice for EF Core
In my case, I want to continue store data in CSV. Storage engine in MySql will help me do that and simply integrate my apps directly to data. It also helps to storage al data directly in memory for a cache. Of course, only InnoDB supports transactions, but I only consumer.
SHOW ENGINES
this command shows what I have 9 store engines out of the box.
MEMORY Hash based, stored in memory, useful for temporary tables InnoDB (DEFAULT) Supports transactions, row-level locking, and foreign keys
PERFORMANCE_SCHEMA Performance Schema
MyISAM MyISAM storage engine
MRG_MYISAM Collection of identical MyISAM tables
BLACKHOLE YES /dev/null storage engine (anything you write to it disappears)
CSV CSV storage engine
ARCHIVE Archive storage engine
It has workaround for enable storage engine in DataContext in EF code first solution using migration.
Solution:
{
migrationBuilder.Sql("SET default_storage_engine=INNODB");
//Another migration code is generated here
}
But then, you can generate data with EF fluent interface code and only one command will be mode all this data to in memory database to fast performance calculations.
Thank you, Oracle for this convenience.
It is look like a point in strategy where I can to upload normalized graph data from Arango DB to csv and then to the memory to load all data in GPU.
SHOW ENGINES
this command shows what I have 9 store engines out of the box.
MEMORY Hash based, stored in memory, useful for temporary tables InnoDB (DEFAULT) Supports transactions, row-level locking, and foreign keys
PERFORMANCE_SCHEMA Performance Schema
MyISAM MyISAM storage engine
MRG_MYISAM Collection of identical MyISAM tables
BLACKHOLE YES /dev/null storage engine (anything you write to it disappears)
CSV CSV storage engine
ARCHIVE Archive storage engine
It has workaround for enable storage engine in DataContext in EF code first solution using migration.
Solution:
- Using migrations (Instead of EnsureDatabaseCreated()) you can set innodb engine per db-session. (https://dev.mysql.com/doc/refman/5.7/en/storage-engine-setting.html)
{
migrationBuilder.Sql("SET default_storage_engine=INNODB");
//Another migration code is generated here
}
But then, you can generate data with EF fluent interface code and only one command will be mode all this data to in memory database to fast performance calculations.
ALTER TABLE mytable ENGINE=MEMORYThank you, Oracle for this convenience.
It is look like a point in strategy where I can to upload normalized graph data from Arango DB to csv and then to the memory to load all data in GPU.
Saturday, March 7, 2020
Audio is enough to study English
When I started to find good screen recording tool for Oracle Linux, I found only black screen recorded. But ffmpeg can record audio from game I can translate then to study.
There are steps to install ffmpeg
There are steps to install ffmpeg
sudo dnf -y install https://download.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm
sudo dnf install --nogpgcheck https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpm
sudo dnf install http://rpmfind.net/linux/epel/7/x86_64/Packages/s/SDL2-2.0.10-1.el7.x86_64.rpm
sudo dnf install ffmpeg
sudo dnf -y install ffmpeg-devel
Then I have to run x11grab to record audio, command look like
ffmpeg -y \
-video_size 800x600 \
-framerate 30 -f x11grab -i :0.0 \
-f pulse -ac 2 -i default \
/tmp/screen1_recording_`date '+%Y-%m-%d_%H-%M-%S'`.mp4 \
&> /tmp/screen1_recording_`date '+%Y-%m-%d_%H-%M-%S'`.log
Free music from Argentina
Every year i donated for archive.org because of a Common Creative music that lives there through decades. Its belongs to unknown authors, but within a years I listen selective albums day by day.
It is hard to find them on netlabels, catch with their covers, and hat I have for today:
It is hard to find them on netlabels, catch with their covers, and hat I have for today:
They like another universe in music without brands and dictated motives by people.
Saturday, February 29, 2020
Monodevelop on Oracle Linux
The time of old good tools is coming to my environment. I installed may be most usable code editor within a years by me in linux. This is a Monodevelop:
A script to install it on Oracle Linux 8 is:
sudo rpmkeys --import "http://pool.sks-keyservers.net/pks/lookup?op=get&search=0x3fa7e0328081bff6a14da29aa6a19b38d3d831ef"
su -c 'curl https://download.mono-project.com/repo/centos8-stable.repo | tee /etc/yum.repos.d/mono-centos8-stable.repo'
su -c 'curl https://download.mono-project.com/repo/centos8-vs.repo | tee /etc/yum.repos.d/mono-centos8-vs.repo'
sudo yum install mono-complete
sudo yum install gtk-sharp2
sudo yum install glib-sharp2
sudo yum install fsharp
sudo dnf install libglade2
sudo dnf install gtk-sharp2
install libssh2 from sources
sudo yum install monodevelop
A script to install it on Oracle Linux 8 is:
sudo rpmkeys --import "http://pool.sks-keyservers.net/pks/lookup?op=get&search=0x3fa7e0328081bff6a14da29aa6a19b38d3d831ef"
su -c 'curl https://download.mono-project.com/repo/centos8-stable.repo | tee /etc/yum.repos.d/mono-centos8-stable.repo'
su -c 'curl https://download.mono-project.com/repo/centos8-vs.repo | tee /etc/yum.repos.d/mono-centos8-vs.repo'
sudo yum install mono-complete
sudo yum install gtk-sharp2
sudo yum install glib-sharp2
sudo yum install fsharp
sudo dnf install libglade2
sudo dnf install gtk-sharp2
install libssh2 from sources
sudo yum install monodevelop
Saturday, February 15, 2020
Micro in chromeos shell
I get found my chrome brew stop install on my old Chromeos, but when I download install.sh from stable branch 3 years ago it installed again. Crew package manager I needed because of leak of standard command line editors. Crew installed micro, Ant and Gradle for me. I can use this smart editor for programming:
I wrote first part of book annotation tool in java directly in micro on my chromebook.
I wrote first part of book annotation tool in java directly in micro on my chromebook.
Tuesday, January 28, 2020
Application Inspector build with Roslyn analyze my AST parser
All are known, copy-paste is a bad thing for a code, but my project contains 95% of duplicated code. This code mostly generated with Roslyn to support ASt parser and importer for Arango graph db. When i run new Microsoft tool Application Inspector I finally know how large is auto generated code in my project.
This analyzer also know where I read from file, or even I need to switch from Newton.Json
I think it is security and discovery tool by Guy Acosta to better know what exactly you tried to run in your sandbox
This analyzer also know where I read from file, or even I need to switch from Newton.Json
I think it is security and discovery tool by Guy Acosta to better know what exactly you tried to run in your sandbox
Friday, January 24, 2020
Two languages and one on the host
It is easy to install Java in the ChromeOs, extracted from archive it simply works with sdk for development. Golang is supported by the crew as common package. .NET Core is hosted on the server for me, I can connect with ssh and Termius client.
Tuesday, January 21, 2020
Virtual Box 64bit setup
I tried to install Virtual Box from the rpm package but it did not work, because of a kernel module build. Here is an instruction from a link:
cd /etc/yum.repos.d/
wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf install binutils gcc make patch libgomp glibc-headers glibc-devel kernel-headers kernel-devel dkms
dnf install VirtualBox-6.0
/usr/lib/virtualbox/vboxdrv.sh setup
usermod -a -G vboxusers user_name
Monday, January 13, 2020
Where Microsoft packages live
https://packages.microsoft.com is a home for packages like .net core and mssql-server. But it has other packages required for cloud maintenance, for example i found in the repo:
The Moby project
SCXCore
procdump
Not so much, but this is only one listed repo where i found .Net Core for my OS.
The Moby project
SCXCore
procdump
Not so much, but this is only one listed repo where i found .Net Core for my OS.
Saturday, January 11, 2020
Steam on Oracle Linux 8
Here is an instruction,
# dnf install json-glib.i686 libdbusmenu.i686 fontconfig.i686 freetype.i686 glib2.i686 gtk2.i686 pango.i686 glibc.i686
# wget https://negativo17.org/repos/steam/epel-7/x86_64/libdbusmenu-gtk2-16.04.0-4.el7.i686.rpm
# rpm -U libdbusmenu-gtk2-16.04.0-4.el7.i686.rpm --nodeps
# dnf install libdrm.i686
# dnf install https://download1.rpmfusion.org/free/el/updates/8/x86_64/l/libva-intel-driver-2.1.0-4.el8.x86_64.rpm
# dnf install alsa-lib.i686 alsa-plugins-pulseaudio.i686 libXScrnSaver.i686 libXtst.i686 libatomic.i686 libcurl.i686 libdbusmenu-gtk3.i686 libpng12.i686 libvdpau.i686
# dnf install mesa-dri-drivers.i686 mesa-libGL.i686 nss.i686
# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# dnf install https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm
# dnf install https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpm
# dnf install steam
Although not all games with linux support have been started, this list exactly works for me:
Portal
Portal2
Arcadia (unknown novel)
Life is Strange
Tomb Rider
I built Nvidia driver for me, but desktop manager simply have not open my workspace.
May be next time for Oracle Linux. I remembered driver for GTX 970 works in Ubuntu 18.04 last time.
Then I returned to my Intel Corporation 8th Gen Core Processor Gaussian Mixture Model,
that have 60fps for Tomb Rider only for Low quality,Life is Strange that created after Tomb Rider looks very good.
OJet. May be is possible on x86 but not in arm chromebook.
node /mnt/stateful_partition/dev_
image/share/nodebrew/node/v13. 0.1/lib/node_modules/@oracle/ ojet-cli/ojet build
chronos@localhost /home/user/ 46f836ee257e57280b1bac56c5164f 65dcfcfbbe/Projects/robovault_ ui $ node /mnt/stateful_partition/dev_ image/share/nodebrew/node/v10. 18.0/lib/node_modules/@oracle/ ojet-cli/ojet build
Warning: Command is missing platform. Default to web.
Cleaning staging path.
Running before_build hook.
Copy files to staging directory.
Copy finished.
Copy library files to staging directory.
Copy finished.
Copy reference components to staging directory.
Copy finished.
Copy local web components
Copy local web components skipped
Optimizing svg into SVG sprites.
Svg optimization task finished.
Compiling sass...
Sass compile finished.
Task index.html cdn bundle injection finished.
Running theme injection task.
Task index.html theme path injection finished.
Running theme copy task.
Theme copy task finished.
Running injection tasks.
Task main.js paths injection finished.
runAllComponentHooks
Running after_build hook.
chronos@localhost /home/user/ 46f836ee257e57280b1bac56c5164f 65dcfcfbbe/Projects/robovault_ ui $ node /mnt/stateful_partition/dev_ image/share/nodebrew/node/v10. 18.0/lib/node_modules/@oracle/ ojet-cli/ojet serve
Warning: Command is missing platform. Default to web.
Build: true
BuildType: dev
Destination: undefined
Destination target: undefined
Livereload: true
Livereload port: 35729
Platform: web
Port: 8000
Theme: alta
Theme platform: web
Theme version: 8.0.0
Building app.
Cleaning staging path.
Running before_build hook.
Copy files to staging directory.
Copy finished.
Copy library files to staging directory.
Copy finished.
Copy reference components to staging directory.
Copy finished.
Copy local web components
Copy local web components skipped
Optimizing svg into SVG sprites.
Svg optimization task finished.
Svg optimization task finished.
Compiling sass...
Sass compile finished.
Task index.html cdn bundle injection finished.
Running theme injection task.
Task index.html theme path injection finished.
Running theme copy task.
Theme copy task finished.
Running injection tasks.
Task main.js paths injection finished.
runAllComponentHooks
Running after_build hook.
Running before_serve hook.
Starting web server.
Connecting to http://localhost:8000
Starting watcher.
Running after_serve hook.
Server ready: http://localhost:8000
Listening on port 35729.
Watching files.
events.js:174
throw er; // Unhandled 'error' event
^
Error: spawn xdg-open ENOENT
at Process.ChildProcess._handle. onexit (internal/child_process.js: 240:19)
at onErrorNT (internal/child_process.js: 415:16)
at process._tickCallback (internal/process/next_tick. js:63:19)
Emitted 'error' event at:
at Process.ChildProcess._handle. onexit (internal/child_process.js: 246:12)
at onErrorNT (internal/child_process.js: 415:16)
at process._tickCallback (internal/process/next_tick. js:63:19)
npm install http-server -g
chronos@localhost /home/user/ 46f836ee257e57280b1bac56c5164f 65dcfcfbbe/Projects/robovault_ ui/web $ node /mnt/stateful_partition/dev_ image/share/nodebrew/node/v10. 18.0/lib/node_modules/http- server/bin/http-server
Starting up http-server, serving ./
Available on:
http://127.0.0.1:8080
http://192.168.0.101:8080
Hit CTRL-C to stop the server
chronos@localhost /home/user/
Warning: Command is missing platform. Default to web.
Cleaning staging path.
Running before_build hook.
Copy files to staging directory.
Copy finished.
Copy library files to staging directory.
Copy finished.
Copy reference components to staging directory.
Copy finished.
Copy local web components
Copy local web components skipped
Optimizing svg into SVG sprites.
Svg optimization task finished.
Compiling sass...
Sass compile finished.
Task index.html cdn bundle injection finished.
Running theme injection task.
Task index.html theme path injection finished.
Running theme copy task.
Theme copy task finished.
Running injection tasks.
Task main.js paths injection finished.
runAllComponentHooks
Running after_build hook.
chronos@localhost /home/user/
Warning: Command is missing platform. Default to web.
Build: true
BuildType: dev
Destination: undefined
Destination target: undefined
Livereload: true
Livereload port: 35729
Platform: web
Port: 8000
Theme: alta
Theme platform: web
Theme version: 8.0.0
Building app.
Cleaning staging path.
Running before_build hook.
Copy files to staging directory.
Copy finished.
Copy library files to staging directory.
Copy finished.
Copy reference components to staging directory.
Copy finished.
Copy local web components
Copy local web components skipped
Optimizing svg into SVG sprites.
Svg optimization task finished.
Svg optimization task finished.
Compiling sass...
Sass compile finished.
Task index.html cdn bundle injection finished.
Running theme injection task.
Task index.html theme path injection finished.
Running theme copy task.
Theme copy task finished.
Running injection tasks.
Task main.js paths injection finished.
runAllComponentHooks
Running after_build hook.
Running before_serve hook.
Starting web server.
Connecting to http://localhost:8000
Starting watcher.
Running after_serve hook.
Server ready: http://localhost:8000
Listening on port 35729.
Watching files.
events.js:174
throw er; // Unhandled 'error' event
^
Error: spawn xdg-open ENOENT
at Process.ChildProcess._handle.
at onErrorNT (internal/child_process.js:
at process._tickCallback (internal/process/next_tick.
Emitted 'error' event at:
at Process.ChildProcess._handle.
at onErrorNT (internal/child_process.js:
at process._tickCallback (internal/process/next_tick.
npm install http-server -g
chronos@localhost /home/user/
Starting up http-server, serving ./
Available on:
http://127.0.0.1:8080
http://192.168.0.101:8080
Hit CTRL-C to stop the server
Tuesday, January 7, 2020
I just put a lecture here
This is a message for every new user executing sudo and elevate previlegies :
[eugene@localhost tt18.1.2.4.0]$ sudo groupadd -g 10000 timesten
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
In this default lecture I have found one of programming ethics principles and Spider-map phrase about power and responsibility :
- Contribute to society and human well-being. Programmers should work to develop computer systems that can reduce negative consequences to society, such as threats to safety and health, and that can make everyday activities and work easier. It is “an obligation to develop to high standards” (Savage).[3]
- Avoid harm to others. Computer systems have an indirect impact on third parties. They can cause loss of information and resources that might result severely harmful for users, the general public, or employers. Therefore, software developers should minimize the risk of harming others due to coding errors, or security issues, by following standards to design and test systems (Code of Ethics and Professional Conduct).[2]
- Be honest and trustworthy. This principle encourages programmers to be honest and aware of their limitations in knowledge and education when writing computer systems. Also, if a programmer knows there is something wrong with a computer system, he or she should report it immediately to avoid undesirable consequences.
- Give proper credit for intellectual property. It is mandatory for every software developer to never use and take credit for someone else's work, even when it has not been protected by a copyright law, patent, etc. They must recognize and fully credit other people's works, and they should use their own ideas to develop software.
- Respect the privacy of others. Computer systems are wrongly used by some people to violate the privacy of others. Software developers should write programs that can protect users’ private information and that can avoid other undesired people to have unauthorized access to it (Code of Ethics and Professional Conduct).
- Honor confidentiality. Unless required by law or any other ethical guideline, a programmer must keep secret any additional information related to his or her employer that arises from working in a project.
- Approve software only if they have a well-founded belief it is safe and meets specifications. Programmers cannot assume that a system is ready to use only because it performs the tasks needed. They should make sure these systems are also safe and meet every specification required by the user. If programs are not safe, users are unprotected from hackers that could steal important information or money. Therefore, several tests should be performed in order to ensure a system's security before approving it.
- Accept full responsibility for their own work. If a program presents errors, the software developer should accept full responsibility for his or her work, and should work on revising, correcting, modifying, and testing it.
- Not knowingly use software that is obtained or retained either illegally or unethically. If a computer system will be used as a base for the creation of another, then permission to do so should be asked by the programmer. This principle prohibits using any other software for any purpose if the way it was gotten is not clear or is known to be illegal or unethical.
- Identify, define, and address ethical, economic, cultural, legal and environmental issues related to work projects. If a programmer notices and identifies that working on a project will lead to any kind of problems, then the programmer should report it to his or her employer before continuing.
- Ensure that specifications for software on which they work satisfy the users’ requirements and they have the appropriate approvals. Software developers should come to their employers to ask for the correspondent approval to the system they are creating before continuing working on the next part. If it doesn't meet the requirements, then a modification to the source code of the system should be made.
- Ensure adequate testing, debugging and review of software. Programmers should perform the appropriate tests to the pieces of software they work with, and should check for errors and system security holes to make sure that the programs are well implemented.
- Not engage in deceptive financial practices such as bribery, double billing, or other improper financial practices. Programmers are exposed to be participants in illegal activities to get money. They get involved in them due to threats, economic issues, or simply because they want to obtain easy money by taking advantage of their knowledge about how computer systems work. This guideline prohibits programmer involvement in such unlawful actions.
- Improve their ability to create safe, reliable, and useful quality software. Since technology advances faster year by year, and so does virtual criminality, the need of well-structured and designed programs is increasing. Computer systems get old and limited by new ones and new devices. Programmers should “further their knowledge of developments in the analysis, specification, design, development, maintenance, and testing software and related documents” (Software Engineering Code of Ethics and Professional Practice)[4] in order to create better pieces of software.
Monday, December 16, 2019
little heroes sing me a song
It is ncurce utility that analyses my chromebook disk how large is nmp and chache on it after failed attempt to install Theia
ncdu -x
ncdu -x
16Gb space is enough to make very large systems, especially with 32Gb Oracle Linux server as a host.
Sunday, December 15, 2019
Theia IDE for my arm chromebook
I will say right away, it is not possible to compile Theia nodejs project locally in my chromebook XE303C12 because gcc is old for dependencies code. In spire of I can not compile OJet tooling for me because phantomjs have no arm architecture to build. But I think I should never give up with my tiny hardware because limitation is also inspiration.
Theia is in browser IDE similar to Visual Code, so that I can host my OJet project in free Oracle computed node and enjoy programming on my thin laptop, the experience look like:
To compile Theia:
Theia is in browser IDE similar to Visual Code, so that I can host my OJet project in free Oracle computed node and enjoy programming on my thin laptop, the experience look like:
To compile Theia:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.5/install.sh | bash
restart terminal
nvm install 10
npm install -g yarn
mkdir my-app
cd my-app
Create package.json in this directory:{
"private": true,
"dependencies": {
"typescript": "latest",
"@theia/typescript": "next",
"@theia/navigator": "next",
"@theia/terminal": "next",
"@theia/outline-view": "next",
"@theia/preferences": "next",
"@theia/messages": "next",
"@theia/git": "next",
"@theia/file-search": "next",
"@theia/markers": "next",
"@theia/preview": "next",
"@theia/callhierarchy": "next",
"@theia/merge-conflicts": "next",
"@theia/search-in-workspace": "next",
"@theia/json": "next",
"@theia/textmate-grammars": "next",
"@theia/mini-browser": "next"
},
"devDependencies": {
"@theia/cli": "next"
}
} yarn --registry https://registry.npmjs.orgyarn theia build
yarn theia start /my-workspace --hostname 0.0.0.0 --port 8080
Thank you Theia for it project may help to programming in cheap environment I can found only in emergency situations.
Saturday, December 7, 2019
It is possible to find indirect dependacies
Yesterday in 3 hours I wrote a program that find assembly usages in my code. It is nice to have knowledge about classes I need to refactor to replace library to another. How this program works:
- Read all assembly types to check they are used in my code.
- Iterate all project .cs files.
- For every source file use CSharpSyntaxWalker to traverse to all nodes in AST
- For every node ask SemanitcModel to GetDecalredSymbol.
- Filter all informative symbols like a IPropertySymbol, IlocalSymbol to read type from it and resolve it from assembly I need to replace.
Thank you for Roslyn it works as expected and it is easy to extend to find indirect dependencies in code to know all places for refactor.
Subscribe to:
Posts (Atom)
debug magazine archive
71 jounals still available on issuu with great story of netlabels time. debug_mag Publisher Publications - Issuu
-
71 jounals still available on issuu with great story of netlabels time. debug_mag Publisher Publications - Issuu
-
ypyrohov Fiverr Seller I am software engineer .Net on Linux an...
-
This iportant option in Visual studio I started to use from 2004, in JetBrains Rider 'Always Select Opened File' option is located ...




















