Sunday, April 3, 2022

Retirement was not what I thought!

I thought I would have tons for time and energy for reading, writing to this blog and getting my website brainycode.com together. I did not do the reading I planned in fact I have decided not to plan so much on what I should read and when, etc. Since I wrote my initial reading list I only read one book in one week and that was such an effort that I strained my eyes and could not read anything for two weeks afterwards. Moreover, the book I read was NOT EVEN on the original list of books to read!

I did love the accomplishment – reading a 400 page technical book in one week. The book was “Modern Full-Stack Development – Using TypeScript, React, Node.js, Webpack, and Docker” by Frank Zammetti. Since I don’t own the book and was following along as I read from OReilly Learning I managed to take over 164 pages of notes. The book was 12 chapters covering setting up Node.js, using npm, React, TypeScript, using Webpack, and Docker. There are two applications that are built – MailBag and BattleJong. The book would have been better if the reader was given step-by-step instructions and a deep-dive into every module used. I do realize that would require a 1000-page book.

I understood the MailBag application more but I felt there were so many things I would have liked to explore in more depth, SMTP and IMAP protocols and how to set it up using something like gmail (since anyone can get an e-mail address). The UI looked terrible so a bit more time with maybe material design or some cool UI tool would have been nice. I was able to build this application was not happy with the many modules we used with no real understanding. The second application BattleJong was a version of Mahjong which I did not know how to play. I could not get my personal version of the project to build I had to resort to using the book’s version in github. The book is dated now with React having moved to using Hooks rather than cluttering a project with functional and class-based components. I will be honest – I rushed the second project since it would have required more time and energy than I could spare by the end for the week to understand how everything was working and my eyes were failing. I am sure I could figure it all out. Again the book used modules it did not get into much discussion on how to really use. I am thinking of re-doing a version of the approach minus the TypeScript and taking into consideration that gmail will no longer access from remote apps using just login and password so an alternative approach should be explored.

In so far as writing this blog – as you can see I took several months off due to completing a Coursera course on React, learning Bitcoin, etc. It has been a disappointing three month of retirement. So what’s next for me? I actually get out of retirement some day this week. I am returning to my old job but now as a contractor. I am looking forward to it actually. Hopefully, I will find time to write a bit more and share what I am learning here or at brainycode.com.

Wednesday, January 12, 2022

REALITY CHECK

It is not possible for me to do 4 distinct activities for 2 hours a day. Why?
  • I take a break every 30 minutes (using alarm) So that a 2-hour activity actually takes over 3 hours (includes the break time)
  • I don't have the energy
I don't have the mental or physical fortitude to expend 8 hours of study or work time on four different things. This is a surprising admission. I have decided to build up to it. For now I will be okay with 2-3 areas of study in a day. I will fill the other time cleaning, organizing, reading trashy novels. For today I managed to do the reading (of a technical book) and working on Coursera course (I completed all the Postman tests for Assignment #2). It took hours to complete. There are over 30 APIs in the Confusion Server API.

Sunday, January 9, 2022

Younger Self vs Me Today

Programmer: Younger Self: I can code that up fast and understand the details later.

Me Today: I need to study and understand how things work, then I will code.

Me Today: Gosh I am so slow at this.

Younger Self: It may not be the best way and I may not understand everything but it works.

Me Today: It is the best way and I can prove it. Oh, it works and can be easily changed.

Younger Self: Show off!

Me Today: Gosh I am so slow at this.

I am a bit disappointed at my progress though my Coursera course – Full Stack Web Development. I have taken 3 weeks off from starting my third assignment. Given it’s complexity I thought it best to learn how to automate testing using Postman. Somewhere along the way I managed to break my program. I also discovered that course did not address logout with JWT (Java Web Tokens)! I then found a 6-hour video course on you tube User Authentication in Web Apps. The course did a good job in certain areas, for example, explaining how Middleware works in Express and cryptography concepts used for JWT. The course I felt did not take advantage of the parts of Mongoose and Passport to create and process the things it did best. It seemed that we programmed a bit too much and did not take advantage of existing modules and/or methods. I may be mistaken on this but a review of the Coursera Week #3 will confirm my suspicions. Bottom line – no one course will perfectly teach the material but going through different presentations of the same material is worthwhile.

