Notes about a website and apps
Tags: java, webdev
Published: 2022-12-23 15:36:36

As a software engineer you encounter various things - technologies for sure. As you learn, you also want to try those and share and show those. This is part of the experience. This post is about one such experience. This has various aspects and lets see what they are.

Back in year 2012, I was studying to upgrade my Java programmer certification to Java 7 (this certification was conducted by Oracle Corporation and was known as OCPJP). It was a challenging toipc. Java had included many newer features in Java 7 -  newer language features, NIO 2, improvements in JDBC and concurrency. The topics were huge. I had to write lots of sample code for learning the features. My learning references were Java Language Specification, Java API docs and other online references. I was not using any preparation guides, but I had some prior knowledge of Java programming.

After completing the exam, I had to do something with all the material and the exam experience. I had this idea that I can share some of this with other Java programmers. So, this idea developed into a quiz app. I went on to create some quiz data, and wrote a Java Swing desktop app. The app was a quiz app. 

How do I share this app with others? 

After some research, I wanted to create a website and share this app. The result was a website hosted on a Java enabled webserver. The desktop quiz app was deployed as a Java Web Start application. Java Web Start technology allowed deploy a Java desktop app on a Java enabled webserver and have the app invoked on a website as a link.

The app was called Java Quiz Player.

Next, I went on and got a domain "javaquizplayer.com" for the website. It took sometime to figure the name and it sounded alright to me. I also found a Java webserver hosting provider to deploy the website and the app.

Finally, I had the website online on 1st November, 2012. It was a basic website with one page and with a few lines explaining the website and the app. It had one link to start the app. It was also the first time wrote HTML and CSS. To run the app you needed a JRE (Java Runtime) on your computer. 

I went on to share the website link on some of the online forums and hence fulfilled my idea about sharing.

The website was http://www.javaquizplayer.com. The first installment of it looked like this:


![Picture of javaquizplayer.com website on November 2012](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/59qxj1esesfl10ts76j4.png)

Another thing I did was to get a copyright registration certificate for the  website content as well as the computer programs.

---

Further in year 2013, I started writing few blog posts on my website. 

Now, the website had more than one page. This was followed by an online Java quiz as a web app. The online quiz app was a Java web app written using Servlets, JSP, HTML, CSS and JavaScript. The website itself was self built with HTML4 and CSS.

As I wrote more, I was sharing these posts and quiz with other forums. It was a rich experience for me. Experience to create, learn, improve and share.

In year 2016, I started writing some demo desktop apps with detailed articles explaining the complete development of the apps. The apps were mostly Java Swing or JavaFX for GUI and database for storing the app's data. The databases included H2, HSQLDB, Apache Derby, MongoDB and used JPA, Spring JDBC, etc., for data access. These were posted as Examples on my website. There were more blog posts including some Java EE related articles. 

I also started writing on other websites and forums.

As part of my programming journey, I was also attending various meetups held locally. These were on various technologies and Java  was one of my favoured topic. At one of the meetups in year 2016 or 2017, a Dr. Venkat Subramaniam made a presentation on Java 8, Functional Programming, its features, advantages, usage, etc. It was a great presentation, I was impressed and taken to Java 8 immediately. 

Thus, I started learning functional programming, not of Java, but using Haskell. After a couple of books and some coding I was confident about functional programming. Now, I started learning Java's functional programming features - the streams, functions, lambdas, method reference expressions, their application and usage in collections, file IO, etc. Then, I took the Java 8 upgrade certification successfully.

That done, I wrote a quiz cards app. The content was the Java 8's functional programming topics and related features as I had studied for the Java 8 certification. It was JavaFX GUI app and was deployed as a Java Web Start app on my website. The app was called as Java Quiz Card Player. This was in September 2017.

Since then, I had couple more articles and some refinements (HTML5 and better CSS is one of them) for the website and its content. The website's landing page as of now:

![Picture of javaquizplayer.com website landing page as of December 2022](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vm69vndhhdjv778hx16k.png)

---

It was interesting for me to look back some ten years before and noted that lot of things happened during a website and its content. 

Functional programming along with Object-Oriented capabilities makes Java a versatile programming language to learn and use. Also, notably the newer programming paradigm like Reactive programming is applied to Java too, the RxJava, and I came to learn little bit of that too.

---