CODE - 100 Days of Code

100 Days of Code - Full Stack Web and Python Developer

I am walking down a couple of paths depending on the day and how I feel.

The Python paths are: Talk Python to Me Training, Real Python, PyBites Code Challenges, and others.

The Web Developer paths are Free Code Camp, Zenva Academy, and a HTML/CSS course that was taught in a Community College.

Those paths are supplemented by books, courses and videos from various sources including Udemy.com, Lydia.com, and YouTube.

Like I said, it just depends on how I am feeling that day.

Day 100: Aug 2, 2020

Today's Progress:

  • Lots and lots of Mainframe/Local COBOL coding.

Thoughts:

  • I'm going to close this document out. While it's true that I haven't been keeping it up to date, I have been working. Hard. I will start another 100 Days List and try to keep that one more up to date.

Link(s) to work:

None

Day 68: May 6, 2020

Today's Progress:

  • Open Mainframe Project - Parts 1 and 2 Completed.

Thoughts:

Link(s) to work:

None

Day 67: May 5, 2020

Today's Progress:

  • IBM Mainframe Challenge - Part 1 Completed.

    IBM Mainframe Challenge - P2-C7 Completed

  • Started another Mainframe/COBOL class called "The Open Mainframe Project". It uses VSCode and some extensions to connect to a different MF but this is all remote instead of using TSO/ISPF like the IBM Mainframe Challenge.

Thoughts:

  • Had some problems getting VSCode and the extensions to work at first but its all good now.

Link(s) to work:

None

Day 66: May 4, 2020

Today's Progress:

  • Spent a lot of time creating a new Tutorial section on dastagg.

  • Signed up for a Learn the Mainframe from IBM called "IBM Mainframe Challenge" class.

  • Derek Banas - COBOL - Completed the first 3 lessons.

Thoughts:

Link(s) to work:

None

Day 65: May 3, 2020

Today's Progress:

Thoughts:

Link(s) to work:

None

Day 64: May 2, 2020

Today's Progress:

  • COBOL is the new side project.

  • The MVS 3.8j Tur(n)key 4- System MVS 3.8 OS

    This is an emulator of a very old version of an IBM Mainframe OS. So far, it seems to be pretty close to what I remember.

Thoughts:

Link(s) to work:

None

Day 62: April 30, 2020

Today's Progress:

  • Wes Bos JavaScript 30: 30 Days of Javascript

    Completed 03: Playing with CSS and JS Variables.

  • Lynda.com(LinkedIn Learning) London App Brewery: Flutter Development

    Completed Part 06: Modularizing and Organizing Flutter Code - Quizzler Project.

  • Lynda.com(LinkedIn Learning) London App Brewery: Flutter Development

    Completed Boss-Level Challenge - Destini: Choose your own adventure game.

Thoughts:

Link(s) to work:

Flutter App - Destini on GitHub.

Flutter App - Quizzler on GitHub.

Day 61: April 29, 2020

Today's Progress:

  • Wes Bos JavaScript 30: 30 Days of Javascript

    Completed 02: CSS + JS Clock

  • No Starch Press Practical SQL

    Completed Chapters 5.

  • Lynda.com(LinkedIn Learning) London App Brewery: Flutter Development

    Completed Part 05: Flutter and Dart Packages - Xylophone Project.

  • Udacity Nano Degree: Full-Stack Developer

    Started Part 3: API Development and Documentation.

  • I have been struggling with "plain" Python, SQLAlchemy, and Alembic. I found a sample program and coded it up. I think I have a good starter example. Well, a "start from here and improve" example.

Thoughts:

Link(s) to work:

JavaScript 30 on GitHub.

Basic Py-SQL-Alembic Program on GitHub.

Flutter App - Xylophone on GitHub.

Day 60: April 28, 2020

Today's Progress:

  • Wes Bos JavaScript 30: 30 Days of Javascript

    Completed 01: Drum Kit.

  • No Starch Press Practical SQL

    Completed Chapters 1 - 4.

  • Springer Books The Python Workbook

    This is a collection of exercises. I set up the directory structure to start working on them.

Thoughts:

Link(s) to work:

JavaScript 30 on GitHub.

Day 59: April 27, 2020

Today's Progress:

Thoughts:

Link(s) to work:

Flutter App - Dicee on GitHub.

Flutter App - Magic 8 Ball on GitHub.

Day 58: April 26, 2020

Today's Progress:

  • Lynda.com(LinkedIn Learning) London App Brewery: Flutter Development

    Completed Part 02 and Part 03: Flutter Widgets - MiCard Project.

  • Traversy Media REST API With Flask & SQL Alchemy

    Completed.

  • Traversy Media Build & Deploy A Python Web App | Flask, Postgres & Heroku

    Completed.

