Saturday, December 12, 2020

I can print checklists all the winter wit 18usd Epson.

I bought Epson LQ-100 and two cartridges and in free time I am investigating for does it work. I think cartridges capacity will be enough  to print work checklist all the winter. To spend less ink I moved to print directly with hardware fonts available. To do this on windows:

1. I setup printer from list provided by Microsoft.



 

2. Enable printer pooling from LPT1 to my virtual usb com port. This helped to use command line to direct print through LPT1, it is very fast and cheap.

3. Setup LPT1 in console to my printer.

net use lpt1 "\\localhost\EPSON LQ Series 1 (80)" /persistent:no

4. Print "Hello Word":

echo "Hello Word" > lpt1

Sunday, November 15, 2020

Strings similarity according to longest subsequence

 My checklist sometimes  have been changed and when I set some attributes to steps, I need to properly merge new description with existing attributes. But  this is only a text and I want to recognize it is new step in check list or updates to existing. For example

Step1 instruction

Sterp2


I want to change to:


Step1 instruction details

Step2


Then, of course, Sterp1 details is replacement for Sterp1

Metric Longest Common Subsequence from java-string-similarity package helps determine text distance:


MetricLCS lcs = new MetricLCS();
double current = lcs.distance(
"Step1 instruction",
"Step1 instruction details");

current: 0.31999999999999995


How it looks integrated in bot core:



Its promising when my checklists  started to archive changes in working process automatically.

Thursday, October 1, 2020

Setup Microsoft Bot Framework in Oracle Linux

 Here is a important good news for my ongoing project, I have Bot UI for it directly from Microsoft on my linux. And of course, thank you for this great setup post.

 

Prerequisites are:

sudo yum install libsecret-devel

npm install --save-dev electron-rebuild

sudo yum install openssl

sudo npm install -g yo generator-botbuilder 

Download emulator release

chmod 700 BotFramework-Emulator-4.10.0-linux-x86_64.AppImage  


Create bot:


mkdir myBot

cd myBot

yo botbuilder

cd ypbot/

npm start


Then my bot started:


Run emulator with command:

./BotFramework-Emulator-4.10.0-linux-x86_64.AppImage &



Open bot with url http://localhost:3978/api/messages 


Say hello to your bot



Sunday, September 27, 2020

Categories and tags knowledge base for local files

 I had planned to write utility to store documents metadata, stumble upon an kb, a text-oriented minimalist command line knowledge base manager. Let's imagine you have a lot of text and graphics in your system, you need to classify to quick search on it. These documents are known as artifacts, because they all add hyper map to your knowledge then you can obtain it in time, because you know a category or even tag. In my experience, work knowledge base contain thousands of documents and searching with this type of invisible markers make data extraction possible and in many cases incredible fast. So that, how to install KB in Oracle linux:

curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
python3 get-pip.py
pip install kb-manager

On ubuntu 20.04

sudo apt install python3-pip

pip3 install kb-manager


Then, kb is located in ~/.local/bin

Saturday, September 26, 2020

.NET Core debug, and UML diagrams on linux Visual Code

There is an important to debug .Net Core programs under linux. I thought it's should be different setup for linux OS, but no, thank you for Pluralsight article one sequence for every OS:


1. Add .NET Core Extension Pack.

2. Press Ctrl-Shift-P to open shortcuts to find .NET: Generate Assets for Build and Debug

3. Then use debug pane



I hope debug will help to finish program writing  quicker and then you want to writer documentation using UML diagrams. As for me it is hard to draw UML with vector primitives, it is better to utilize PlantUML

 Extensions to auto generate  uml class diagrams from project code:


1. CSharp to PlantUML - this help to generate all classes in separate .puml files, then you can copy it to your diagram instead of write from scratch

 


2. PlantUML - this extension helps with intelliSense and preview.



You need to install graphviz in your system too.

Its looks like we have ere of Visual Code for linux workspaces for most of languages!

Friday, September 18, 2020

Utils in Graphviz package

 There is a list of utils in graphviz:


acyclic - make directed graph acyclic
bcomps - biconnected components filter for graphs
ccomps - connected components filter for graphs
circo - filter for circular layout of graphs
cluster - find clusters in a graph and augment the graph with this information.
diffimg - Calculates intersection between two images
dijkstra - single-source distance filter
dot - filter for drawing directed graphs
gxl2gv,gv2gxl - GXL-GV converters
dotty - A Customizable Graph Editor
edgepaint - edge coloring to disambiguate crossing edges
fdp - filter for drawing undirected graphs
gc - count graph components
gml2gv,gv2gml - GML-DOT converters
graphml2gv - GRAPHML-DOT converter
gvcolor - flow colors through a ranked digraph
gvgen - generate graphs
gvmap - find clusters and create a geographical map highlighting clusters.
gvpack - merge and pack disjoint graphs
gvpr - graph pattern scanning and processing language
lefty - A Programmable Graphics Editor
lneato - A Customizable Graph Editor
mm2gv - Matrix Market-DOT converters
neato - filter for drawing undirected graphs
nop - pretty-print graph file
osage - filter for drawing clustered graphs
patchwork - filter for drawing clustered graphs as treemaps
prune - Prune directed graphs
sccmap - extract strongly connected components of directed graphs
sfdp - filter for drawing large undirected graphs
tred - transitive reduction filter for directed graphs
twopi - filter for radial layouts of graphs
unflatten - adjust directed graphs to improve layout aspect ratio
vimdot - Combined text editor and dot viewer 


I retrieved it with yum util repoquery:

yum -y install yum-utils
repoquery --list graphviz

Of course, I started with dot for me, but pretty look for all available capabilities in grapviz too.

Simple scenario is a image from dot file:

