Yvgenij Sharovskij.GitHub

scroll down

This is a placeholder site for my general GitHub account that gives an overview of some of my projects involving Java, C#, VBA, web design, databases, bash shell and R programming. This includes recyclable code that has been salvaged from other, larger, projects for repeated use elsewhere. Also included are notes from books, saved here for quick access and reference. Larger projects have their own GitHub pages, whereas smaller works, such as Windows PowerShell scripts and LaTeX templates, scarcely deserve their own pages and can be found on my main GitHub account.


The latest project is the Android Java app "N5 Kanji & Kanji Story quiz", which is available on Google Play. The JavaDoc can be found here.


This website itself is an example of current web design practices, and includes plenty of recyclable JQuery functions and SASS mixins, all suitable as templates for future websites. See the about section for the development notes.

Originally developed by James Gosling (c.f. wiki page), Java is the most frequently used programming language in the world (TIOBE Index, 2017). Java programs are popular for the distinct advantage of being platform-free by first being compiled into bytecode and then executed on the Java Virtual machine (JVM), which can be run on a multitude of systems.


Android and iOS development is often synonymous with Java programming, and this is also the main subject of the Java projects on this website, with specific focus on Android development, including Android game programming with OpenGL Embedded Systems (ES).

Java projects

This section is dedicated to VR projects. Aside from the WebVR N5 Kanji grid site, the focus here is primarily on the Oculus Rift VR. The main engine used is the Unity3D engine. Even though the Unreal Engine tends to produce better graphics than Unity, it is based on C++ instead of C#, which makes migration from Android Java relatively more laborious. Moreover, there is a myriad of (free) assets with easily implemented boilerplate available for Unity, which is something that UE simply can't compete with.


Having said that, I might migrate from Oculus Rift with Unity to another HMD and engine. I currently have the Oculus Rift CV1 (i.e., commercial version 1), which is getting somewhat dated as it does not integrate FOV rendering, Tobii eye-tracking with improved vergence accommodation, inside-out tracking, etc, — all of which generally results in poor performance and necessitates frequent asynchronous timewarp rending with calculated intermediary frames.


VR projects

VBA

VBA (Visual Basic for Applications) is the widely popular programming language derived from BASIC. VBA is first compiled into MS P-code, or packed code, as an intermediate language which can be used by a range of MS programs, the most popular of which is MS Excel. Other programs that can use VBA include all of the MS Office programs, as well as some non-MS programs such as AutoCAD.


The focus of the projects outlined here is mostly on MS Excel and Access.

VBA projects

Web design

One of the first books I had picked up on web design started with some JavaScript code to detect if the user browser was NN (Netscape Navigator) or IE (this abbreviation, for the time being, is still used). This was a time when most people had not yet heard about AJAX. My only tool for web design was the MS NotePad and all of the coding I did was by hand (technically, both of the hands). Several years later I attended web design classes in college, where I encountered Dreamweaver, which back then was still owned by Macromedia. And almost immediately after using Dreamweaver, I had just about lost interest in web design. The realisation was simple enough: web design could be reduced to point-and-click methods, without actually doing any of the coding.


Although point-and-click web design is even more simple now, and I've already made several web sites with WordPress and Adobe Muse, web design has also become more complicated, and hence more interesting. Cross-browser compatibility is the subject of thick books; and the advancement of the HTML5 shiv and CSS5 pre-processing with SASS may actually be called programming (in contrast to "actual programming") without forcing the next door Java developer to cringe at the mere thought of it. Moreover, OpenGL ES can be run in a browser as WebGL, and easily edited in Adobe Animate. And most exciting of all, the availability of cheap VR headsets is catching up with the development of WebVR.


On the other hand, some parts of web design haven barely changed. When I first started coding web sites, I used relative CSS tables for positioning. Nowadays, grids are used as a standard, ranging from the popular Bootstrap to the PostCSS-based "grid-kiss" which allows creation of grids with regular keyboard characters (literally, an "ASCII table"). All of this, and more, has re-focused my interest in web design beyond the creative part of it.

SASS templates JQuery templates Three-js templates

Databases

Originally developed in 1970s from tuple relational calculus, databases form an integral part of many companies as well as personal systems. The most popular relational database systems rely on MS Access with VBA, and SQL (Structured Query Language) on MS SQL server, Oracle and MySQL.


As SQL and VBA programming is relatively simple in the context of database management, this section mainly includes personal templates and schemas.

Database projects

#!/bin/bash

Bash (Bourne Again Shell) is the popular Unix command shell with its roots back in 1989. It can be combined with C-style programming, better known as the csh shell. And with the 2016 Windows Anniversary update, it is also available on Windows 10. As such, the popularity of bash is still increasing.


In this section are some bash scripts and notes based on the book "Linux command line and shell scripting bible" (R. Blum and C. Bresnahan, 2015), as well as other sources.

Bash projects

R

R was released by R. Ihaka and R. Gentleman (hence the name of the language) in 2000 under the GNU General Public License. R is a simple higher-level programming language intended for numerical analysis and it is most commonly used in statistics.


As such, R is the open-license competitor of MATLAB (matrix laboratory) from 1970s. Though early in their inception, R and MATLAB had some distinct advantages and disadvantages, the difference between R and MATLAB has become blurred over the years, and current user statistics for both MATLAB and R are about the same (TIOBE Index, 2017).


Note that, while the open-license distributions of R have lead to numerous, highly specific, custom user packages, due to the sheer nature of the R distribution license, it is not uncommon for reports to be rejected from publication in peer-reviewed journals. For this, and other reasons, MATLAB and other alternative statistical methods are to be preferred instead of R.

R projects
home home link archive archive link about about link