Thoughts:

Link(s) to work:

Flutter App - MiCard on GitHub.

Day 57: April 25, 2020

Today's Progress:

Thoughts:

Link(s) to work: None

Day 56: April 24, 2020

Today's Progress:

  • Udacity Nano Degree: Full-Stack Developer

    Completed Part 02: Lesson 4.

Thoughts:

Link(s) to work: None

Day 55: April 23, 2020

Today's Progress:

  • Lynda.com(LinkedIn Learning) London App Brewery: Flutter Development

    Completed Part 02: Building Apps - Lesson 3.

  • Udacity Nano Degree: Full-Stack Developer

    Completed Part 02: Lessons 1, 2 and 3.

Thoughts:

Link(s) to work: None

Days 53-54: April 21-22, 2020

Today's Progress:

  • Udacity Build Native Mobile Apps with Flutter

    Started Lesson 1: The Flutter Framework.

  • Udacity Nano Degree: Full-Stack Developer

    Signed up for degree and Completed Part 1 (watching the opening videos).

  • Udacity Intro to Relational Databases

    Completed Course.

  • Lynda.com(LinkedIn Learning) London App Brewery: Flutter Development

    Completed Part 01: Introduction and first 2 lessons in Part 02: Building Apps.

Thoughts:

Link(s) to work: None

Day 52: April 20, 2020

Today's Progress:

  • Marcus Ng.

    Finished Flutter Travel Booking UI.

Thoughts:

Link(s) to work: None

Days 50-51: April 18-19, 2020

Today's Progress:

Thoughts:

Link(s) to work: None

Days 48-49: April 16-17, 2020


Today's Progress:

Thoughts:

Link(s) to work: None

Day 47: April 15, 2020

Today's Progress:

Thoughts:

Link(s) to work: None

Days 42-46: April 10-14, 2020

Today's Progress:

Thoughts:

Link(s) to work: None

Day 41: April 9, 2020

Today's Progress:

  • Update the T430 to the latest versions of everything.

Thoughts:

  • As you can see, there is a big gap in the dates. I was doing stuff, I just didn't record it. But, let's just keep going.

Link(s) to work: None

Day 40: February 11, 2020

Today's Progress:

  • Bytes of Py: 89 and 21.

  • TPT-Code-100-Days: 07-09 Data Structures (see the PyBites above)

  • TPT-Web-100-Days: 001-004 Flask Intro

Thoughts:

  • Starting to get into a groove.

Link(s) to work:

All my Bites of Py.

TPT 100 Days of Code.

TPT 100 Days of Web.

Day 39: February 10, 2020

Today's Progress:

  • Completed TPT-Code-100-Days: 01-03 and 04-06.

  • Re-started Miguel Grinbergs Flask Mega-Tutorial. Finished Chapter 2.

  • Quick read the Jupyter book. Learned a couple of things. Need to memorize the keyboard commands.

Thoughts:

  • Learning to use the Jupyter Notebook to do the "command line" or Python shell commands. Keeps a good record of what I have done.

  • Starting to get more comfortable with Doom Emacs. The keyboard commands are starting to work for me instead of against me.

Link(s) to work:

All my Bites of Py.

TPT 100 Days of Code.

Day 38-43: February 9, 2020

Today's Progress:

  • More work on the Doom Emacs setup

  • Completed 3 PyBites: 209, 210 and 254

  • Completed the Talk Python Training Responder Mini-Course

Thoughts:

  • It's been a week since I make the last entry. The problem is I have setup another laptop with the Doom Emacs and the programming I am working on so I don't have this readily available. I was debating moving it to the other laptop but I think I would rather keep that one "clean" with just "programming stuff" and keep the websites, email and all the other things on this laptop.

  • I should create a blog post about how I set Doom Emacs, pipenv and pipx up. Maybe next week.

Link(s) to work:

All my Bites of Py.

TPT Responder Course.

Day 34-37: February 3, 2020

Today's Progress:

  • Installed and started learning Emacs Doom framework.

  • Converted the Python workflow to use pyenv and pipx.

  • Updated the scmenu script, cleaned up the Fossil Ticket scripts and pushed them to GitHub and GitLab.

