justinbentley.net - skillset
HTML/CSS/Bootstrap
HyperText Markup Language is a language used to format what a Web Page looks like, generally stacking rows of text/images/etc upon each other with different options such as color, position, borders and ofcourse what text and images you would like to display. It was the primary language created to display websites and can be used exclusively.
Cascading Style Sheets is a utility to add classes to html formatting options, its function is really so that instead of writing in every HTML block format definitions such as font-style:italic; and border-style: ridge; you can just add the CSS class name you created.
Bootstrap is a very common extension library for HTML. Bootstrap is most commonly used to create columns of a selected size in a HTML row, while that upon itself may not be very difficult, boostrap will automatically adjust the size's and positions of the elements between full sized computer monitors and mobile telephone displays, this is known as responsive web design.
Both my .Net Framework sites justinbentley.net & dennisbentley.net are built using HTML, CSS & Bootstrap although react.justinbentley.net, arcaneww.com & jbn.ai (which are .Net Core) elect not to use Bootstrap and use CSS Media Queries & some accompanying Javascript instead.
I was taught the basics of these three skills at University of Canberra although upon the creation of the previously mentioned websites I have mastered them and aim to excel.
This website also contains a page I wrote specifically about HTML at justinbentley.net/skillset/html.
Asp.Net MVC
Asp.Net is Microsoft's implementation of web page creation.
MVC is the Model, View & Controller pattern.
This pattern equates to a Model (written in asp.net C#) that;
Defines and stores all the working variables
Calculate's and performs all the logic (generally)
Communicates with a SQL Database (securely)
Takes care of all it's housekeeping
And the Controller (asp.net C#) which;
Defines what, where and how Models and url requests can be passed through between the Model and the View
And finally the View (HTML, CSS, JS, Razor asp.net C#)
Which is where the Model (or Model-less and directly inputted HTML data) is defined to be formatted on-screen.
justinbentley.net & dennisbentley.net are built using the (Microsoft© Asp.Net) Model, View, Controller pattern.
The Data is contained within the Model, the passing and routing is contained within the Controller & the Visual's (or the UI) is contained within the View.
ReactJS
Otherwise simply known as React although not to be confused with React Native (which is used for Applications and Mobile as opposed to ReactJS' web).
React is a new web technology producing Dynamic website's as opposed to traditional website's known as Static, the difference between the two is that Dynamic websites redraw the webpage using conditional HTML components.
My other site react.justinbentley.net is completely a Dynamic ReactJS site although dennisbentley.net/gallery/sydney is a traditional Static .Net site with React attached just for the Sydney section.
C#
C# is a logical programming language like any other, its a comparatively high level language though thats a story in itself. C# is also the language of Microsoft Operating Systems and Products (in a nutshell) superceeding C++ in ~2002.Used to program computers to perform any sort of task, perform calculations and create (potentially) any sort of Computer Program anybody is familiar with such as Microsoft Word. It's also the language that performs the logic (ie SalaryCalculator calculations and bracket retrievals including interfacing with SQL) and the main back-end language that I am creating this website in.
C# was one of the main focus' at University of Canberra.
It was one of the languages used there to learn the basics of Programming and while I was there I used this language to create Forms, Console Apps, AI Interfaces, 2D Games (justinbentley.net/uni/gpt) and backend .Net development.
Since then I have further focused on this language creating a variety of Programs such as a Tax Calculator (which was subsequently ported to justinbentley.net/salcalc) and naturally backend .Net development for the justinbentley.net series.
JavaScript (JS)
JavaScript is a fun little language designed specifically to interact with HTML and in the case of asp.net the View (though it can manipulate data that is passed back to the Model). HTML has only so many commands and functions that it offers as its primarily a layout language therefore if you wish to create fantastic webpages that do all manner of unique things (like my custom buttons in SalaryCalculator) then JavaScript is for you. JavaScript can operate on HTML on whats called a lower level, ie HTML has been brought to you offering higher level functions that the developers of HTML have created from their own lower level functions. Ergo, on a (mega) simplistic sence JavaScript allows you to create your own advanced HTML functions and all in all allow you underlying access to all of the components of a HTML web page.Keeping this in mind JavaScript is also used to have the View perform functions and change its state without having to be returned to the Model.
JavaScript is used sporadically throughout react.justinbentley.net and dennisbentley.net/gallery/sydney to perform special or functions unaccomplishable by use of HTML, CSS and/or Bootstrap alone.
Pages within dennisbentley.net/gallery (with the exception of Sydney) use JavaScript to dim the background.
Among other things, justinbentley.net/salcalc uses JavaScript to operate the custom buttons (ie Calculate Super) and the navbutton (or the three bars in the top right corner, of the entire site) use JavaScript to have the three bars act as one and set the height of the black nav background to the footer.
Also, react.justinbentley.net is built almost entirely with it.
SQL
SQL is the language of databases. Databases allow you to store data in tables and are a whole different entity to this asp.net program, though they communicate and work in harmony with each other. SQL is used for all database work, creating tables, creating databases, querying databases for entries/records, updating records, changing the format of a table, requesting a procedure. Databases have the advantage of allowing you to fetch and store data for dynamic fields, ie this field (or block of text) that your reading now could be stored and retrieved from a database and that would have the effect that it could be changed at any time over the internet using a interface on this website and the changes would be reflected from then on.
Admittedly, SQL and Database operations is one of my favourite tasks (perhaps due to many years of delving deep into the Microsoft Operating System).
I was taught SQL at Uni though really a bit of an overview, then after entering the industry it became one of my main tasks. I have learned everything (applicable) about this language and fulfilled many complicated customer requests using it.
Also, justinbentley.net/social/vlog is in sync with a SQL database I created in full on my AWS Instance (feel free to leave a message ☺️)
SQL Security
SQL Security is a very important task. You cant just willy nilly create a website, fire up a database and open it up for input from the ouside world without very carefully studying your implementation, taking a wide array of proper precautions and having a broad view of what can happen, and just to be safe, a backup. All in all, why? because if you dont people can easily hack your database, take control of it, delete everything, steal everything and do whatever they really like with it. If no thought is put into it someone else taking control of your database is an extremely elementary task.
I have invested a lot of time learning about SQL Security, have become familiar with many guidelines (ie OWASP) and incorporated some measures using my own initiative (though they are probably not as original as I would like to think).
Without going into too much detail as to how it works, I would consider it a great dent to my pride if justinbentley.net/social/vlog was left vulnerable and insecure and especially so if an 'elementary' mistake was made.
At minimum I can guarantee justinbentley.net/social/vlog is immune to Injection, XSS, Overflow, Corruption and Impersonation and I have thoroughly tested it myself.
Razor Syntax
Razor Syntax has the ability to inject C# code into a HTML View often producing HTML code. This includes helper C# functions, programatic access to the Model and a template loop for each object and/or variable in the Model. By definition Razor is a Syntax for HTML generation exclusive to .Net.
I cant express more how much I love Razor Syntax, Vlog is obviously object based and so is Skillset (this page), Security and HTML. That means I can design one block / template (ie Vlog Message) in HTML in the View and using Razor I throw it in a Foreach for each entry in the Model. Therefore the View for Security is about 20 lines long, which is sensible for more than just convenience.
SEO
SEO or Search Engine Optimisation is about obtaining a high rating through means such as having a high Accesability score, valid meta descriptions, https, efficient loading and resolving common errors and this will serve to place the website "higher on the list" of a Search Engine (for instance, Google) query.
Otherwise known as Search Engine Optimization. I use a tool called Google Lighthouse, it is inbuilt with either Chrome or Edge, for even more valid results I use Chrome in a clean Linux distibution. Almost all of my webpages score 100's in all four categories (some slightly knocked back for contrast issues though minimally and for my personal sites I consider it a small price to pay) and this tells me that at a minimum none of my sites will be penalized in a search, so its safe to say that my sites have a high SEO though no-one truly knows as the algorithms are a secret.
Beyond that I also make sure that the keywords and descriptions are accurate, after all there's no point trying to be found as a Website Developer when Google thinks your a Proffesional Gardener.
Accessibility
Accessibility is about optimising a website to be accessibile to those that do not posses all the functions of a regular person, or elect not to use them. The main example that I have seen is of the blind using screen readers as opposed to visualy reading the site or someone having the site read to them through headphones while focusing on something else.
All my sites have perfect Accessibility (according to Google) endeavoring to have descriptive text on buttons or an aria value to substitute and alt descriptions for images or a title for an iframe. This improves the experience of my sites to those using a screenreader.
Java
Java is a lanuguge that is almost identical to C#. Originally created by SUN Systems which is now Oracle. Java came before C# and unlike C# is not Windows specific, infact the main advantage of Java is that it can run on everything. As long as your system can install the Java Compiler then your system can run the Java program that has been built.
Similar to C#, at University of Canberra Java was taught to learn the basics of how to Program.
While at Uni I used Java to create Console App's, Graphical User Interfaces and Android App's using Android Studio (in Java).
C++
C++ is an older language created by Bjarne Strostrup in the early 80s. For the most part it encapsulates C offering extended functionality namely Object Orientated Programming Classes hence its original designation 'C with Classes'.C++ is one of the more difficult languages as it does not have the higher level functions and inbuilt housekeeping of a language like C#. For instance if you instanciate a class (create an object) in C++ and forget to implement the delete function that object will continue to take up memory (RAM) until a computer reset (no longer a shutdown) is performed, whereas in C# the garbage collector will simply do that for you. That said C++ creates an executable binary file as opposed to C#'s bytecode which has to be compiled as its run (though C# calls many of windows already compiled functions, probably written in C++) which makes C++ much more powerfull in comparison and all if not almost all High Performance programs and 3D software is written in it. Though every language has its purpose and a bytecode type language is not only much faster to write and beyond less liable to crash the computer but also has an element of security to it being run in a virtual machine.
At Uni I invested an enormous amount of time in C++. I was taught C in a preceeding unit and then after that I was taught C++ in combination with 1990's OpenGL. I gave it all I had and created very vast 3D worlds with a lot of intertwining logic. After the OpenGL unit (VIC) I repeated it with the final project (ICTP) where I did almost everything a game studio would of done (of about a 2008 era, engine and some content wise) in C++ (and OpenGL & GLSL, OpenGL Shading Language). Succeeding that I created a lot of personal projects in C++ to both serve as a utility and to perfect my skills. C++ has taught me most of my general programming and Computer Science knowledge which has subsequently translated to other languages.
C
C was created in 1972 by Dennis Ritchie to simplify the even more labourious task of writting a program in assembly or machine code. It is also the code you write in C++. Comparatively C more relies on ones logic skills than newer languages that have inbuilt higher level functions that take care of common task for you and is preffered by the embedded processor industry due to needing as little electronics as required.

Take C# String.Replace(" ' "," "); for instance; say you want to eliminate old pesky O'Reilys apostrophy from breaking your carefully crafted SQL string query (fyi static paramatized stored proc's are better) by eliminating his apostrophe and turning it to whitespace.
In C there is no such thing as a string, alternatively its represented as a char[] array (which is actually a pointer, and the last element in the array contains '/0' the null terminator bit). You will need something along the lines of a for loop (and luckily there is a C function to calculate the length of a string called strlen() to set the bounds)to loop through each char one by one and perform a function such as this;

char oreilystring[8] = "O'Reily";
for (int i = 0; i < strlen(oreilystring); i++) {
. if (string[i] == ''') {
. . string[i] = ' ';
. }
}

pretty simple right? ;)
C was the first programming language I was taught. It taught me the basics of for-loops, if statements etc. It was an enjoyable language and alot of those skills were subsequently transferred to C++. At Uni we made a lot of fun C Console App Programs including a fully functioning traditional company payroll program.
OpenGL
OpenGL is a graphics API that runs under C or C++. It is primarily used to render a 3D world to an image displayed on screen.

OpenGL was originally created by SGI (Silicon Graphics Interactive). It was a library created for dedicated SGI graphics worstations to create CGI (Computer Generated Images). It was the dominant if not exclusive way to create CGI from the early 1980's and responsible for the CGI of Star Trek and notably Termainator II to name but a few for that period. Eventually the Personal Computer 3D Acceleration Card started to become available to the public, which is not to be confused with the Personal Computer Video card with which it replaced which was solely a video output card with no graphics processing ability of its own whatsoever. This eventually became known as the modern day GPU or Graphics Processing Unit and was marketed by companies such as ATI (now merged into AMD), nVidia and 3DFX. At some point in time these GPU's started to ship with OpenGL and DirectX (Microsoft's OpenGL clone, very similar but a bit different and was/is somewhat superior on Windows based systems) directly written into the hardware which was far superiour than processed by software or a CPU and included thier own dedicated RAM and sub-processors to boot. This made GPU's very powerfull and focused on rendering 3D (and inherintly 2D) Images and Video. In an odd twist of fate the way that parallel pixel lighting calculations are performed (Matrix Mathematics) a GPU can be programmed to perform only similar types of mathematics and they are equally powerfull at that and one example of that is Bitcoin mining.

At Uni I became an expert at OpenGL, 3D Worlds and Personal Computer Gaming utilising C++. I was taught the older version of OpenGL (Version 1.2) in the unit Visual & Interactive Computing (VIC). I took it upon myself to learn the new version of OpenGL which is fundamentally different to the old version in order to fulfil the creation of the VR Tai Chi Simulator for the ICTP Unit (justinbentley.net/uni/ictp).
GLSL
OpenGL Shading Language is a cut down version of C, not only that but its sent to the Graphics Processing Unit (GPU) as a string.
Due to being created and sent as a string there is no debugging support, or intellisence and the only feedback you do have is "Shader Compile = 0" or "Shader Compile = 1" and thats if you program it in.
The GLSL C based Shader written is a small (but very complicated) program designed to be executed and run on the GPU and link with variables operated on by the CPU (sent as varaibles to the Shader, as Uniforms), Video RAM and other Shaders. Its use is to specify how the GPU handles Movement (translation's), Lighting, Texture Mapping and Special Effects.
In order to fulfil the VR Tai Chi Simulator (justinbentley.net/uni/ictp) for the ICTP or Final Project Unit at University of Canberra I had to learn the latest version of OpenGL and that included GLSL, or OpenGL Shading Language.
OpenVR
OpenVR (openvr.h) is an C++ API (similar to OpenGL) thats primary task is to create an interface to access and control every specific VR device on the market, with a universal API. In other words one could create a Program in C++ and OpenGL/DirectX and not have to write specific code for specific VR devices and in the case of the HTC Vive there is only openvr.h . It was originally created by the Kronos group (which was once the OpenGL Architecture Review Board) but it is now controlled by Valve Corporation and integrated into Steam. Without further ado using OpenVR you can retrieve the co-ordinates of the headset and the other VR devices (handsets), send rendered video (in my case OpenGL) to be displayed on the headset, retrieve the status of the buttons on the controllers and send commands to the haptic feedback unit and assorted other related functionality. Not particularly as much of a walk in the park as one would think and accesable documentation is minimal, the best way to understand it is to reverse engineer the examples (as I did) though most people dont have to face this challenge as they simply use the Unreal Engine (or perhaps Unity) and that takes care of this all for them. With OpenVR and a little effort one can make their 3D Game or Simulation useable through Virtual Reality.
For the final University project, the Virtual Reality Tai Chi Simulator I submitted was connected through VR using this library.
Motion Capture
Motion Capture is the recording of motion. For instance you could have a human set up to be captured and perform routines such as walk, jump and crawl. At this point in time you would record the XYZ positions of his/her hands, elbows, knees, etc and capture/record the data. Upon completion of that you can create a human (or Ork if you were keen) virtually using a computer and you would connect the joints of that virtual being to the recorded data. Therefore, you have a virtual being of your creation that walks like a human (and in my case I created a Tai Chi master who's routines you could follow).
In my VR Tai Chi simulator I set up a function to record hand movements and write them to file. Luckily my brother knew someone who was fluent with Tai Chi therefore I recorded his routines. In the final product I replayed the routines together with an actual player therefore there were the Tai Chi masters hands with which you could follow and a score was calculated as to how close your hands followed his.
BASIC
BASIC was build in the 80's by Microsoft and was a very popular language to be taught at school at the time. It was also the language of a very popular device at the time (and for some people, still to this day), the Commodore / Amiga and their varients.
Admittedly, I learned BASIC in a space, shipbuilding mmo (Starbase). Although, which was actually to my surprise, the language just seemed to have so much soul, I really liked it. It wasnt really much different to any other language despite syntax variance, for instance IF-THEN-ELSE-END with one exception, GOTO and line number format and it was a total blast creating loops in that way, despite the frequent line cut/paste'ing.


I remember in Starbase there was no ABS() / absolute subroutine although they did guarantee three points of precision and as it turned out only three, so no challenge there INT = ((INT / 1000) * 1000) anything to get the job done right ;)

And if that hasnt kindled any disinterest (my apologies) then you can view some of my BASIC here;
Autogen - basically an alternator regulator
Autolander - lands the spacecraft using distance from the four painters (below)
Landing
Landed
Computer Science
Computer Science is the study of how Computers operate from the lowest level of the Program Counter, Registers and if your lucky enough the Direct Memory Access controller to the higher levels like the Operating System Kernel.
At Uni we were taught the theory behind how Computers operate, that coupled with decades of personal research, proficiency in C, knowledge of Hardware (Computer Components), programming GPU's, fondness for computer games and seeing things evolve through the generations I have acquired a solid understanding as to how Computers operate from the ground up.
Electronics
Electronics are the small components that collectively make all things electrical such as Televisions, Mobile Phones, Computers and nifty home inventions. This is acomplished by a circuit of small electronic components such as transistors (once vacuum tubes), diodes, resistors, switches and power supplies.
I elected to take all units in this field at Uni that I could such as Introduction to Computer Engineering (ICE). After that I have acquired a wealth of knowledge from Uni and combined with personal knowledge and interest I have the capability to make small gizmo's, utility(embedded) devices or perhaps a Robot.
Artificial Intelligence
Artificial Intelligence is essentially the ability of a computer to perform a function that one would think they are not capable of with the assistance of complex Software.
(coming soon)