digraph {
    a -> b;
    b -> c;
    c -> d;
    d -> a;
}

I took this graph from examples. It is easy to generate such graph in C# code today. Then I want to convert it to image, I found this  command:

dot ./1.dot -Tpng > ./1.png




Tuesday, September 15, 2020

Grayscale view for Gnome in Oracle linux

 I think, a lot of us want to concentrate on their pc work and especially for me colors are distraction. It is easy do disable color filters on Windows, but it is also possible to disable it and make display graysacle in linux too. There are commands to add 'Desaturate all' to gnome shell.


yum install gnome-tweak-tool

git clone https://gitlab.com/JanMa/desaturate_all.git

mv ~/Downloads/desaturate_all "/home/eugene/.local/share/gnome-shell/extensions"

Alt + F2 then r to restart DE

Enable Desaturate all extension in Tweaks app.

Use small 'three circles' icon on the right top corner to enable grayscale.




Sunday, September 13, 2020

What I stadied with one year O’Reilly Learning

 It is clear for me, all publishers take their tiers in education process. And O’Reilly is not a beginner in understanding of computer science subject. So that, I can recommend to use publishers as the stairs for unknown technologies or theory and final stair is  O’Reilly. In a year I read 20 books, participate in 2 online training and the learning path. The most important thing for me was to realize that there are people who think like me and these people are experts. I can learn logic and pragmatism from them.

This is my recap from Learning Path: Graph Algorithms, By Mark Needham

1. Using a special framework, such as spark, allows you to focus on selecting a method to solve the problem and quickly determine the correctness of the idea, instead of guessing the only correct approach.

2. The importance of linked data is difficult to override, because the collected relationships allow further use of very simple decision-making algorithms. This means that relationships are a step towards simplifying decisions.

3. Determined algorithms are characteristic of generalization, and they cannot always find solutions for small groups in a variety of settings, but they allow you to see the big picture. Probabilistic solutions can improve the overall picture.

4. The graphs above the graphs and the super category are the key to determine the initial solution path, and these structures can be distinguished from the data.

5. It is the iterative approach in determining the desired algorithm, rather than a single selected approach, that allows you to achieve a solution that will reliably solve the problem, thus experimenting and making conclusions, this is the key to creating reliable solutions, instead of a completely theoretical approach.


Thank you, O’Reilly Learning for this year with me. 

 

   

Friday, August 14, 2020

Setup Visual Graph Editor in Oracle linux

 Thank you for simplified installing process with snapcraft I can install QVGE for my new Checklists project, I need to architect.

It might be expensive to setup yet another package manager to install one app as same as install second game to a system. I copy scenario from snapcraft here:


sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm sudo dnf upgrade

 

sudo rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
 

sudo yum install snapd

 

sudo systemctl enable --now snapd.socket

 

sudo ln -s /var/lib/snapd/snap /snap

 

sudo snap install qvge

 

Where to find QVGE then:


/snap/bin/qvge  



This graph editor is very promising for every day modeling. I got memory errors with graphviz conversion and opening, I think, I need to wait new version, but nearer graph editor gephi is more scientific and not adopted to manual work with graphs. 



I also should recommend yEed Graph editor, it can be used for prototype product features through multiple components. It is really easy to draw feature vision directly on the meeting.


One I know about these great graph editors, they are producing very complicated files for diagrams. To integrate editor in program flow, I found TikZit is winner. Take a look on this file:

\begin{tikzpicture}
    \begin{pgfonlayer}{nodelayer}
        \node [style=none] (1) at (1.5, 4.5) {};
        \node [style=none] (2) at (0.75, 0) {};
        \node [style=none] (3) at (-10.5, 5) {dd};
        \node [style=none] (4) at (1.5, 4.5) {ss};
        \node [style=none] (5) at (3.5, -3) {};
        \node [style=none] (6) at (0.75, 0) {asdf};
        \node [style=none] (7) at (-6.25, -0.5) {asdf};
        \node [style=none] (8) at (-0.75, -2.25) {};
        \node [style=new style 0] (9) at (-7, 6.5) {};
        \node [style=new style 0] (10) at (-3.25, 5.5) {};
        \node [style=new style 0] (11) at (5, 8.25) {};
        \node [style=new style 0] (12) at (9.5, -1.5) {};
    \end{pgfonlayer}
    \begin{pgfonlayer}{edgelayer}
        \draw [bend right] (3.center) to (7.center);
        \draw [bend right] (4.center) to (7.center);
        \draw (4.center) to (6.center);
        \draw (6.center) to (8.center);
        \draw (6.center) to (5.center);
        \draw [style=new edge style 0, bend right=315] (8.center) to (7.center);
        \draw [style=new edge style 0, bend right=75, looseness=4.75] (9) to (10);
        \draw [style=new edge style 0, bend right] (10) to (11);
        \draw [style=new edge style 0, bend right=45, looseness=1.25] (11) to (12);
    \end{pgfonlayer}
\end{tikzpicture}

This elegant markup can produce two vertices with curved edge.




Friday, May 1, 2020

Ultracheap Pascal gpu on Oracle linux

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.




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

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:


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.

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

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:
protected override void Up(MigrationBuilder migrationBuilder)
{
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=MEMORY

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.

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

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:












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

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.


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

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.

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/46f836ee257e57280b1bac56c5164f65dcfcfbbe/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/46f836ee257e57280b1bac56c5164f65dcfcfbbe/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/46f836ee257e57280b1bac56c5164f65dcfcfbbe/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

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.
From Software Engineering Code of Ethics and Professional Practice[4] (IEEE, ACM):
  • 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.




debug magazine archive

  71 jounals still available on issuu with great story of netlabels time.  debug_mag Publisher Publications - Issuu