Thoughts:

  • I've actually been using Emacs for a number of years but I only used it for Org-Mode and Ledger. I would always think "Why don't I use it for development as well?" but then a new shiny editor/IDE would come along and ... I did try using Spacemacs when it first came out but we just didn't get along.

  • I both wanted to do this and with me using Doom, I kinda needed to do this. The python development environment that Doom sets up needs certain things to be available (Python Language Server, pyenv etc) so it is better to just be able to create a VirtualEnv that automatically has all of them installed already. Using pipx is just a way to keep the "System" Python cleaner.

  • I have been using these for awhile and scmenu was up on GitHub but I cleaned it up a bit and then cleaned up the Fossil-SCM Ticket scripts and pushed them up there as well.

Link(s) to work:

I've have links to both sites in case I lose access to one or the other for some reason.

Here are the scmenu repositories:

GitHub scmenu script.

GitLab scmenu script.

Here are the Fossil-SCM scripts:

GitHub Fossil-SCM scripts.

GitLab Fossil-SCM scripts.

Day 33: January 30, 2020

Today's Progress:

  • Finished Free Code Camp - Responsive Web Design Principles

Thoughts:

Link(s) to work:

None

Day 32: January 29, 2020

Today's Progress:

  • Finished Free Code Camp - Applied Accessibility.

Thoughts:

  • Need to combine this with the HTML/CSS book I am working through

Link(s) to work:

None

Day 31: January 28, 2020

Today's Progress:

  • Finished Free Code Camp - Applied Visual Design.

  • Started re-doing Talk Python Training - Flask, SQLAlchemy, and Bootstrap course. Finished Chapter 5: Jinja2 Templates.

Thoughts:

  • Need to combine this with the HTML/CSS book I am working through

  • Need to look at the infrastructure code he created. I see what he means about the decorator "cleaning up" the function. I need to go back and look at the Flask Mega Tutorial and some of the other Flask tutorials and see how they did it.

Link(s) to work:

None

Day 30: January 27, 2020

Today's Progress:

  • Completed 50% of Free Code Camp - Applied Visual Design.

Thoughts:

  • Need to combine this with the HTML/CSS book I am working through

Link(s) to work:

None

Day 29: January 26, 2020

Today's Progress:

  • Updated this website to the "new look". I just didn't like the old one.

  • Watched and coded along with a "Unit Testing with Pytest" video on Lynda.com. Saw a good example of using Mock and MagicMock from unittest and monkeypatch from pytest.

  • Completed the second half of Free Code Camp - Basic CSS.

Thoughts:

  • As I'm new to this, I've noticed a couple of times that people tend to use unittest.Mock. I wonder if pytest has a Mock framework. Need to look into that.

Link(s) to work:

None

Day 23-28: January 25, 2020

Today's Progress:

  • It's been awhile since the last update.
    • Worked on improving the Vim setup.

    • Worked on PyTest; created a few different programs with different file structures to make sure pytest can find the tests.

    • Continued with FreeCodeCamp; 50% through CSS section.

    • Started reading and doing a walk along with the book "Python3 - Object Oriented Programming".

  • Completed Intro Bytes of Py Exercises 109, 110.

    Completed Beginner Bytes of Py Exercises 46, 181, 68, 115, and 74.

Thoughts:

  • I completed all the Intro Bytes. What I am doing now is starting at the Beginner Page, I'm sorting by "User rated difficulty" and then completing them in that order.

Link(s) to work:

All my Bites of Py.

Day 22: January 19, 2020

Today's Progress:

  • Worked with FZF (Fuzzy Finder) to see how it works and if it can speed up my ablility to find and switch to a different file faster. It can! I do need to learn more about it through. Especially the way it can search for a specific name. That needs a grepping tool like Ag or RipGrep. I'll look into those next.

  • Completed Bytes of Py Exercise 108

Thoughts:

  • 108 was one of those that I looked at and said, "I have no idea how to do this". Then you start searching and see something not really close but you think, "I wonder" and it works. I love Thonny for working through these types of situations.

Link(s) to work:

Bite of Py: #108.

Days 18-21: January 18, 2020

Today's Progress:

  • It's been a busy couple of days.
    • Working out the "new" workflow. Setting up the structure, creating the venv etc.

    • Created/Updated the scripts (makelocalrepo.sh, scmenu, and a few others) to help get setup.

    • I looked at Cookiecutter also and it has some potential.

    • Got Sublime Text working well with PyTest and got Vim(NeoVim to be precise) working well with Pytest as well

  • I probably spent a whole day walking through Python Testing. How does the file structure need to be (src or no src, etc). I still struggle with the setup.py file and how to make sure that pytest can find all the tests and the test files can find the modules they are testing. I think I finally figured that out. Don't know why I struggle with that but I just do.

    I completed PyBites #106 as well.