I am a bit disappointed that I have made little progress in my book reading schedule. When I started “Love for Lua Game Programming” the first chapter stated an expectation of knowledge with Lua – which I did not have. So I started to read a book on O’Reilly Learning Beginning Lua. It took longer than it should have to figure out how to install Lua on my Windows machine. It is a bit off putting to have to download things from github repositories! It just felt a bit informal – like the old days when I went and downloaded and installed stuff I found on the Internet. I hate doing that.

For the second week of retirement, I plan on scheduling my day a bit more (except Sunday which is catch-up day or just planning the week day). Rather than doing one thing for too long so I get slower and slower at it I plan on splitting my day into four two-hour activities.

  1. Reading a technical book (8-10)
  2. Coursera course (10-12)
  3. Game Programming – Working on Lua and Love (12-2)
  4. Electronics – Arduino (2-4)
If I feel up to work in the 6pm – 10pm range I will read fiction or write.

Friday, December 31, 2021

My plans for the next 3 months!

I have at least 3 months off from work. That is the amount of time I have to wait before returning back to my company (after retirement) as a contractor. I am not 100% sure that I will return back to the same job. I have decided that I will select 13 technical books to read during that time. I figure I will take 1 week per book since I do not have a full-time job. The books shall cover the following categories: Android Development, Java Enterprise Development, DevOps, Web, Game Programming and Electronics and Hardware.

The books I have selected (and will review here are):

  1. Löve for Lua Game Programming, Darmie Akinlaja
  2. API Testing and Development with Postman, Dave Westerveld
  3. Beginning Node.js, Basarat Ali Syed
  4. Node Web Development, 5th Edition, David Herron
  5. Android Programming for Beginners, 3rd Edition by John Horton
  6. Hands-on Microservices with Spring Boot and Spring Cloud, by Magnus Larsson
  7. Mastering Microservice with Java, 3rd Edition, by Sourabh Sharma
  8. Learn Kotlin for Android Development, Peter Späth
  9. Beginning Jenkins Blue Ocean, Nikhil Pathania
  10. Beginning Arduino Programming, Brian Evans
  11. Beginning Blockchain, Singhal, Dhameja and Panda
  12. Beginning Unreal Game Development, David Nixon
  13. Learn RPG in Gamemaker: Studio, Ben Tyers

I selected the first three since I am working on a Coursera course. I want to re-visit my attempts to learn Android programming. I started a Udacity Nanodegree in late 2019 but the course was rather dated. My work colleagues and I complained - a lot! I dropped the course. I see that they have changed the course considerably since we dropped it – using Kotlin and more up-to-date libraries. The next set of books pertain to the area I will probably pursue if I return to the job market – Java enterprise development. The rest of the books represent new topic areas in the field of DevOps, Microcontrollers, Blockchain and game development tools.

At the same time that I will be attempting to read a book a week I plan on completing several courses I started:

  1. Coursera – Front-end Web Specialization
  2. User Authentication in Web Apps()
  3. Introduction to Game Development with Lua
  4. NodeJS and ExpressJS

The plan for today is to continue on (2) User Authentication in Web Apps and the Postman book.
Note: I had a collapse of sorts in my Coursera course. I tried to start Assignment #3 but it failed to work. I did start creating Postman scripts to automate the testing process and I am not sure of what change or modification I made that corrupted my project. I did discover the change to JSONTokens broke the logout.
So I decided to take a step back and re-learn some things – hence the youtube videos and books on NodeJS and Expree. I plan on resuming the course next week.
Let the games begin.

Thursday, December 30, 2021

What does a software person do in retirement?