Thoughts:

  • I believe I have the "overview" down pat. Now I just need to build up the tooling to automate it. I think a cookiecutter would work but I need to research that just a little more.

Link(s) to work:

None for this stuff

Day 16-17: January 14, 2020

Today's Progress:

  • Got Apache, Fossil, Gitolite, and cGit installed on Test. It was quite a bit of work but there is still a little more to go.

    Awhile back, I created a simple bash script to import some pre-made Ticket reports into the Fossil repository. It worked, now it doesn't. Need to find out why not.

    Also had to update the Installation Notes to remind me of the process of just re-creating one VM from scratch so I can walk through the "whole" process as if it was a "clean" server.

Thoughts:

  • Maybe tomorrow work on the ticket report import problem or I might set this aside for a day to let some ideas formulate.

Link(s) to work:

GitHub repo: rpi_rack

Day 15: January 12, 2020

Today's Progress:

  • Did a bit of clean up:
    • Made sure the inventory files matched (by name) on both systems

    • Changed "fossil" role to "source_control" as it will be both Fossil and Git.

    • Updated all the markers in the files to say source_control

    • File structure on both systems match now.

    Had to run the init_setup as "ubuntu" to get it to run, then switched back to sysop and ran all the playbooks. Didn't need to do this on the test platform as all the VM's are created with the user name "vagrant" so it all "just worked". But on the real system, the Raspian user is "pi" and the Ubuntu user is "ubuntu"

    So:
    • Both systems are up and running playbooks

    • Both systems are "in sync".

    • Next step is to create the source_control role and get that working.

  • Was feeling okay so I went ahead and completed the Fossil/Apache2 part of the source_control role in the Virtual environment.

    Need to copy the files to the Real environment and test it out.

    Will have to be careful and backup the existing repos as I am using that RPi now as the Fossil repository.

    As I understand it, Ansible "should" see that the stuff is already there and move on but...

Thoughts:

  • Starting to get the hang of this.

Link(s) to work:

GitHub repo: rpi_rack

Day 14: January 11, 2020

Today's Progress:

  • All the Raspberry Pis are setup with the OS installed and updated.

    I spent most of today creating the test_platform.
    • Created the VMs using Vagrant

    • Manually update/upgrade, set the IP address and "fixed" the sshd_config to be able to connect to each server from Control.

    • Created and ran the init_setup playbook to create the sysop user and install some base software.

    • Used Ansible Galaxy to init four roles:
      • base

      • www

      • db

      • fossil

    • Updated the base role to use the sysop user to run a very basic task to make sure that Control will run with the sysop user instead of the vagrant user.

    • That's it for today.

Thoughts:

  • Whoever said configuration management was easy is either very smart or nuts!

Link(s) to work:

GitHub repo: rpi_rack

Day 13: January 10, 2020

Today's Progress:

  • Mostly worked on getting Ansible working. I have the Raspberry Rack up and running. I have a test environment setup using Vagrant so I just trying to walk through running it on the Vagrant environment, then moving it to the RPi rack to see if it works. So far, it is.

Thoughts:

  • Need to do better documentation of what I am doing. Sometimes, when things don't go well, I just start "doing stuff" and I usually get it working but I don't remember exactly what I did.

Link(s) to work:

None today.

Day 12: January 09, 2020

Today's Progress:

  • Watch the first half of a video from a SciPy conference about testing Python with pytest. Its pretty good. Next step, work through the book I have.

  • Finished "Make Your Own Python Text Adventure" book.

  • Continued with "Flask Mega Tutorial": Chapter 8

Thoughts:

  • Also learned a little about using Meld from the command line as well!

Link(s) to work:

GitHub Python Text Adventure repository

Day 11: January 08, 2020

Today's Progress:

  • To get more familiar with Fossil and to get the "workflow" down, I re-visited a book "Make Your Own Python Text Adventure". Created a bunch of Tickets, started coding and marked them complete as I went along.

  • Determined that it was my USB sticks that were causing the problem with the Raspberry Pi. Only the two new ones were a problem.

Thoughts:

  • I do really like Fossil. It just works and it has everything I need so...

  • I HATE it when it is something stupid like two "Bad" USB sticks. It is unlikely but it happens.

Link(s) to work:

The Text Adventure Code

Day 08-10: January 07, 2020

Today's Progress:

  • Just for fun and to remember how to use Fossil, I started walking through one of the books I have called "Make Your Own Python Text Adventure".

  • Started working on the SCM and CI/CD RPis. Ran into quite a few problems. Tried running GitLab but it was too slow, even for a small team. Decided to go with Fossil, Gitolite and Jenkins. As of now, I have Fossil working. Will setup Gitolite next, then Jenkins.

Thoughts:

  • Finished Chapter 4 and was able to use the scripts I created to enter tickets, display open and closed tickets and then commit the code with the ticket number and close the ticket all from the command line. Works for me.

  • It took me three days to get this up and running after the problems I had with the RPis and GitLab. There is something wrong with the Raspian Buster Lite version that the RPi won't boot up if there is a USB stick inserted.

Link(s) to work:

Blog post for Installing Fossil on a RPi

Day 07: January 04, 2020

Today's Progress:

  • Updated the Raspberry Pi Cluster to Raspian Buster. This will become the "in-house" development environment test system. The goal is to use Ansible to set up a Web Server System (load balancer, multiple web and db servers) and a SCM/CI/CD system.

Thoughts:

  • Was able to update all the SD cards. Assigned 5 of them with static IPs. Also created 5 VMs on the laptop using Vagrant. Used Ansible to "provision" those and next step is to use that code to do the same to the RPis.

Link(s) to work:

No links today.

Day 06: January 03, 2020

Today's Progress:

  • Re-started the Free Code Camp "bootcamp". Logged on and reset all the progress. Completed "Responsive Web Design Certification: Basic HTML and HTML5 course".

  • Also re-started the "Full Stack Ember with Phoenix" by EmberCasts.

  • Continued working on Flask Mega-Tutorial. Finished Chapters 6 and 7.

  • Created a version of my "Bulk Data Load" script to load new users into the Flask Mega-Tutorial DB including creating the hashed password.

Thoughts:

  • Free Code Camp: I think it's just better to start over. It might be a waste of time but the review won't kill me.

  • EmberCasts: This one will be over my head for awhile as it is using Node, NPM, Elixir and Ember.js. Plus, it uses Code as the editor and it may take a little work to setup Sublime3 or PyCharm to work with Elixir and Ember. Plus this was created before the new "Octane" enhancement to Ember. So, might need to learn this, then learn that.

Link(s) to work:

GitHub repo of today's Flask work.

Day 05: January 02, 2020

Today's Progress:

  • Worked on "The New and Improved Flask Mega-Tutorial" by Miguel Grinberg. Finished up to Chapter 5. Here is a link to the course:Flask Mega-Tutorial.

  • Watched the first couple of videos for "Beginning JavaScript" by Wes Bos. Setup Sublime Text for ESLint and Prettier. Here is a link to that course: Beginner JavaScript.

Thoughts:

  • I'm trying to contrast this with the TPT Flask course. In general, this one tries to use all the "Flask-*" modules whereas it seems in TPT, it's more "self-coded"? Maybe, need to learn more.

  • So far, it's a pretty good class. It's been quite a while since I did any "real" JavaScript coding so it's a good place to re-start.

Link(s) to work:

GitHub repo of today's Flask work.

GitHub repo of today's JavaScript work.

Day 04: January 01, 2020

Today's Progress:

  • Read some tutorials then setup Sublime Text and Pycharm to make sure I can use PyTest.

  • Finished (for now) Talk Python Training's "Eve: Building RESTful API's with MongoDB and Flask".

  • Working on Talk Python Training's "MongoDB Quickstart with Python"

Thoughts:

  • This is a pretty good class. The instructor, Nicola Iarocci, does a very good job of explaining how to use the Eve framework to create APIs. It started to go over my head, so I stopped for now and will re-visit after I do the MongoDB (either Quickstart or Full) course.

  • The "issue" I am having with this is that I don't know where stuff is coming from. I need to explore the code more to see what other modules are doing and why.

Link(s) to work:

My code for the Eve course

Day 03: December 31, 2019

Today's Progress:

Thoughts:

  • The end with the authorization was a little rushed but okay.

  • Good short video. Reminded me of the process and the need to learn the dot commands. Was able to use the Makefile I created for the PostgreSQL DB to load a build.sql file into SQLite and it works.

Link(s) to work:

Github repo: Lynda RESTful API

Day 02: December 30, 2019

Today's Progress:

Thoughts:

  • Same as yesterday, good to get back to the basics of RDBMS. Also worked on a Makefile to automatically create and load the database.

  • Good course! Stays on track and while the program "should" be broken up into different modules, it's good to see it all in one place at first.

Link(s) to work:

None for this entry.

Day 01: December 29, 2019

Today's Progress:

Thoughts:

  • It's been a long time since I did any real DB work. To walk through the installation and use the "command line" instead of a GUI was refreshing.

Link(s) to work:

  • None for this entry