Today is my first day of retirement. It was supposed to be my last day working but the company took away my access this morning. I feel so sad starting the day like this. I have decided to get my personal website brainycode in order. I need to figure out how to fix some issues in the new website. I would like to create a new logo for the site or at least clean it up. It looks a bit raw. I am working on my final course in a Front-end specialization course on coursera - the MEAN Stack. Unfortunately, I find I need to supplement the course with youtube videos that go more in depth into Node.js and Express. I also need to brush up on some advanced JavaScript concepts - callbacks, promises, and async. I plan on blogging more about my adventures in trying to create content for brainycode and the various projects I pursue. Why not just post on my personal site? This site makes it easier to create a page and add it to the web so I can share with the world.

Saturday, September 12, 2020

TestNG - Why?

It has been exactly 10 years since I last posted anything on blogger. I decided to start up again since I find myself sending a former colleague e-mails detailing what I am learning, doing and thinking. It seems more like stream of conciousness writing. Today (Saturday) I am working through the packtpub video course - "TestNG Complete Bootcamp for Beginners". On a scale of 1-10 I would give it a grade of 4. The presentation is not clean (seems like to presenter is doing thing on the fly), I have to listen at 1.5x the normal speed because he just goes too slow. Why am I learning TestNG? I started an apress book "Beginning Spring 5" and the author uses TestNG rather than JUnit. I can see the original movitation for the creation of TestNG (around the time of Junit3) when testers probably wanted more control and less of the baggage around Junit but today JUnit 5 is a great product to use. All the test examples are trival and baby programs so the course is more of a you can do 'this' you can do 'that' and hopefully you remember enough when you ever have a chance to work with TestNG. I don't imagine I will promote TestNG over JUnit. In fact, I am a bit motivated to check out JUnit 5 (we use JUnit 4 at the job.). I feel I start something like the Beginning Spring 5 that always requires that I learn something else in order to get the most out of the book. Let me just say this - I hate the Spring book off the bat. Why? It uses Maven from scratch. No IDE. And is skips some steps! I don't know if it is me or just the books authors are writing these days, but I find I have to put in more effort than I plan just to get things working.

Monday, August 9, 2010

Reading all those Game Programming Books!

The goal of this new blog is to mark and share my experience reading all those game programming books I managed to collect all these years. I will admit to having over 10 20 30 books. Many I have started but never quite got to finish.

So today I declare war on the game programming books. My goal is to make my way through at least 10 of them before the year is out. The first book I am tackling right now is "Sam's Teach Yourself Game Programming in 24 Hours" by Michael Morrison. Like many of the books written he is not the type of guy who authored any "real" game. So he is not John Carmack (programmer of Doom and all those Quake Engines) or Tim Sweeney (programmer of Unreal), or even the programmer of some old console game. I do see he has a website selling some simple iPhone apps. It appears from research on the Internet that the author is a professional writer. I do hope I learn something here.

The first chapter - Learning the Basics of Game Creation covers the basic - Why Video Games? Types of Video Games, Game Design (story, graphics, sound, etc). There is an interesting section on Object-Oriented Programming and Games. The must say I skipped most of this chapter since the topics are usually covered better and more in depth in books pertaining to game design. There is a delightful book I can highly recommend "Game Development Essentials: An Introduction" by Jeannie Novak. It is a bit expensive 48.00 on amazon.com and it would appear that used copies are only $10 less. I found it lightweight (oh, I should mention I actually read this one from end-to-end) but very interesting for students learning about the various aspects of game design. It had interesting sections on history, who plays and why, game elements, creating content. The book is a high-quality production with color and many mini-interviews with professionals in the field (and students). I gave the book 4 out of 5 stars and with time (2006) I see no other book has come close to covering the topics in well as Jeannie Novak's book so today I would increase my rating to 4.5 out of 5. I completed chapter 2 - A Windows Game Programming Primer. It just introduced a "skeleton" windows program (kind of like a "Hello World"). It managed to do that in a little over 20 pages. I have no problems at this time - see you tomorrow when I am done with Hour 3 - Creating an Engine for Games.