<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>lazaruk.com</title><link href="/" rel="alternate"></link><link href="/feeds/all.atom.xml" rel="self"></link><id>/</id><updated>2025-01-02T14:58:00-07:00</updated><subtitle>wasting electons since 1999</subtitle><entry><title>Learning Log - Completed</title><link href="/learning-completed.html" rel="alternate"></link><published>2023-06-27T00:00:00-06:00</published><updated>2025-01-02T14:58:00-07:00</updated><author><name>Brad Lazaruk</name></author><id>tag:None,2023-06-27:/learning-completed.html</id><summary type="html">Brad Lazaruk’s completed learning</summary><content type="html">&lt;p&gt;&lt;a href="/learning-queue.html"&gt;Queued learning&lt;/a&gt; | &lt;a href="/learning-in-progress.html"&gt;In progress learning&lt;/a&gt; | &lt;a href="/learning-completed.html"&gt;Completed learning&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Entries here are listed by the month they were completed.&lt;/p&gt;
&lt;h2 id="section"&gt;2024&lt;/h2&gt;
&lt;h3 id="may"&gt;May&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course-dashboard-redirect/?course_id=5836130"&gt;Python 101&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.udemy.com/user/michaeldriscoll3/"&gt;Michael Driscoll&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://www.udemy.com"&gt;udemy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ude.my/UC-97c69a11-42e5-4489-bf9a-41200b7a0038/"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="april"&gt;April&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bachelor of Science with First Class Honours in Computer Science, specialism in Machine Learning and Artificial Intelligence
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Undergraduate Degree&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.london.ac.uk"&gt;University of London&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march"&gt;March&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Final Project
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Course for credit towards BSc in Computer Science&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.london.ac.uk"&gt;University of London&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="section-1"&gt;2023&lt;/h2&gt;
&lt;h3 id="september"&gt;September&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Intelligent Signal Processing
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Course for credit towards BSc in Computer Science&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.london.ac.uk"&gt;University of London&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june"&gt;June&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://successcoaching.co/certification"&gt;Certified Customer Success Manager - Level 1&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Industry certification&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://successcoaching.co/"&gt;SuccessCoaching&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.credly.com/badges/06b3aec2-6aed-4668-b668-b1253dc52dff/public_url"&gt;Credly badge&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Accountability, Account Management, Account Planning, Active Listening, Business Consulting, Business Metrics, Client Retention, Customer Centricity, Customer Engagement, Customer Experience, Customer Success Management, Dealing With Difficult People (including Conflict Management), Difficult Conversations, Issues And Escalation, Onboarding, Project Management, Quarterly Business Reviews, Relationship Management&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="may-1"&gt;May&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/ai-deep-learning-capstone"&gt;AI Capstone Project with Deep Learning&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/R2HBS4ZXXAVH"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/R2HBS4ZXXAVH"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Deep learning, Artificial Intelligence (AI)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/building-deep-learning-models-with-tensorflow"&gt;Building Deep Learning Models with TensorFlow&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/FRCHZEDSJHZL"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/FRCHZEDSJHZL"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: TensorFlow, Deep learning&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/specializations/ai-engineer"&gt;IBM AI Engineering&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Professional certificate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/professional-cert/5ZNXFRKMAVX8"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/5ZNXFRKMAVX8"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="april-1"&gt;April&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/specializations/introduction-data-science"&gt;Introduction to Data Science&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Professional certificate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/specialization/CNP7PVDXAXSZ"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/CNP7PVDXAXSZ"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Data Science, Relational Database Management System (RDBMS), Cloud Databases, Python Programming, SQL&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march-1"&gt;March&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Natural Language Processing
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Course for credit towards BSc in Computer Science&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.london.ac.uk"&gt;University of London&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Artificial Intelligence
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Course for credit towards BSc in Computer Science&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.london.ac.uk"&gt;University of London&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="section-2"&gt;2022&lt;/h2&gt;
&lt;h3 id="september-1"&gt;September&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Computer Security
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Course for credit towards BSc in Computer Science&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.london.ac.uk"&gt;University of London&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Databases and Advanced Data Techniques
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Course for credit towards BSc in Computer Science&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.london.ac.uk"&gt;University of London&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june-1"&gt;June&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/deep-neural-networks-with-pytorch"&gt;Deep Neural Networks with Pytorch&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/774BVUS3JC9F"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/774BVUS3JC9F"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Pytorch, tensors, Deep Neural Networks, Deep Learning&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march-2"&gt;March&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Databases, Networks, and the Web
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Course for credit towards BSc in Computer Science&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: University of London&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="february"&gt;February&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/introduction-computer-vision-watson-opencv"&gt;Introduction to Computer Vision and Image Processing&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/F2RRAFWH2F8J"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/F2RRAFWH2F8J"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Deep Learning, Opencv, Artificial Intelligence (AI), Image Processing, Computer Vision&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january"&gt;January&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/introduction-to-deep-learning-with-keras"&gt;Introduction to Deep Learning &amp;amp; Neural Networks with Keras&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/records/P6VSXB4PWFU2"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/P6VSXB4PWFU2"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Deep Learning, Artificial Neural Network, Artificial Intelligence (AI), Machine Learning, keras&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/machine-learning-duke"&gt;Introduction to Machine Learning&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/duke"&gt;Duke University&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/D4FAZRT2QBSE"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/D4FAZRT2QBSE"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Natural Language Processing, Convolutional Neural Network, Machine Learning, Python Programming, pytorch&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="section-3"&gt;2021&lt;/h2&gt;
&lt;h3 id="december"&gt;December&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/uol-machine-learning-for-all"&gt;Machine Learning for All&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.london.ac.uk"&gt;University of London&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/MHELK7SU6CUC"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/MHELK7SU6CUC"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Machine Learning&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="november"&gt;November&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Classical Cryptosystems and Core Concepts
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: University of Colorado System&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Cryptosystems&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october"&gt;October&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/python-for-active-defense"&gt;Python for Active Defense&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.infosecinstitute.com/"&gt;Infosec&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/7XNHAXGZCN6X"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/7XNHAXGZCN6X"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Python Programming, Active defense&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/command-and-control-exfiltration-and-impact"&gt;Python for Command-and-control, Exfiltration and Impact&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.infosecinstitute.com/"&gt;Infosec&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/ULMTGDXU7HTW"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/ULMTGDXU7HTW"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Python Programming, Command-and-control, Exfiltration&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/credential-access-discovery-lateral-movement--collection"&gt;Credential Access, discovery, lateral movement &amp;amp; collection&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.infosecinstitute.com/"&gt;Infosec&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/S66AP3CWUGFK"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/S66AP3CWUGFK"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Python Programming, Credential access, Lateral Movement&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/execution-persistence-privilege-escalation-and-evasion"&gt;Execution, persistence, privilege escalation and evasion&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.infosecinstitute.com/"&gt;Infosec&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/LAEG9H9R8CL9"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/LAEG9H9R8CL9"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Persistence, Python Programming, privilege escalation and evasion, Cybersecurity, Execution&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/pythonforcybersecurity-introduction"&gt;Introduction to Python for Cybersecurity&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.infosecinstitute.com/"&gt;Infosec&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/records/ZQ3HH2E8L4ZN"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/ZQ3HH2E8L4ZN"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Python Programming&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/specializations/pythonforcybersecurity"&gt;Python for Cybersecurity&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Professional certificate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.infosecinstitute.com/"&gt;Infosec&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/specialization/T48YD8LN288G"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/T48YD8LN288G"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: pre-att&amp;amp;ck, Python Programming, Cybersecurity, attack and defend, Computer Programming&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september-2"&gt;September&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Object Oriented Programming
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Course for credit towards BSc in Computer Science&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.london.ac.uk"&gt;University of London&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Software Design and Development
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Course for credit towards BSc in Computer Science&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.london.ac.uk"&gt;University of London&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Graphics Programming
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Course for credit towards BSc in Computer Science&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.london.ac.uk"&gt;University of London&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Algorithms and Data Structures II
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Course for credit towards BSc in Computer Science&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.london.ac.uk"&gt;University of London&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june-2"&gt;June&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/developing-applications-with-sql-databases-and-django"&gt;Developing Applications with SQL, Databases, and Django&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/MD6ZH66X8L34"&gt;Verification link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Relational Database (RDBMS), Object Relational Mapping (ORM), SQL, Django (Web Framework), Back-End Applications&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/applications-development-microservices-serverless-openshift"&gt;Application Development using Microservices and Serverless&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/records/PEDF2V78E93T"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/PEDF2V78E93T"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: serverless, Microservices, Representational State Transfer (REST), Openshift, Cloud Applications&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="may-2"&gt;May&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/python-project-for-ai-application-development"&gt;Python Project for AI &amp;amp; Application Development&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/85TBJMJVX7XX"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/85TBJMJVX7XX"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Artificial Intelligence (AI), Web Application, Python Programming, Application development, Flask&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/ibm-containers-docker-kubernetes-openshift"&gt;Introduction to Containers w/ Docker, Kubernetes &amp;amp; OpenShift&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/records/EF7REH4D826F"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/EF7REH4D826F"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Kubernetes, Docker, Cloud Native, Containers, Openshift&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="april-2"&gt;April&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/node-js"&gt;Developing Cloud Apps with Node.js and React&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/DKPSKMDSDAJD"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/DKPSKMDSDAJD"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: React (Web Framework), Node.Js, Json, express, JavaScript&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/developing-cloud-native-applications"&gt;Developing Cloud Native Applications&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/ATFJJKFP8SQC"&gt;Verification link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Devops, NoSQL, Git (Software), Cloud Infrastructure, Json&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/introduction-to-cloud"&gt;Introduction to Cloud Computing&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/records/83HVU3BUV6UX"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/83HVU3BUV6UX"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Cloud Native, Devops, Iaas, PaaS, Saas, Hybrid Multicloud, Cloud Computing&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/introduction-to-web-development-with-html-css-javacript"&gt;Introduction to Web Development with HTML, CSS, JavaScript&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/records/XH9TJP6GAW8S"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/XH9TJP6GAW8S"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Web Development, Cascading Style Sheets (CSS), HTML, Git (Software), JavaScript&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/specializations/ibm-cloud-application-development-foundations"&gt;Cloud Application Development Foundations&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Professional certificate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/specialization/BWYTUNLQMDNQ"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/BWYTUNLQMDNQ"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Devops, Python Programming, Node.Js, HTML and CSS, Cloud Applications&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march-3"&gt;March&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Programming with Data
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Course for credit towards BSc in Computer Science&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.london.ac.uk"&gt;University of London&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Agile Software Projects
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Course for credit towards BSc in Computer Science&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.london.ac.uk"&gt;University of London&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="section-4"&gt;2020&lt;/h2&gt;
&lt;h3 id="september-3"&gt;September&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fundamentals of Computer Science
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Course for credit towards BSc in Computer Science&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.london.ac.uk"&gt;University of London&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Algorithms and Data Structures I
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Course for credit towards BSc in Computer Science&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.london.ac.uk"&gt;University of London&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="april-3"&gt;April&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/data-analysis-with-python"&gt;Data Analysis with Python&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/records/QJGEMQUZWSRT"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/QJGEMQUZWSRT"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Predictive Modelling, Python Programming, Data Analysis, Data Visualization (DataViz), Model Selection, Pandas, Numpy, SciPy, scikit-learn&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/applied-data-science-capstone"&gt;Applied Data Science Capstone&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/records/R3DKHY69VUPJ"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/R3DKHY69VUPJ"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Methodology, Github, Jupyter Notebook, Data Science Methodology, K-Means Clustering&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/python-for-data-visualization"&gt;Data Visualization with Python&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/records/SASQM4RFU39Q"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/SASQM4RFU39Q"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Dashboards and Charts, dash, Python Programming, Matplotlib, Data Visualization (DataViz)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/sql-data-science"&gt;Databases and SQL for Data Science with Python&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/records/EKQTHX2NWBDP"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/EKQTHX2NWBDP"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Cloud Databases, Python Programming, Jupyter notebooks, Relational Database Management System (RDBMS), SQL&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/machine-learning-with-python"&gt;Machine Learning with Python&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/DLPBWBM6XXBA"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/DLPBWBM6XXBA"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: SciPy, scikit-learn, Machine Learning, regression, classification, Hierarchical Clustering&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/python-for-applied-data-science-ai"&gt;Python for Data Science, AI &amp;amp; Development&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/295GTVFGL8JC"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/295GTVFGL8JC"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Data Science, Python Programming, Data Analysis, Pandas, Numpy&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/professional-certificates/ibm-data-science"&gt;IBM Data Science&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Professional certificate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/professional-cert/6QGYRMSCX8ZG"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/6QGYRMSCX8ZG"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/specializations/applied-data-science"&gt;Applied Data Science&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Professional certificate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/specialization/VZRP58TUSLD4"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/VZRP58TUSLD4"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="march-4"&gt;March&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/data-science-methodology"&gt;Data Science Methodology&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/records/6P49GX78LUHG"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/6P49GX78LUHG"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Data Science, Methodology, CRISP-DM, Data Analysis, Data Mining&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/open-source-tools-for-data-science"&gt;Tools for Data Science&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/D849WXZHZTF4"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/D849WXZHZTF4"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Data Science, Github, Python Programming, Jupyter notebooks, Rstudio&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/what-is-datascience"&gt;What is Data Science?&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/4P5YL94ZJDX6"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/4P5YL94ZJDX6"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Data Science, Deep Learning, Machine Learning, Big Data, Data Mining&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Introduction to Programming II
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Course for credit towards BSc in Computer Science&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.london.ac.uk"&gt;University of London&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Discrete Mathematics
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Course for credit towards BSc in Computer Science&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.london.ac.uk"&gt;University of London&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="section-5"&gt;2019&lt;/h2&gt;
&lt;h3 id="october-1"&gt;October&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/introduction-enterprise-computing"&gt;Introduction to Enterprise Computing&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/8U6HG6NYLJ53"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/8U6HG6NYLJ53"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Mainframe, z/OS, Enterprise Software, security, IBM Z&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/system-programming"&gt;Basic System Programming on IBM Z&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/D3BZDEX9W2ED"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/D3BZDEX9W2ED"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: System Programming, Unix, DB2, System Administration, JCL&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/deploy-micro-kube-icp"&gt;IBM Cloud Private: Deploying Microservices with Kubernetes&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/RXDYZ5DE7LCC"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/RXDYZ5DE7LCC"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Microservices, Kubernetes, IBM Cloud Private&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/deploy-micro-kube-ibm-cloud"&gt;IBM Cloud: Deploying Microservices with Kubernetes&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/QDWDX8TDU9YV"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/QDWDX8TDU9YV"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Kubernetes, Docker, Yet Another Markup Language (YAML), Cloud, IBM Cloud&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/ibm-microservice-microclimate"&gt;Developing and Deploying Microservices with Microclimate&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/VSN96653UCZC"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/VSN96653UCZC"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Microservices, Microclimate&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/z-commands-and-panels"&gt;Getting Started on Mainframe with z/OS Commands and Panels&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/Q4JZ84DUM2YD"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/Q4JZ84DUM2YD"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: System Administration, z/OS Commands, Panels, TSO, SysOp&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/specializations/ibm-z-mainframe"&gt;IBM z/OS Mainframe Practitioner&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Professional certificate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/professional-cert/4VWC9LGSR7DF"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/4VWC9LGSR7DF"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Linux, Mainframe, z systems, security, IBM Z&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/specializations/ibm-microservices"&gt;IBM Microservices&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Professional certificate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/specialization/RRMYDBQ4A4US"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/RRMYDBQ4A4US"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Microservices, Kubernetes, Devops, Cloud Computing&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="september-4"&gt;September&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/intro-ibm-microservices"&gt;Microservices - Fundamentals&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/ANT4KB5LUP5S"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/ANT4KB5LUP5S"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Introduction to Programming I
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Course for credit towards BSc in Computer Science&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.london.ac.uk"&gt;University of London&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Numerical Mathematics
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Course for credit towards BSc in Computer Science&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.london.ac.uk"&gt;University of London&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Web Development
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Course for credit towards BSc in Computer Science&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.london.ac.uk"&gt;University of London&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january-1"&gt;January&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/it-security"&gt;IT Security: Defense against the digital dark arts&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/google-career-certificates"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/59QXVPNBSTFD"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/59QXVPNBSTFD"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Cybersecurity, Wireless Security, Cryptography, Network Security&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/specializations/google-it-support"&gt;Google IT Support&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Professional certificate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/google-career-certificates"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/professional-cert/9YNQJVXGX2WL"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/9YNQJVXGX2WL"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Debugging, Encryption Algorithms and Techniques, Customer Service, Network Protocols, Cloud Computing&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="section-6"&gt;2018&lt;/h2&gt;
&lt;h3 id="december-1"&gt;December&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/os-power-user"&gt;Operating Systems and You: Becoming a Power User&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/google-career-certificates"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/4ZEE9XWH4GS2"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/4ZEE9XWH4GS2"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Powershell, Linux File Systems, Linux, Command-Line Interface&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/system-administration-it-infrastructure-services"&gt;System Administration and IT Infrastructure Services&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/google-career-certificates"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/C5S2TV52K3VD"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/C5S2TV52K3VD"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Directory Service, Lightweight Directory Access Protocol (LDAP), Backup&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/computer-networking"&gt;The Bits and Bytes of Computer Networking&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/google-career-certificates"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/KM9N6F6S4RZZ"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/KM9N6F6S4RZZ"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Domain Name System (DNS), Ipv4, Network Model, Troubleshooting&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/technical-support-fundamentals"&gt;Technical Support Fundamentals&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/google-career-certificates"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/6FLVPKK925FE"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/6FLVPKK925FE"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Binary Code, Customer Support, Linux, Troubleshooting&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="section-7"&gt;2017&lt;/h2&gt;
&lt;h3 id="december-2"&gt;December&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/grammar-punctuation"&gt;Grammar and Punctuation&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/uci"&gt;University of California, Irvine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/4GB5YYUEYJAK"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/4GB5YYUEYJAK"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: English Grammar, Punctuation, Grammar, Writing&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="section-8"&gt;2016&lt;/h2&gt;
&lt;h3 id="november-1"&gt;November&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/dna-sequencing"&gt;Algorithms for DNA Sequencing&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/jhu"&gt;Johns Hopkins University&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/NYLNAZU7ZNAP"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/NYLNAZU7ZNAP"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Bioinformatics Algorithms, Algorithms, Python Programming, Algorithms On Strings&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october-2"&gt;October&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/papers-molecular-genetics"&gt;Classical papers in molecular genetics&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/google-career-certificates"&gt;University of Geneva&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/FFDDM5CXT4YE"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/FFDDM5CXT4YE"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Biology, Genetics, Evolution, Genomics&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="july"&gt;July&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/python-genomics"&gt;Python for Genomic Data Science&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/jhu"&gt;Johns Hopkins University&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/WC2P9E6UWKPN"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/WC2P9E6UWKPN"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Bioinformatics, Biopython, Python Programming, Genomics&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/galaxy-project"&gt;Genomic Data Science with Galaxy&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/jhu"&gt;Johns Hopkins University&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/9TGTWFQK6WHY"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/9TGTWFQK6WHY"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Bioinformatics, Data Analysis, Genome, Genomics&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june-3"&gt;June&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/introduction-genomics"&gt;Introduction to Genomic Technologies&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/jhu"&gt;Johns Hopkins University&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/YSV532PT5B9C"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/YSV532PT5B9C"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Bioinformatics, Statistics, Data Science, Computational Biology&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="april-4"&gt;April&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/hiddenmessages"&gt;Finding Hidden Messages in DNA (Bioinformatics I)&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ucsd"&gt;University of California San Diego&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/WCMCNHTNHU"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/y/WCMCNHTNHU"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Bioinformatics, Bioinformatics Algorithms, Algorithms, Python Programming&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="february-1"&gt;February&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/project-management-capstone"&gt;Project Management Project&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/uci"&gt;University of California, Irvine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/DR5ZFZKRZBZ7"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/DR5ZFZKRZBZ7"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Schedule, Project Management, Risk Management, Budget&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/specializations/project-management"&gt;Project Management Principles and Practices&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Professional certificate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/uci"&gt;University of California, Irvine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/specialization/Z6JA9E244RV6"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/specialization/certificate/Z6JA9E244RV6"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Schedule, Project Management, Risk Management, Budget&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="january-2"&gt;January&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/project-risk-management"&gt;Managing Project Risks and Changes&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/uci"&gt;University of California, Irvine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/H33XRSTLYUTL"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/H33XRSTLYUTL"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Project Management, Change Control, Risk Management, Change Management&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/project-planning"&gt;Initiating and Planning Projects&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/uci"&gt;University of California, Irvine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/T9QXCDZXA7JX"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/T9QXCDZXA7JX"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Project Management, Project, Planning, Project Planning&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/schedule-projects"&gt;Budgeting and Scheduling Projects&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/uci"&gt;University of California, Irvine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/L5Z4S2D59JYN"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/L5Z4S2D59JYN"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Schedule, Project Management, Budget, Budget Estimation&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="section-9"&gt;2015&lt;/h2&gt;
&lt;h3 id="december-3"&gt;December&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/cloudnetworking"&gt;Cloud Networking&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/illinois"&gt;University of Illinois at Urbana-Champaign&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/BJ4L9A85UE"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/y/BJ4L9A85UE"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Software-Defined Networking, Python Programming, Cloud Infrastructure, Cloud Computing&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="october-3"&gt;October&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/cloudapplications"&gt;Cloud Computing Applications&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/illinois"&gt;University of Illinois at Urbana-Champaign&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/EQT864KYDZ"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/y/EQT864KYDZ"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Cloud Infrastructure, Cloud Applications, Cloud Storage, Cloud Computing&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/chem991"&gt;Introduction to Chemistry: Reactions and Ratios&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/duke"&gt;Duke University&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/ZTTQUAZ8JT"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/y/ZTTQUAZ8JT"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="june-4"&gt;June&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/cloudcomputing2"&gt;Cloud Computing Concepts: Part 2&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/illinois"&gt;University of Illinois at Urbana-Champaign&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/4J7QWRXLYU"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/y/4J7QWRXLYU"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Distributed Computing, C++, Cloud Computing, NoSQL&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="april-5"&gt;April&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/cloudcomputing"&gt;Cloud Computing Concepts&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/illinois"&gt;University of Illinois at Urbana-Champaign&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/verify/2VN4Z7UZMA"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/2VN4Z7UZMA"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Distributed Algorithm, Distributed Computing, C++, Cloud Computing&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/genetics-evolution"&gt;Introduction to Genetics and Evolution&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/duke"&gt;Duke University&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/account/accomplishments/records/2RCDAKPDG6"&gt;Verification link&lt;/a&gt; | &lt;a href="https://www.coursera.org/account/accomplishments/certificate/2RCDAKPDG6"&gt;Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Biology, Genetics, Evolution, Genomics&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="lifelong learning"></category><category term="learning"></category><category term="python"></category></entry><entry><title>Learning Log - In Progress</title><link href="/learning-in-progress.html" rel="alternate"></link><published>2023-06-27T00:00:00-06:00</published><updated>2025-01-02T14:58:00-07:00</updated><author><name>Brad Lazaruk</name></author><id>tag:None,2023-06-27:/learning-in-progress.html</id><summary type="html">Brad Lazaruk’s in progress learning</summary><content type="html">&lt;p&gt;&lt;a href="/learning-queue.html"&gt;Queued learning&lt;/a&gt; | &lt;a href="/learning-in-progress.html"&gt;In progress learning&lt;/a&gt; | &lt;a href="/learning-completed.html"&gt;Completed learning&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Entries here are listed by their projected completion date, if available.&lt;/p&gt;
&lt;p&gt;– &lt;a href="https://www.coursera.org/professional-certificates/google-data-analytics"&gt;Google Data Analytics Professional Certificate&lt;/a&gt; - &lt;strong&gt;Professional certificate&lt;/strong&gt; - Author: &lt;a href="https://www.coursera.org/google-career-certificates"&gt;Google&lt;/a&gt; - Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt; - Skills: Spreadsheet, Data Cleansing, Data Analysis, Data Visualization (DataViz), SQL, Questioning, Decision-Making, Problem Solving, Metadata, Data Collection, Data Ethics, Sample Size Determination, Data Integrity, Data Calculations, Data Aggregation, Tableau Software, Presentation, R Programming, R Markdown, Rstudio&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/specializations/certified-business-analysis-professional-cbap"&gt;Certified Business Analysis Professional (CBAP) Specialization&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Professional certificate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/starweaver"&gt;STARWEAVER&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Requirements Management, Soft Skills Development, Stakeholder Engagement, Business Analysis Planning, Solution Evaluation&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/specializations/hu-business-problem-solving"&gt;Business Problem Solving Specialization&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Professional certificate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/howard"&gt;Howard University&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Modeling, Spreadsheet, Microsoft Excel, Business Analysis, Business Strategy&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/professional-certificates/google-business-intelligence"&gt;Google Business Intelligence Professional Certificate&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Professional certificate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/google"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Business Intelligence, Extraction, Transformation And Loading (ETL), Bigquery, Dashboarding and Reporting, Data Analysis, Data Modeling, Business Analysis, SQL, Tableau Software, Business Process, Sheets, Data Visualization&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/professional-certificates/bi-analyst"&gt;IBM Business Intelligence (BI) Analyst Professional Certificate&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Professional certificate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Data Collection, Data Wrangling, Data Analysis, BI analytics, Data Warehousing, Data visualization with Tableau, SQL, Data Cleansing, Data Mining, Tableau reporting and dashboard creation, Relational Database Management Systems (RDBMS), Database querying using SQL&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Evolutionary Computer Vision
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Book&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: Gustavo Olague&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/specializations/wharton-business-foundations"&gt;Business Foundations Specialization&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/partners/penn"&gt;University of Pennsylvania&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/professional-certificates/microsoft-business-analyst"&gt;Microsoft Business Analyst Professional Certificate&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Professional certificate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/partners/microsoft"&gt;Microsoft&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="lifelong learning"></category><category term="learning"></category><category term="python"></category></entry><entry><title>Learning Log - Queue</title><link href="/learning-queue.html" rel="alternate"></link><published>2023-06-27T00:00:00-06:00</published><updated>2025-01-02T14:58:00-07:00</updated><author><name>Brad Lazaruk</name></author><id>tag:None,2023-06-27:/learning-queue.html</id><summary type="html">Brad Lazaruk’s learning queue</summary><content type="html">&lt;p&gt;&lt;a href="/learning-queue.html"&gt;Queued learning&lt;/a&gt; | &lt;a href="/learning-in-progress.html"&gt;In progress learning&lt;/a&gt; | &lt;a href="/learning-completed.html"&gt;Completed learning&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.cloudskillsboost.google/journeys/118"&gt;Generative AI Learning Path&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Professional certificate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.cloudskillsboost.google/"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://www.cloudskillsboost.google/"&gt;Google Cloud Skills Boost&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/foundations-data"&gt;Foundations: Data, Data, Everywhere&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/google-career-certificates"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Spreadsheet, Data Cleansing, Data Analysis, Data Visualization (DataViz), SQL&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/ask-questions-make-decisions"&gt;Ask Questions to Make Data-Driven Decisions&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/google-career-certificates"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Spreadsheet, Questioning, Decision-Making, Problem Solving, Data Analysis&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/data-preparation"&gt;Prepare Data for Exploration&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/google-career-certificates"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Spreadsheet, Metadata, Data Collection, Data Ethics, SQL&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/process-data"&gt;Process Data from Dirty to Clean&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/google-career-certificates"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Spreadsheet, Data Cleansing, Sample Size Determination, SQL, Data Integrity&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/analyze-data"&gt;Analyze Data to Answer Questions&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/google-career-certificates"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Spreadsheet, Data Analysis, SQL, Data Calculations, Data Aggregation&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/visualize-data"&gt;Share Data Through the Art of Visualization&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/google-career-certificates"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Data Analysis, Tableau Software, Data Visualization (DataViz), Presentation&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/data-analysis-r"&gt;Data Analysis with R Programming&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/google-career-certificates"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: R Programming, Data Analysis, Data Visualization (DataViz), R Markdown, Rstudio&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/google-data-analytics-capstone"&gt;Google Data Analytics Capstone: Complete a Case Study&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/google-career-certificates"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Job portfolio, Data Cleansing, Data Analysis, Data Visualization (DataViz)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.cloudskillsboost.google/course_templates/536"&gt;Introduction to Generative AI&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.cloudskillsboost.google/"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://www.cloudskillsboost.google/"&gt;Google Cloud Skills Boost&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Introduction to Large Language Models
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.cloudskillsboost.google/"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://www.cloudskillsboost.google/"&gt;Google Cloud Skills Boost&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Introduction to Responsible AI
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.cloudskillsboost.google/"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://www.cloudskillsboost.google/"&gt;Google Cloud Skills Boost&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Generative AI Fundamentals
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.cloudskillsboost.google/"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://www.cloudskillsboost.google/"&gt;Google Cloud Skills Boost&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Introduction to Image Generation
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.cloudskillsboost.google/"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://www.cloudskillsboost.google/"&gt;Google Cloud Skills Boost&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Encoder-Decoder Architecture
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.cloudskillsboost.google/"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://www.cloudskillsboost.google/"&gt;Google Cloud Skills Boost&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Attention Mechanism
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.cloudskillsboost.google/"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://www.cloudskillsboost.google/"&gt;Google Cloud Skills Boost&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Transformer Models and BERT Model
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.cloudskillsboost.google/"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://www.cloudskillsboost.google/"&gt;Google Cloud Skills Boost&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Create Image Captioning Models
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.cloudskillsboost.google/"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://www.cloudskillsboost.google/"&gt;Google Cloud Skills Boost&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Introduction to Generative AI Studio
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.cloudskillsboost.google/"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://www.cloudskillsboost.google/"&gt;Google Cloud Skills Boost&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Generative AI Explorer - Vertex AI
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.cloudskillsboost.google/"&gt;Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://www.cloudskillsboost.google/"&gt;Google Cloud Skills Boost&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course/python-the-complete-python-developer-course/learn/lecture/5058970?start=0#overview"&gt;Learn Python Programming Masterclass&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://www.udemy.com"&gt;udemy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course-dashboard-redirect/?course_id=4823070"&gt;Python Django 4 Masterclass&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://www.udemy.com"&gt;udemy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course-dashboard-redirect/?course_id=1899124"&gt;Recommender Systems and Deep Learning in Python&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://www.udemy.com"&gt;udemy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course-dashboard-redirect/?course_id=1726410"&gt;Building Recommender Systems with Machine Learning and AI&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://www.udemy.com"&gt;udemy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course-dashboard-redirect/?course_id=1399474"&gt;The Complete Python Course for Machine Learning Engineers&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://www.udemy.com"&gt;udemy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course-dashboard-redirect/?course_id=2133386"&gt;Practical Introduction to Machine Learning with Python&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.udemy.com/user/madhu-siddalingaiah/"&gt;Madhu Siddalingaiah&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://www.udemy.com"&gt;udemy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course-dashboard-redirect/?course_id=772462"&gt;Data Science: Modern Deep Learning in Python&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://www.udemy.com"&gt;udemy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course-dashboard-redirect/?course_id=1655490"&gt;Practical Machine Learning by Example in Python&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://www.udemy.com"&gt;udemy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course-dashboard-redirect/?course_id=1560148"&gt;The Complete Self-Driving Car Course - Applied Deep Learning&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://www.udemy.com"&gt;udemy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Python 101: Second Edition
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Book&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/fundamentals-of-business-analysis"&gt;Fundamentals of Business Analysis&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/starweaver"&gt;STARWEAVER&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Business Analysis, Business Analysis Methodology, Requirements Analysis, Stakeholder Identification, Solution Delivery&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/business-process-modelling"&gt;Business Process Modelling&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/starweaver"&gt;STARWEAVER&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Business Operations, Business Modeling, Notations, Sequencing, BPMN&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/certification-of-capability-in-business-analysis"&gt;Certification of Capability in Business Analysis&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/starweaver"&gt;STARWEAVER&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Problem Solving, Business Analysis, Performance Assessment, Stakeholder Management, Solution Evaluation&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/projects/business-analysis-using-spreadsheets"&gt;Introduction to Business Analysis Using Spreadsheets: Basics&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/project-network"&gt;Coursera Project Network&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Spreadsheet, Mathematics, Data Analysis, Business Analysis, Data Visualization&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/projects/business-analysis-process-management"&gt;Business Analysis &amp;amp; Process Management&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/project-network"&gt;Coursera Project Network&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/business-analysis-mastery?specialization=certified-business-analysis-professional-cbap"&gt;Business Analysis: Key Definitions &amp;amp; Strategy Analysis&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/starweaver"&gt;STARWEAVER&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Modeling, Risk, strategy, analysis, Change&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/advanced-business-analysis-elicitation-analysis?specialization=certified-business-analysis-professional-cbap"&gt;Advanced Business Analysis: Elicitation &amp;amp; Analysis&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/starweaver"&gt;STARWEAVER&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Decision-Making, Communication, analysis, Collaboration, Elicitation&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/advanced-requirements-management-solution-evaluation?specialization=certified-business-analysis-professional-cbap"&gt;Advanced Requirements Management &amp;amp; Solution Evaluation&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/starweaver"&gt;STARWEAVER&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Evaluation, Traceability, analysis, Prioritization, Root Cause&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/business-analysis-mastery-planning-skills-and-perspective?specialization=certified-business-analysis-professional-cbap"&gt;Business Analysis Mastery: Planning, Skills, and Perspective&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/starweaver"&gt;STARWEAVER&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Observation, Adaptability, governance, Planning, engagement&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/specializations/analytics"&gt;Business Analytics Specialization&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Professional certificate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/illinois"&gt;University of Illinois at Urbana-Champaign&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Data Analysis, Analytics, Machine Learning, Rstudio, power bi&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/specializations/financial-management"&gt;Financial Management Specialization&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Professional certificate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/illinois"&gt;University of Illinois at Urbana-Champaign&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Financial Management, Risk Management, Financial Mismanagement, Financial Aid Management, Investment&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/specializations/managerial-economics-business-analysis"&gt;Managerial Economics and Business Analysis Specialization&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Professional certificate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/illinois"&gt;University of Illinois at Urbana-Champaign&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Economics, Consumer Behaviour, Supply And Demand, Cost, Externality, Game Theory, Market (Economics), Data Analysis, Microsoft Excel, Statistical Analysis, Normal Distribution, Statistical Inference, Statistical Hypothesis esting&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/specializations/business-value-project-management"&gt;Business Value and Project Management Specialization&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Professional certificate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/illinois"&gt;University of Illinois at Urbana-Champaign&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Financial Accounting, Project Management, Strategic Management, Project Execution, Organizational Structure&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/specializations/strategic-leadership"&gt;Strategic Leadership and Management Specialization&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Professional certificate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/illinois"&gt;University of Illinois at Urbana-Champaign&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Strategic Management, Negotiation, Leadership, Business Strategy&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/specializations/innovation-creativity-entrepreneurship"&gt;Innovation: From Creativity to Entrepreneurship Specialization&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Professional certificate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/illinois"&gt;University of Illinois at Urbana-Champaign&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Business Model, Creativity, Innovation, Entrepreneurship, Innovation Management&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/specializations/global-challenges-business"&gt;Global Challenges in Business Specialization&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Professional certificate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/illinois"&gt;University of Illinois at Urbana-Champaign&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Global Marketing, Marketing, Brand Management, Strategic Planning&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/specializations/value-chain-management"&gt;Value Chain Management Specialization&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Professional certificate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/illinois"&gt;University of Illinois at Urbana-Champaign&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Lean Manufacturing, Program Management, Six Sigma, Process Control, Market Analysis, Marketing, Marketing Strategy, Marketing Mix, Process Analytics, Supply Chain, Inventory, Operations Strategy, Management Accounting, Cost Accounting, Activity Based Costing, Cost, Marketing Plan, Marketing Management, Writing, Accounting, Investment, Analysis Of Variance (ANOVA)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/specializations/excel-mysql"&gt;Excel to MySQL: Analytic Techniques for Business Specialization&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Professional certificate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/duke"&gt;Duke University&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Business Communication, Big Data, Binary Classification, Data Analysis, Microsoft Excel, Business Analysis, SQL, Business Analytics, Tableau Software, Data Visualization, MySQL&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/business-intelligence-essentials"&gt;Business Intelligence (BI) Essentials&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MOOC course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/ibm-skills-network"&gt;IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skills: Data Wrangling, Data Analysis, Data Warehousing, Data Visualization, Data Mining&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/specializations/data-science-foundations"&gt;Data Science Foundations Specialization&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Author: &lt;a href="https://www.coursera.org/specializations/data-science-foundations"&gt;University of London and IBM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delivered via: &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="lifelong learning"></category><category term="learning"></category><category term="python"></category><category term="queue"></category></entry><entry><title>Moving to Linux, Issues and Lessons Learned</title><link href="/building-my-linux-lessons-learned.html" rel="alternate"></link><published>2024-07-05T00:00:00-06:00</published><updated>2024-12-28T00:00:00-07:00</updated><author><name>Brad Lazaruk</name></author><id>tag:None,2024-07-05:/building-my-linux-lessons-learned.html</id><summary type="html"></summary><content type="html">&lt;p&gt;Of course when moving from over 30 years of using Windows to a Linux system, I made a few mistakes and had to look up a few things.&lt;/p&gt;
&lt;h3 id="updates-to-the-dock"&gt;Updates to the dock&lt;/h3&gt;
&lt;p&gt;In playing around with various dock extensions I found that my default dock had a delay of 3-5 seconds between an app being launched or closed and the icon being added or removed from the dock. I figured that since the Pop!_OS dock is a customised version of Dash to Dock, and I had installed that extension, I had probably corrupted something. Research led me &lt;a href="https://www.reddit.com/r/pop_os/comments/oxm96p/reset_cosmic_dock_to_default_settings/"&gt;here&lt;/a&gt;, which may have fixed the problem. I also went back to the &lt;a href="https://extensions.gnome.org/"&gt;gnome extensions site&lt;/a&gt; and disabled the “Ubuntu AppIndicators” extension, even though it says that extension does nothing and it seems to automatically re-enable itself. This action appeared to fix the problem but in hindsight that doesn’t really make sense to me and further testing would be required.&lt;/p&gt;
&lt;h3 id="partial-loss-of-right-mouse-click-context-menus"&gt;Partial loss of right-mouse click context menus&lt;/h3&gt;
&lt;p&gt;After a reboot one day I found that my right-mouse button was not working on the desktop or in the default file manager. It worked in my browser, other file managers, and most other applications. Initially I thought it was something in the gnome-tweaks application, and that resetting to default values had fixed it. But this was not the case. After more investigation I determined that the problem only existed on the non-primary monitor. I could right click fine on the primary monitor, no matter which of the panels was set to be the primary. But the others - no right click. The &lt;a href="https://forum.level1techs.com/t/solved-dual-monitor-issue-with-popos/201083/3"&gt;actual solution to this&lt;/a&gt; was to remove the monitor config files from ~/.config, then log out and in again. Sigh.&lt;/p&gt;
&lt;h3 id="suspend"&gt;Suspend&lt;/h3&gt;
&lt;p&gt;Doesn’t work very well when the graphics are set to nVidia mode. Seems to work fine in integrated and hybrid mode, although then I wouldn’t be able to use the external monitors.&lt;/p&gt;
&lt;h3 id="internxt"&gt;Internxt&lt;/h3&gt;
&lt;p&gt;I purchased a large block of space from Internxt to use for syncing, since my previous file sync solution was not supported on Linux. What a scam. Internxt is a scam. Internxt has been refusing to honour their money-back guarantee for half a year now, despite my first requests to them being well within the 30 day “warranty” window. The service sort of works for use cases that don’t help me, but doesn’t work at all for my use cases. I understand that I should have tested this before I made a financial investment with them, but I did realise the error and request a refund quickly. That they have refused to honour their refund policy is despicable. Buyer beware with Internxt - Internxt is a scam.&lt;/p&gt;
&lt;h3 id="watching-the-logs"&gt;Watching the logs&lt;/h3&gt;
&lt;p&gt;journalctl -f&lt;/p&gt;
&lt;h3 id="tracker-miner-fs-3"&gt;tracker-miner-fs-3&lt;/h3&gt;
&lt;p&gt;Had some troubles with this, which became visible with watching the journalctl log. Seemed that the database was corrupt. Some research showed that it was super risky and maybe impossible to remove the service. So I reset it, and the problems went away.&lt;/p&gt;
&lt;p&gt;Get the status &lt;code&gt;tracker3 status&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Reset it &lt;code&gt;tracker3 reset -s -r&lt;/code&gt; and then restart it &lt;code&gt;tracker3 daemon --start&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Note the “3” on the end of the executable.&lt;/p&gt;</content><category term="Development"></category><category term="Linux"></category><category term="Pop!_OS"></category><category term="Dash to Dock"></category></entry><entry><title>Moving to Linux, Building my System</title><link href="/building-my-linux-pop_os-system.html" rel="alternate"></link><published>2024-07-05T00:00:00-06:00</published><updated>2024-07-05T00:00:00-06:00</updated><author><name>Brad Lazaruk</name></author><id>tag:None,2024-07-05:/building-my-linux-pop_os-system.html</id><summary type="html"></summary><content type="html">&lt;p&gt;Herein lies all the things I did to get my system to the state it is in today. Mostly this is a record so that I can re-create it if need be. But hey, it might also be helpful to someone.&lt;/p&gt;
&lt;ol type="1"&gt;
&lt;li&gt;&lt;p&gt;Install the system. Just accept all the defaults from the installation media. Make sure to enable the disk encryption and record the passwords.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;There are some great points &lt;a href="https://mutschler.dev/linux/pop-os-post-install/"&gt;here&lt;/a&gt;. I also probably am writing up this document because of being inspired by Willi. Thanks!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Install &lt;a href="https://www.fosslinux.com/125641/how-to-backup-data-on-your-pop_os-using-timeshift.htm"&gt;Timeshift&lt;/a&gt; to capture backups of the state of the system. This still needs more testing to determine if it’s useful.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/nbfc-linux/nbfc-linux"&gt;NoteBook FanControl&lt;/a&gt;&lt;/p&gt;
&lt;ol type="1"&gt;
&lt;li&gt;I found that the fans were not coming on effectively and the system was a bit hot. Installing this app and setting it to the “HP Spectre x360 Convertible 15-ch0xx” config has fixed this up.&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;As part of my initial requirements to make the system look as much like Windows 11 as possible, to aid in my unconscious acceptance of the system, I’ve installed Dash to Panel. The configuration of it and the default dock are generally:&lt;/p&gt;
&lt;ol type="1"&gt;
&lt;li&gt;In the system settings:
&lt;ol type="1"&gt;
&lt;li&gt;Disable the default dock in the Settings &amp;gt; Desktop &amp;gt; Dock.&lt;/li&gt;
&lt;li&gt;Toggle some settings for the Top Bar in Settings &amp;gt; Desktop &amp;gt; Desktop Options. Remove the Workspaces and Applications Buttons. The Super Key Action should continue to be set to Launcher. Window Controls should have both Minimize and Maximize Buttons enabled.&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;In Dash to Panel settings:
&lt;ol type="1"&gt;
&lt;li&gt;The settings are backed up in ~/Documents and the differences between my settings and the defaults are not necessarily all captured below. Need to expand on this as further tweaks are identified.&lt;/li&gt;
&lt;li&gt;Position: remove the Applications button and set the Taskbar to Monitor Center.&lt;/li&gt;
&lt;li&gt;Style: Set App Icon Margin to 4. Tweak Animate hovering app icons settings.&lt;/li&gt;
&lt;li&gt;Running indicator: set focused app to Metro and unfocused apps to Dashes.&lt;/li&gt;
&lt;li&gt;Panel style: Override panel theme background opacity and set it to 50%, and enable the Dynamic background opacity.&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;File Syncing / Backup&lt;/p&gt;
&lt;ol type="1"&gt;
&lt;li&gt;This has been quite an adventure.&lt;/li&gt;
&lt;li&gt;My preferred sync option, Proton, doesn’t have a Linux app for their cloud drive (as of early July 2024). I tried Internxt and have had more problems than success with it. At this point I’m taking advantage of my free Dropbox account and Mega account to do some syncing. I also purchased a lifetime 100GB account from &lt;a href="https://filen.io"&gt;Filen&lt;/a&gt; which is working great. So right now I’m basically leaving everything in the various locations they were in before I moved to Linux and if I ever need something that’s when I get it to the local system and find a new permanent home for it.
&lt;ol type="1"&gt;
&lt;li&gt;The big advantage right now is that Mega and Filen allow me to sync the local directories without moving them. Internxt allows me to backup the directories in place (except for the errors with the backup service), but if I wanted to sync them I need to move the directories to the Internxt Drive directory, and then symlink from my home folder. I don’t really want to do that and have to manage it (plus, it doesn’t reliably work right now).&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;I also needed to capture game save information for the 2 or 3 games that I ever play. These were purchased through Steam for my Windows system. Thankfully they are functional on the Linux system with the Steam ProtonDB Windows emulation. To backup the game save information, I found the Windows filesystems in home/&lt;username&gt;/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/compatdata/ and added those to my sync client.
&lt;ol type="1"&gt;
&lt;li&gt;I chose to not use Steam Cloud here because I just have too many save files right now. When I get those reduced to a volume that can reliably live in Steam Cloud then that’s the path I’ll change to.&lt;/li&gt;
&lt;/ol&gt;&lt;/username&gt;&lt;/li&gt;
&lt;li&gt;I tried using &lt;a href="https://wiki.gnome.org/Apps/DejaDup"&gt;Déjà Dup&lt;/a&gt; to create the backups and while it works well there isn’t a lot of reason to add another tool to the backup pipeline when Mega and Filen are syncing things just fine. I did try using Déjà Dup to run backups and store those in my Internxt Drive and let that sync up but that introduces a potential data loss between the time I change a file and the time of the next backup and sync. Again, since Mega and Filen sync in near real time there was no reason to use Déjà Dup here.&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Adding launcher icons for things that don’t otherwise have them&lt;/p&gt;
&lt;ol type="1"&gt;
&lt;li&gt;For example, Anaconda.&lt;/li&gt;
&lt;li&gt;Thankfully, Joe Lotz &lt;a href="https://www.joelotz.com/blog/2021/creating-a-launch-shortcut-for-anaconda-on-ubuntu.html"&gt;has a page for this&lt;/a&gt;. Thanks again Joe.&lt;/li&gt;
&lt;li&gt;Just crete a desktop file in the applications directory: &lt;code&gt;gedit ~/.local/share/applications/&amp;lt;application name&amp;gt;.desktop&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;And then add data to the file:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;[Desktop Entry]
Version=1.0
Type=Application
Name=&amp;lt;app name&amp;gt;
Exec=&amp;lt;path&amp;gt;
Icon=&amp;lt;path&amp;gt;
Terminal=false&lt;/code&gt;&lt;/pre&gt;
&lt;ol type="1"&gt;
&lt;li&gt;Since I’ve only had to do this for Anaconda so far, I can make a list of the app icon locations fairly quickly:
&lt;ol type="1"&gt;
&lt;li&gt;&lt;code&gt;/home/&amp;lt;username&amp;gt;/anaconda3/lib/python3.7/site-packages/anaconda_navigator/app/icons/Icon1024.png&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Getting the graphics to work&lt;/p&gt;
&lt;p&gt;Pop!_OS has a few graphics options built in to the power menu. Initially I set mine to hybrid, thinking that it would be best to use the lower power integrated graphics as the default and then use the discrete GPU when necessary. Now, it became necessary when I was running some machine learning python code, which I was able to get running by adding the command &lt;code&gt;__NV_PRIME_RENDER_OFFLOAD=1 &amp;lt;application&amp;gt;&lt;/code&gt;, per the &lt;a href="https://support.system76.com/articles/graphics-switch-pop/"&gt;support page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But when I tried running switching between GPU enabled apps and integrated apps, especially when using the docking station, I found the system started having power problems and would inevitably freeze. Sometimes these freezes could be recovered by removing the system from the dock, and sometimes I needed to hard reboot and lose whatever I was working it.&lt;/p&gt;
&lt;p&gt;I also found that I was unable to use my two external monitor plus laptop panel setup as the resolutions and zoom settings could not be set such that all three panels were useful at the same time.&lt;/p&gt;
&lt;p&gt;I suspect that my laptop simply does not use the discrete GPU for the external display(s) when in hybrid mode. It looks like &lt;a href="https://github.com/pop-os/nvidia-graphics-drivers/issues/61"&gt;maybe this is a bug with xorg, or that the problem may be solved with the new Cosmic DE&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The solution was to just switch to using the nVidia graphics mode. Since then the performance with the dock has been fine, the system is not freezing when switching between applications, and I can once again use all three panels at the same time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Integrate AppImages&lt;/p&gt;
&lt;ol type="1"&gt;
&lt;li&gt;Use &lt;a href="https://github.com/TheAssassin/AppImageLauncher"&gt;AppImageLauncher&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Designate a directory to store the appimages, and set something to back it up if you like.&lt;/li&gt;
&lt;li&gt;Install the launcher:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;sudo add-apt-repository ppa:appimagelauncher-team/stable
sudo apt update
sudo apt install appimagelauncher&lt;/code&gt;&lt;/pre&gt;
&lt;ol start="4" type="1"&gt;
&lt;li&gt;Run the app and customise the integration directory to point to your designated directory.&lt;/li&gt;
&lt;li&gt;That’s it. Running appimages will pop up the launcher to ask if you want to move them and add launcher icons.&lt;/li&gt;
&lt;li&gt;Thanks to &lt;a href="https://ostechnix.com/integrate-appimages-to-application-menu-using-appimagelauncher/"&gt;ostechnix&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AntiVirus&lt;/p&gt;
&lt;ol type="1"&gt;
&lt;li&gt;I get that a lot of advice says to not bother installing AV for Linux, but I’m hardcoded to need to see AV on my workstation. To this end, I installed &lt;a href="https://www.clamav.net/downloads"&gt;ClamAV&lt;/a&gt; and ClamTK from the Pop!_Shop to be able to use it quickly.&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Keeping lists of installed applications&lt;/p&gt;
&lt;ol type="1"&gt;
&lt;li&gt;To restore from a crash I’ll need to know what is installed.
&lt;ol type="1"&gt;
&lt;li&gt;&lt;code&gt;apt list --installed&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ls /usr/share/applications&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;flatpak list&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Screenshots&lt;/p&gt;
&lt;ol type="1"&gt;
&lt;li&gt;The default screenshot app is fine, but I like to be able to do quick pixelisations or annotations. On Windows I’ve been using Greenshot for years, but they have no Linux option.&lt;/li&gt;
&lt;li&gt;Thankfully, Flameshot exists. Does everything I need it to do on Linux.&lt;/li&gt;
&lt;li&gt;Install the DEB from their &lt;a href="https://github.com/lupoDharkael/flameshot/releases"&gt;GitHub&lt;/a&gt; so that you can configure the system to use the Print Screen button to take a screenshot with the &lt;code&gt;flameshot gui&lt;/code&gt; command. There may be a way to do this with the flatpak version that is available through the Pop!_Shop.&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Changing the behaviour when closing the laptop lid&lt;/p&gt;
&lt;ol type="1"&gt;
&lt;li&gt;Thankfully I didn’t need to do any of this. But just in case &lt;a href="https://ubuntuhandbook.org/index.php/2020/05/lid-close-behavior-ubuntu-20-04/"&gt;this might be useful&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The fingerprint reader&lt;/p&gt;
&lt;ol type="1"&gt;
&lt;li&gt;Apparently is not supported by either the gnome option or any of the other options I was able to find and try, such as fprint.&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;LibreOffice&lt;/p&gt;
&lt;ol type="1"&gt;
&lt;li&gt;Again, I’m interested in kinda forcing myself to stick with Linux by making it look as much as possible like my more familiar Windows surroundings.&lt;/li&gt;
&lt;li&gt;So, &lt;a href="https://www.howtogeek.com/788591/how-to-make-libreoffice-look-like-microsoft-office/"&gt;tweaking LibreOffice&lt;/a&gt; a bit doesn’t hurt.&lt;/li&gt;
&lt;li&gt;I also found that the versions of LibreOffice that come with Pop!_OS don’t seem to upgrade to the newest versions. To resolve this I did a fresh install of the Linux versions of the apps, and then removed those older ones that came with the OS.&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Photo Manager&lt;/p&gt;
&lt;ol type="1"&gt;
&lt;li&gt;One of my big problems is that over the years my photos have become very duplicated and spaghettified. They are spread over hundreds of folder and renamed here and there in attempts to identify or save meta data. At times I’ve done mass restores to separate folders that then were merged - it’s a nightmare.&lt;/li&gt;
&lt;li&gt;After looking through &lt;a href="https://itsfoss.com/linux-photo-management-software/"&gt;some options&lt;/a&gt;, I settled on digiKam to try and help me sort this out. It looks like it does a great job of identifying duplicates which is the first step for me. Now I can go through all the files I have and sort them as I import them and remove the straight up duplicates.&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="customise-apps"&gt;Customise Apps&lt;/h3&gt;
&lt;ol type="1"&gt;
&lt;li&gt;vscodium
&lt;ol type="1"&gt;
&lt;li&gt;Change the terminal with the command palette &lt;code&gt;terminal: select default profile&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Set up sync with the &lt;a href="https://open-vsx.org/vscode/item?itemName=Shan.code-settings-sync"&gt;Settings Sync extension&lt;/a&gt;. Make sure it’s set to Auto Download and Auto Upload, add and remove extensions, and quiet sync (otherwise it keeps popping up an output window and taking the focus from any terminals that are running).&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;PyCharm
&lt;ol type="1"&gt;
&lt;li&gt;Change the terminal here too - use the &lt;a href="https://www.jetbrains.com/help/pycharm/settings-tools-terminal.html#project-settings"&gt;New Terminal&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;pandoc
&lt;ol type="1"&gt;
&lt;li&gt;Required for some of my static sites. pandoc is a pain but it’s easy to fix thanks to &lt;a href="https://stackoverflow.com/a/71585691"&gt;this post&lt;/a&gt;. Basically, in conda you can get it working with &lt;code&gt;conda install pandoc&lt;/code&gt;, and without conda there are other things that need doing.&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ol&gt;</content><category term="Development"></category><category term="Linux"></category><category term="Pop!_OS"></category><category term="Ubuntu"></category><category term="Anaconda"></category><category term="Filen"></category><category term="Internxt"></category><category term="Mega"></category><category term="Timeshift"></category><category term="nbfc"></category><category term="AppImageLauncher"></category><category term="Work in Progress"></category></entry><entry><title>Merging Git Repositories</title><link href="/merging-git-repositories.html" rel="alternate"></link><published>2024-06-27T00:00:00-06:00</published><updated>2024-07-05T00:00:00-06:00</updated><author><name>Brad Lazaruk</name></author><id>tag:None,2024-06-27:/merging-git-repositories.html</id><summary type="html">–</summary><content type="html">&lt;p&gt;I had a bunch of separate git repositories that I wanted to merge into one, while also maintaining the existing git history as much as possible.&lt;/p&gt;
&lt;p&gt;There were three cases: one where the original repository is in a directory which can be simply renamed to fit into the new structure, one where the repository was in a subfolder which needed to be moved up a level or two, and one where there were multiple repositories in a directory which needed to be all be folded together into one directory in the new structure. The new repository should be reformatted so that it looks like all the commits were originally made in the new directory structure. In all cases there are loose files which had been added here and there over time and then not added to the repository at all. Overall, a big mess that I just wanted to get cleaned up, all added to a single repository, and then archived.&lt;/p&gt;
&lt;p&gt;Turns out this is time consuming but not technically challenging. Thanks to &lt;a href="https://stackoverflow.com/a/10548919"&gt;this post&lt;/a&gt; from Andresch Serj, and reinforced with &lt;a href="https://www.slingacademy.com/article/how-to-merge-two-git-repositories-into-one/"&gt;this article on SlingAcademy&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Both of the cases require the use of &lt;a href="https://github.com/newren/git-filter-repo"&gt;git-filter-repo&lt;/a&gt;. To get this to work I simply downloaded the script, placed it into a new ~/opt directory, and set the file to executable. I then added this ~/opt directory to my path with export PATH=/home/&lt;username&gt;/opt:$PATH. I know this is ephemeral but it suits my purposes right now as I’m not sure I’m going to need to add more things to ~/opt in the future.&lt;/username&gt;&lt;/p&gt;
&lt;h3 id="case-1"&gt;Case 1&lt;/h3&gt;
&lt;p&gt;In this case, the source directory contains the development material. But it should be bundled together into a single subfolder so that it fits in the target directory as a sub-project, rather than hanging directly off the root, to make room for further sub-projects to be added.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;root
|- target new directory
|-- target new repository and tracked files
|- existing source directory
|-- existing source repository and tracked files
|-- loose files&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;to&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;root
|- new target directory
|-- subdirectory - exact copy of the source directory
|-- new repository blended with original repository&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;On the terminal, cd into the source directory. Use the command to bundle that material into a new sub-sub-project directory:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;git filter-repo --to-subdirectory-filter &amp;lt;sub-sub-project&amp;gt; --force&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;So, if have a folder structure like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;root
|- 2024_update
|-- source_code&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and I want to have it look like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;root
|- projectAlpha
|-- 2024_update
|--- source_code&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;then I first have to create the desired directory structure in place, with this command issued from the /2024_update folder:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;git filter-repo --to-subdirectory-filter 2024_update --force&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This will leave us with the intermediate structure of&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;root
|- 2024_update
|-- 2024_update
|--- source_code&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now you can go to the target repository and merge the modified repository in.&lt;/p&gt;
&lt;p&gt;Note: In the git remote command be sure of your spelling. The command will not give any error messages if you get the path wrong.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd &amp;lt;into the folder with the target repository&amp;gt;
git remote add &amp;lt;name&amp;gt; /path/to/the/modified_repository
git fetch &amp;lt;name&amp;gt; --tags
git merge --allow-unrelated-histories &amp;lt;name&amp;gt;/&amp;lt;branch name&amp;gt;
git remote remove &amp;lt;name&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The result of this will be the desired target structure and the git repository with the original timestamps and appearing to be commits to the current directory structure. Gather up and add the loose files and commit them to the new directory.&lt;/p&gt;
&lt;h3 id="case-2"&gt;Case 2&lt;/h3&gt;
&lt;p&gt;Here, the source repository is in a subfolder which needs to be moved up.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;root
|- target new directory
|-- target new repository and tracked files
|- existing source directory
|-- loose files
|-- source subfolder
|--- existing source repository
|--- loose files&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;to&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;root
|- new target directory
|-- subdirectory - exact copy of the source directory
|-- new repository blended with original repository&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The process here is mostly the same as in case 1. You just need to use the &lt;code&gt;git filter-repo&lt;/code&gt; command to create the target directory structure from the bottom up.&lt;/p&gt;
&lt;p&gt;So, if have a folder structure like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;root
|- 2024_update
|-- 2023_proposal
|--- july_presentation
|---- source_code&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and I want to have it look like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;root
|- projectAlpha
|-- 2024_update
|--- source_code&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;then I first have to create the desired directory structure in place, with this command issued from the july_presentation folder:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;git filter-repo --to-subdirectory-filter 2024_update --force&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This will leave us with the intermediate structure of&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;root
|- 2024_update
|-- 2023_proposal
|--- july_presentation
|---- 2024_update
|----- source_code&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and the git repository will believe the root of this is the 2024_update directory. Now you can merge this repository into the target repository with the above commands to get the desired structure.&lt;/p&gt;
&lt;h3 id="case-3"&gt;Case 3&lt;/h3&gt;
&lt;p&gt;This case is a touch more complex as there are multiple repositories that need to be merged together to give the appearance that they were always in one repository and under the same parent directory.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;root
|- target new directory
|-- target new repository and tracked files
|- existing source directory
|-- loose files
|-- subdirectory project 1
|--- original repository 1
|--- loose files
|-- subdirectory project 2
|--- original repository 2
|--- loose files
|-- subdirectory project 3
|--- original repository 3
|--- loose files&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;to&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;root
|- target directory
|-- subdirectory1 - exact copy of the source subdirectory 1
|-- subdirectory2 - exact copy of the source subdirectory 2
|-- subdirectory3 - exact copy of the source subdirectory 3
|-- new repository blended with all the original repository&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For this I found it easiest to go through the subfolders and use the above &lt;code&gt;git filter-repo&lt;/code&gt; command to build the desired directory structure for each of the repositories. Then I used the fetch and merge commands above to merge each of those repositories into a new temporary repository, named for the desired new parent folder name. Once all the smaller repositories were folded together the &lt;code&gt;git filter-repo&lt;/code&gt; command is used on the temporary repository to bundle it all together into a single subfolder - and then finally that repository can be merged into the target repository.&lt;/p&gt;
&lt;h2 id="all-cases"&gt;All Cases&lt;/h2&gt;
&lt;p&gt;Done. Not the end of the world, really. Now you can review the folder structure of the new repository to make sure things moved as they should have, and check the git history to see if the merging worked as expected, maintaining the timestamps and respecting the new folder structure. If it didn’t, stop now and re-clone the new repository and do it all over again. If the git commands worked properly but there are some objects in the original directories still well, those were added to the directories but never to any repository. Just add them to the new target directory now so they are captured.&lt;/p&gt;
&lt;p&gt;When everything looks as it should, sync up to GitHub, or archive it however you like. Then you can delete all the old directories so you don’t in the future have to wonder if you ever merged them! Clean as you go!&lt;/p&gt;</content><category term="Development"></category><category term="GitHub"></category><category term="Git"></category></entry><entry><title>Hello, world.</title><link href="/deploy-pelican-to-netlify.html" rel="alternate"></link><published>2022-08-14T14:11:00-06:00</published><updated>2023-06-27T16:31:00-06:00</updated><author><name>Brad Lazaruk</name></author><id>tag:None,2022-08-14:/deploy-pelican-to-netlify.html</id><summary type="html">The quick summary of how I created the shell of this site and deployed it from GitHub to Netlify</summary><content type="html">&lt;p&gt;Well it only seems fitting that the first post I write for this iteration of the site would be a description of how I made it. As I go back and add content from the old site(s) to this one I’m going to manually update the timestamp to the original posting time. So things may be older on the site - but this is the first post. This site is a static site generated with &lt;a href="https://getpelican.com"&gt;Pelican&lt;/a&gt; and hosted on &lt;a href="https://netlify.com"&gt;Netlify&lt;/a&gt;. I chose Pelican because I wanted a static site generator, and I wanted it to be associated with Python if possible, and I wanted to use Markdown to write the actual posts and files. I don’t require anything like Django right now … maybe later.&lt;/p&gt;
&lt;p&gt;Assumptions: You have a &lt;a href="https://github.com"&gt;GitHub&lt;/a&gt; account, and GitHub desktop is installed and configured. &lt;a href="https://anaconda.com"&gt;Anaconda&lt;/a&gt; is installed and configured. You’ve got a Netlify account.&lt;/p&gt;
&lt;h2 id="setup"&gt;Setup&lt;/h2&gt;
&lt;ol type="1"&gt;
&lt;li&gt;&lt;p&gt;I like Anaconda, so I defined a new environment there. I double checked that python was at least version 3.8, and installed pelican and markdown, along with whatever dependencies those brought about.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Since I prefer to use GitHub desktop I fired that up and clicked on File &amp;gt; New Repository. I gave my new repo a name and description and pointed the local path to the repos folder to let the application create the subfolder based on the name of the repository. I created the README so I could populate it later. Since I was creating my own Git ignore file later I did not choose one here and I since this is a Pelican website I used the GNU AGPLv3 license to respect the license of the original project.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now I opened the project folder and create a file called .gitignore. Into .gitignore I added the default Python exclusions from &lt;a href="https://gitignore.io"&gt;gitignore.io&lt;/a&gt;, and at the end of the file I added&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Pelican output directory
    output/&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After committing that to the repo the standard Python bits, as well as the output directory of the site itself, are not going to be pushed to GitHub. That’s fine since Netlify will be rebuilding the output directory locally every time I commit a new change to the repo.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;From inside the project folder, I setup the pelican structure with the command &lt;code&gt;pelican-quickstart&lt;/code&gt;. This launched a configuration wizard. I accepted the defaults except for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;“What will be the title of this web site?”
&lt;ul&gt;
&lt;li&gt;This is written to the pelicanconf.py file as the SITENAME&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;“Who will be the author of this web site?”
&lt;ul&gt;
&lt;li&gt;Written to pelicanconf.py as AUTHOR&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;“Do you want to specify a URL prefix?”
&lt;ul&gt;
&lt;li&gt;Set this to N. When I specified Y then the URL was used instead of relative paths for images which made local development pretty much impossible.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Get the timezone for the site from &lt;a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones"&gt;Wikipedia&lt;/a&gt;, and enter it when prompted.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="customise-pelican-and-prepare-it-for-netlify"&gt;Customise Pelican and Prepare It For Netlify&lt;/h2&gt;
&lt;ol type="1"&gt;
&lt;li&gt;&lt;p&gt;I wanted to have a bit of a theme on the site from the beginning, so I hunted around on &lt;a href="http://pelicanthemes.com"&gt;pelicanthemes.com&lt;/a&gt; and settled on the &lt;a href="https://github.com/molivier/nest"&gt;nest&lt;/a&gt; theme. After messing about with it a bit I discovered that it needed to be changed to work with the version of Pelican I was using. So I &lt;a href="https://github.com/lazarukb/nest"&gt;forked&lt;/a&gt; the original theme and applied the changes to the fork.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;To do the changes I edited base.html on the theme and changed four instances of ‘|format(’ to be ‘.format(slug=’, so that CATEGORY_FEED_ATOM|format(category.slug) becomes ‘CATEGORY_FEED_ATOM.format(slug=category.slug)’.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After that, I created a /theme folder in the project folder, and downloaded the theme to it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the project folder under /content, I added an images folder and a file there for the logo of the site. I scaled it down to 25x25. I also added an image for the background of the header.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To pelicanconf.py I added the &lt;a href="https://github.com/molivier/nest"&gt;default configuration information for the theme&lt;/a&gt;. Among other customisations for various strings I pointed the site logo to ‘/images/logo.png’, including the path, and homepage header image specified as the filename only, ‘header-scaled.jpg’.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;That should be the base of the site. I committed those changes to the repo and test built the site locally with&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pelican content -d -s publishconf.py -t theme --autoreload
pelican --listen&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;… which you can now combine on Windows as&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pelican content -d -s publishconf.py -t theme --autoreload --listen&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Alternatively you can skip the second command for –listen and use a local server like Live Server in vscode to actually view the site.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;-d&lt;/code&gt; flag causes pelican to delete the content directory before rebuilding the site. The &lt;code&gt;--autoreload&lt;/code&gt; flag tells pelican to keep watch on the content folders and rebuild the site automatically when content is added, edited, or removed. As expected, that gave me a functioning site on http://localhost:8000 with the logo and background images I specified.&lt;/p&gt;
&lt;ol type="1"&gt;
&lt;li&gt;Special usage note: until the site is building reliably, just use&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;pelican content -d -s publishconf.py -t theme&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;…so you can see the console errors in the build process.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now that the shell is working, I created a requirements.txt file of the working environment, both as a checkpoint myself and also so Netlify will be able to duplicate it, with the command &lt;code&gt;pip freeze &amp;gt; requirements.txt&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When I tested this originally, Netlify was deploying the site with Python 2.7 which was not at all working. So to specify the version of Python I was using locally, 3.8, per &lt;a href="https://docs.netlify.com/configure-builds/manage-dependencies/#python"&gt;the docs&lt;/a&gt; I created a runtime.txt file in the root of the project, and added &lt;strong&gt;3.8&lt;/strong&gt; to that file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After committing those changes to the repo, it’s ready to go. So I published it to GitHub with the desktop app. I left the repo set to private at this point.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="deploy-the-site-to-netlify"&gt;Deploy the site to Netlify&lt;/h2&gt;
&lt;p&gt;All that remains is to deploy the site with Netlify.&lt;/p&gt;
&lt;ol type="1"&gt;
&lt;li&gt;I logged in to Netlify and selected Sites &amp;gt; Add New Site &amp;gt; Import an existing project.&lt;/li&gt;
&lt;li&gt;On the next page, I clicked GitHub.
&lt;ul&gt;
&lt;li&gt;The first time I did this I needed to connect my Netlify account to my GitHub account by following the prompts.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Once GitHub and Netlify were connected, I did a search on my repos to find the one for the website, and selected it.&lt;/li&gt;
&lt;li&gt;On the next page:
&lt;ul&gt;
&lt;li&gt;on &lt;em&gt;branch to deploy&lt;/em&gt; I selected &lt;strong&gt;main&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;em&gt;base directory&lt;/em&gt; I left blank.&lt;/li&gt;
&lt;li&gt;The &lt;em&gt;build command&lt;/em&gt; is &lt;code&gt;pelican content -s publishconf.py -t theme&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;The &lt;em&gt;publish directory&lt;/em&gt; is &lt;strong&gt;output&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;That’s it. I clicked on Deploy Site and awaited …&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;… the shell of my site was deployed to Netlify. Volia.&lt;/p&gt;
&lt;p&gt;After that all that remained was to re-direct my domain to point here, and configure the Let’s Encrypt certificate to enable HTTPS. This is available under the Netlify Site settings for the new site. Following the directions on the Netlify pages this change took me all of 4 minutes of editing on my DNS server, and the deployment of the SSL certificate was a couple of clicks and otherwise automatically done in a few minutes.&lt;/p&gt;
&lt;p&gt;And that’s it. After several years of stalling I have completed a reasonable starting point for a new static site version of the website and deployed it. Took me a couple of hours to figure it all out, and maybe 20 minutes start to finish for the final production version. Hope this helps.&lt;/p&gt;
&lt;hr/&gt;
&lt;h3 id="thanks"&gt;Thanks!&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://razcodes.dev/"&gt;Raz&lt;/a&gt;, for general direction &lt;a href="https://dev.to/razcodes/how-to-create-a-static-website-using-pelican-24he"&gt;here&lt;/a&gt; and &lt;a href="https://dev.to/razcodes/how-to-deploy-your-static-pelican-website-to-netlify-55d7"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://frankcorso.dev/"&gt;Frank Corso&lt;/a&gt; for the general directions &lt;a href="https://frankcorso.dev/deploying-your-pelican-static-site-to-netlify.html"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/mirajpatel19"&gt;Miraj Patel&lt;/a&gt; for the pointers to hack the theme so it would work with Pelican 4 &lt;a href="https://github.com/getpelican/pelican/issues/2489#issuecomment-472176621"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="Development"></category><category term="Pelican"></category><category term="Python"></category><category term="Netlify"></category><category term="GitHub"></category></entry><entry><title>Building a learning log with Python</title><link href="/learning-log.html" rel="alternate"></link><published>2023-06-27T00:00:00-06:00</published><updated>2023-06-27T00:00:00-06:00</updated><author><name>Brad Lazaruk</name></author><id>tag:None,2023-06-27:/learning-log.html</id><summary type="html">How I built my learning log exporter</summary><content type="html">&lt;p&gt;Since I started using &lt;a href="https://coursera.org"&gt;Coursera&lt;/a&gt; and &lt;a href="https://edx.org"&gt;edX&lt;/a&gt; back in 2014, I’ve completed a lot of courses. I still have many more that I’d like to complete.&lt;/p&gt;
&lt;p&gt;Keeping a list of these was easy enough with bookmarks. But then I came across a page on the website of Sébastien Lavoie, &lt;a href="https://www.sglavoie.com/posts/2022/06/18/what-it-took-to-propel-a-career-in-tech-in-five-years/"&gt;What it took to propel a career in tech in five years&lt;/a&gt;. Sébastien and I both attended the University of London Bachelor of Computer Science programme, and I thought his listing of what education and learnings he had completed was a great idea. Not only that, but Sébastien’s site and my own are both based in &lt;a href="https://getpelican.com"&gt;Pelican&lt;/a&gt; … so basically I decided to fork his idea to list all my learnings in a spreadsheet and write some code to convert that to markdown. (… one day I should look into his code and update my own. :-) )&lt;/p&gt;
&lt;p&gt;There is a lot more work that I want to do on this, especially before I post the code on GitHub. But the output so far is giving me what I wanted, separate lists of &lt;a href="/learning-queue.html"&gt;queued learning&lt;/a&gt;, &lt;a href="/learning-in-progress.html"&gt;in progress learning&lt;/a&gt;, and &lt;a href="/learning-completed.html"&gt;completed learning&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Thanks for the inspiration Sébastien.&lt;/p&gt;</content><category term="lifelong learning"></category><category term="learning"></category><category term="python"></category></entry><entry><title>Add to Pelican - Sitemap and Robots.txt</title><link href="/add-sitemap-and-robots-to-pelican.html" rel="alternate"></link><published>2022-09-11T00:00:00-06:00</published><updated>2022-09-11T00:00:00-06:00</updated><author><name>Brad Lazaruk</name></author><id>tag:None,2022-09-11:/add-sitemap-and-robots-to-pelican.html</id><summary type="html">–</summary><content type="html">&lt;p&gt;Finally with some more time on my hands I fixed up the last bit of the site migration from Wordpress to Pelican: adding the sitemap and robots.txt file.&lt;/p&gt;
&lt;p&gt;The robots.txt file was easy, as this is a static file in the first place. Just create the file in /content/extra and on the next build it will be available in the output.&lt;/p&gt;
&lt;p&gt;The sitemap is a bit more involved. Fortunately, there’s &lt;a href="https://github.com/pelican-plugins/sitemap"&gt;a plugin for that&lt;/a&gt;.&lt;/p&gt;
&lt;ol type="1"&gt;
&lt;li&gt;Add the sitemap plugin to your environment.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;python -m pip install pelican-sitemap&lt;/code&gt;&lt;/pre&gt;
&lt;ol start="2" type="1"&gt;
&lt;li&gt;Update your requirements.txt so the deployments to other environments, like Netlify when this is published, also add the plugin.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;pip freeze &amp;gt; requirements.txt&lt;/code&gt;&lt;/pre&gt;
&lt;ol start="3" type="1"&gt;
&lt;li&gt;Add the configuration of the plugin to pelicanconf.py file.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;    SITEMAP = {
    "format": "xml",
    "priorities": {
        "articles": 0.5,
        "indexes": 0.5,
        "pages": 0.5
    },
    "changefreqs": {
        "articles": "monthly",
        "indexes": "daily",
        "pages": "monthly"
    },
    "exclude": ["tag/", "category/", "author/"]
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And … that’s that. Super easy. Pelican is great.&lt;/p&gt;</content><category term="Development"></category><category term="Pelican"></category><category term="Python"></category><category term="Netlify"></category><category term="GitHub"></category><category term="Sitemap"></category><category term="Pelican Plugins"></category></entry><entry><title>Email Sieve Filtering with Simplelogin</title><link href="/sieve-filtering-with-simplelogin.html" rel="alternate"></link><published>2022-09-10T00:00:00-06:00</published><updated>2022-09-10T00:00:00-06:00</updated><author><name>Brad Lazaruk</name></author><id>tag:None,2022-09-10:/sieve-filtering-with-simplelogin.html</id><summary type="html">–</summary><content type="html">&lt;p&gt;Recently I started using &lt;a href="https://simplelogin.io"&gt;Simplelogin&lt;/a&gt;. A wonderful service, it lets you create temporary email addresses and disable or delete them when you don’t want them anymore.&lt;/p&gt;
&lt;p&gt;I also get to redirect all my domain email through there so I can use throwaway email addresses with my own &lt;span class="citation" data-cites="lazaruk.com"&gt;@lazaruk.com&lt;/span&gt; domain.&lt;/p&gt;
&lt;p&gt;But on the downside, once I turned it on, all my email filters broke. Most of them were based on sender email addresses or domains in the SMTP header &lt;em&gt;from&lt;/em&gt; field, and with Simplelogin intercepting all the emails the addresses all changed and the domain for all email reaching me is now simplelogin.co.&lt;/p&gt;
&lt;p&gt;I’ve had the same email address for 25 years, and I have no intention of disabling it. So for those spammers that are sending to my main address I need to filter their mail after Simplelogin has forwarded it.&lt;/p&gt;
&lt;p&gt;This gave me the reason to finally figure out the &lt;a href="http://sieve.info/"&gt;Sieve&lt;/a&gt; email filtering that my mail service provider has.&lt;/p&gt;
&lt;p&gt;In the end I was able to work out three filters: one for the name that the sender included in their email, one for their original &lt;em&gt;from&lt;/em&gt; address, and another for the &lt;em&gt;Message-ID&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;To-Do&lt;/strong&gt;: I’m sure there are too many commands in the require statements. I still need to go through those and reduce them to the minimum required.&lt;/p&gt;
&lt;h3 id="name"&gt;Name&lt;/h3&gt;
&lt;p&gt;By far the easiest to implement, probably the most useful for filtering people that I know, and also the least likely to be useful for filtering spammers. Spammers will easily change the “name” that they appear to send their email from. On the other hand, my friends “Bob McGoodGuy” and “Alice SeemsFriendly” always configure their email accounts to send their name as the &lt;em&gt;from&lt;/em&gt; field.&lt;/p&gt;
&lt;p&gt;So to file emails from my friends, I use this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;require ["include", "environment", "variables", "relational", "comparator-i;ascii-numeric"];
require ["fileinto"];

if allof (address :all :comparator "i;unicode-casemap" :contains "From" ["Bob McGoodGuy", "Alice SeemsFriendly"]) {
    fileinto "Mail from friends";
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;While to reject emails from “Eve Real-Person”, who just won’t leave me alone, this does the trick:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;require ["include", "environment", "variables", "relational", "comparator-i;ascii-numeric"];
require ["reject"];

if allof (address :all :comparator "i;unicode-casemap" :contains "From" "Eve Real-Person") {
    reject "550 5.1.1: Recipient address rejected: Address does not exist";
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id="from-address"&gt;From: Address&lt;/h3&gt;
&lt;p&gt;Now some spammers will fiddle with their &lt;em&gt;from&lt;/em&gt; name, but leave the email address they are sending from alone. Also, this filter works for catching those distribution lists that are not respecting unsubscribe requests. They often send from the same addresses or domains and so are easy to filter. It can also be used to reject entire domains.&lt;/p&gt;
&lt;p&gt;But as I noted above, the &lt;em&gt;from&lt;/em&gt; field is always changed by Simplelogin. You can set it up so that the “name” portion is retained and still comes through in the &lt;em&gt;from&lt;/em&gt; field. But the address is always changed.&lt;/p&gt;
&lt;p&gt;To resolve this, I configured Simplelogin to include to original sender in the email headers (just a click in their settings). And now I just have to have my sieve filter scan the &lt;em&gt;X-Simplelogin-Envelope-From&lt;/em&gt; field in the header and compare the original name and email address information with those that I want to filter.&lt;/p&gt;
&lt;p&gt;All this also has the nice effect of surviving and functioning if I choose to change the way Simplelogin presents the original sender name to me. There are a few options, but changing them won’t break these sieve filters.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;require ["include", "environment", "variables", "relational", "comparator-i;ascii-numeric"];
require ["imap4flags", "reject"];

if anyof (header :is "X-Simplelogin-Envelope-From" ["daily-list.ext", "newsletter@daily-list.ext", "idiot06@yahoo.ca", "Spammer McSpammyPants"]) {
    reject "550 5.1.1: Recipient address rejected: Address does not exist";
}&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id="message-id"&gt;Message-ID&lt;/h3&gt;
&lt;p&gt;The most complicated so far is for those spammers that change the name and email domain in the header &lt;em&gt;from&lt;/em&gt; field. This, of course, is most of them.&lt;/p&gt;
&lt;p&gt;Now I’m sure this will be an evolving battle.&lt;/p&gt;
&lt;p&gt;Even if their names and domains are forged, they still need to send the emails from somewhere. And those spammers that are concerned about not wasting their time and resources will put in legitimate addresses to catch bouncebacks from mailboxes that no longer exist. That way when they receive a “550” error that my mailbox doesn’t exist they stop sending mail to that address.&lt;/p&gt;
&lt;p&gt;I know that this field is set by the spammers so they can technically forge it too, but right now the &lt;em&gt;Message-ID&lt;/em&gt; field is giving me enough to filter them with.&lt;/p&gt;
&lt;p&gt;Checking into the headers of the recent batches of spam, I noted they were coming from a few specific domains. So I added a filter to scan the &lt;em&gt;Message-ID&lt;/em&gt; field and trigger if those domains are found.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;require ["include", "environment", "variables", "relational", "comparator-i;ascii-numeric", "imap4flags", "reject"];

if anyof (header :contains "Message-Id" ["@spammer-domain.com", "@alter.spammers.co", "@another.spammer.net"]) {
    reject "550 5.1.1: Recipient address rejected: Address does not exist";
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And voila. Regardless of the name and email address that the spammer uses, this does the job in rejecting messages that include those domains in the &lt;em&gt;Message-ID&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;So for so good!&lt;/p&gt;</content><category term="Note to Self"></category><category term="sieve filtering"></category><category term="simplelogin"></category></entry><entry><title>Remember to Disable Caching</title><link href="/disable-caching.html" rel="alternate"></link><published>2022-09-02T00:00:00-06:00</published><updated>2022-09-02T00:00:00-06:00</updated><author><name>Brad Lazaruk</name></author><id>tag:None,2022-09-02:/disable-caching.html</id><summary type="html">–</summary><content type="html">&lt;p&gt;Remember when doing site development work to disable local caching in the browser dev tools.&lt;/p&gt;
&lt;figure&gt;
&lt;img alt="Disable caching on the browser when doing site development" src="/images/devtools.png"/&gt;&lt;figcaption aria-hidden="true"&gt;Disable caching on the browser when doing site development&lt;/figcaption&gt;
&lt;/figure&gt;</content><category term="Note to Self"></category><category term="caching"></category></entry><entry><title>Fixing my Pelican to display images</title><link href="/fixing-pelican-to-show-images.html" rel="alternate"></link><published>2022-09-02T00:00:00-06:00</published><updated>2022-09-02T00:00:00-06:00</updated><author><name>Brad Lazaruk</name></author><id>tag:None,2022-09-02:/fixing-pelican-to-show-images.html</id><summary type="html">–</summary><content type="html">&lt;p&gt;I found that the Pelican site theme I was using was automatically expanding images to 100% width, which I didn’t want to have. I also wanted to use captions on my images.&lt;/p&gt;
&lt;p&gt;Thanks to &lt;a href="https://www.joelotz.com/blog/2021/use-pandoc-markdown-in-pelican.html"&gt;Joe Lotz&lt;/a&gt; I was able to sort this out.&lt;/p&gt;
&lt;p&gt;This involved switching from the Pelican provided &lt;a href="https://python-markdown.github.io/"&gt;Python Markdown&lt;/a&gt; to &lt;a href="https://garrettgman.github.io/rmarkdown/authoring_pandoc_markdown.html"&gt;Pandoc Markdown&lt;/a&gt;. This adds a whole bunch more Markdown functionality to the site.&lt;/p&gt;
&lt;ol type="1"&gt;
&lt;li&gt;Add Pandoc and the Pelican Pandoc reader to your environment.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;python -m pip install pandoc
python -m pip install pelican-pandoc-reader&lt;/code&gt;&lt;/pre&gt;
&lt;ol start="2" type="1"&gt;
&lt;li&gt;Update your requirements.txt so the deployments to other environments, like Netlify when this is published, also do this.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;pip freeze &amp;gt; requirements.txt&lt;/code&gt;&lt;/pre&gt;
&lt;ol start="3" type="1"&gt;
&lt;li&gt;I wanted to extend the site CSS to use my own CSS file. But I also wanted to not make a lot of changes to the source CSS of the theme if possible. So I created a new CSS file under /theme/static/css and then updated /theme/templates/base.html and added my css file in last. I also had to edit the pelicanconf.py file and change the line &lt;code&gt;NEST_CSS_MINIFY = True&lt;/code&gt; to &lt;code&gt;NEST_CSS_MINIFY = False&lt;/code&gt;; without this change the minified css file is used instead and my custom css is ignored.&lt;/li&gt;
&lt;li&gt;Now I was able to comment out the &lt;code&gt;width: 100%&lt;/code&gt; and &lt;code&gt;height: 100%&lt;/code&gt; from nest.css, and add the captioning CSS that I wanted to use to lazaruk.css.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This also served as a good reminder that css settings for images override the settings on individual images. Because I wanted to use the individual settings to define image size I needed comment those out of the css completely.&lt;/p&gt;</content><category term="Development"></category><category term="Pelican"></category><category term="Python"></category><category term="Netlify"></category><category term="GitHub"></category><category term="Pandoc"></category></entry><entry><title>Evidence for Evolution</title><link href="/papers-showing-evidence-for-evolution.html" rel="alternate"></link><published>2020-09-02T00:00:00-06:00</published><updated>2022-08-21T00:00:00-06:00</updated><author><name>Brad Lazaruk</name></author><id>tag:None,2020-09-02:/papers-showing-evidence-for-evolution.html</id><summary type="html">A collection of scientific papers that together provide more evidence for biological evolution than one person should really need</summary><content type="html">&lt;p&gt;Back in previous years I used to do a lot of arguing on Twitter about evolution. It was fun for a time.&lt;/p&gt;
&lt;p&gt;When I discovered &lt;a href="https://www.coursera.org"&gt;Coursera&lt;/a&gt; I also found a wonderful course called &lt;a href="https://www.coursera.org/learn/genetics-evolution"&gt;Introduction to Genetics and Evolution&lt;/a&gt;, taught by the wonderful Dr. Mohamed Noor from Duke University. I thought this would be a great course to help me get some more ammunition for my arguments about evolution.&lt;/p&gt;
&lt;p&gt;But instead what I found was that I had really missed learning. So eventually I enrolled in another course, &lt;a href="https://www.coursera.org/learn/papers-molecular-genetics"&gt;Classical Papers in Molecular Genetics&lt;/a&gt; by Dominique Belin of the University of Geneva.&lt;/p&gt;
&lt;p&gt;(This course really knocked me on my butt. It’s utterly amazing what people were able to hypothesise, isolate, discover, and document back before they even were certain what DNA was even composed of. They were mapping exact segments of DNA before anyone had even seen DNA. Incredible.)&lt;/p&gt;
&lt;p&gt;From the readings of that course I put together this list of papers that I would send to evolution deniers, or those who would say there was no evidence for evolution. I’m sure there were more at one point so I guess I’ll have to revisit that course and gather the papers up again.&lt;/p&gt;
&lt;hr/&gt;
&lt;ol type="1"&gt;
&lt;li&gt;&lt;p&gt;Paper exploring a possible hereditary, genetic cause of disease E. Garrod, The Incidence of Alkaptonuria: A Study in Chemical Individuality, Lancet vol 2, 1616-20 (1902). &lt;a href=""&gt;http://www.esp.org/foundations/genetics/classical/ag-02.pdf&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;1944 paper showing that genetic heritability has a chemical foundation and that DNA is likely the carrier Avery et al., Studies on the chemical nature of the substance inducing transformation of pneumococcal types, J.Exp.Med. 79, 137-158 (1944). &lt;a href=""&gt;http://jem.rupress.org/content/79/2/137.full.pdf+html&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;1953 paper showing the first determinations of the structure of DNA. &lt;a href=""&gt;http://www.nature.com/nature/dna50/watsoncrick.pdf&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;1943 paper showing that specific beneficial mutations can be isolated and duplicated in a population, indicating such mutations are not wholly random. S.E. Luria &amp;amp; M. Delbrück. Mutations of bacteria from virus sensitivity to virus resistance. Genetics 28, 491-511 (1943). &lt;a href=""&gt;http://www.genetics.org/content/28/6/491.full.pdf+html&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Seymour Benzer’s work in mutating specific sections of DNA, controlling inherited changes. &lt;a href=""&gt;http://www.pnas.org/content/47/3/403.full.pdf&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;</content><category term="Evolution"></category><category term="Coursera"></category><category term="Twitter"></category></entry><entry><title>PowerPoint Wrapping In The Middle of a Word</title><link href="/powerpoint-words-wrapping.html" rel="alternate"></link><published>2022-08-21T00:00:00-06:00</published><updated>2022-08-21T00:00:00-06:00</updated><author><name>Brad Lazaruk</name></author><id>tag:None,2022-08-21:/powerpoint-words-wrapping.html</id><summary type="html">How to stop Microsoft PowerPoint from wrapping words in the middle of a word</summary><content type="html">&lt;p&gt;I had a PowerPoint document that I inherited where the text boxes were allowing words to be split in the middle of the word. Turns out the solution, copied/pasted below, was this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Your presentation was edited at one time on a computer running an oriental language. When that happened, an obscure PowerPoint setting got applied to it. If it’s just a few placeholders that are affected, here’s how to fix it:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;ol type="1"&gt;
&lt;li&gt;Choose File&amp;gt;Options&amp;gt;Language. In the Office authoring languages and proofing section, click Add a Language.&lt;/li&gt;
&lt;li&gt;Choose an Asian language (Chinese, Japanese, Korean all will work). OK out and restart all Office programs.&lt;/li&gt;
&lt;li&gt;Open your deck in PowerPoint.&lt;/li&gt;
&lt;li&gt;Select the text in an affected text box or text placeholder.&lt;/li&gt;
&lt;li&gt;Open the Home&amp;gt;Paragraph dialog and click on the Asian Typography tab.&lt;/li&gt;
&lt;li&gt;Uncheck the option for Allow Latin text to wrap in the middle of a Word. OK out.&lt;/li&gt;
&lt;li&gt;Repeat steps 4 to 6 for all other affected text boxes and text placeholders.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;If the presentation is large and the problem is widespread, take an alternate approach:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;ol type="1"&gt;
&lt;li&gt;Use File&amp;gt;Save As and change the Save as type to PowerPoint XML Presentation (*.xml).&lt;/li&gt;
&lt;li&gt;Open the XML file in NotePad&lt;/li&gt;
&lt;li&gt;Choose Edit&amp;gt;Replace.&lt;/li&gt;
&lt;li&gt;In the Find what field, type latinBreak=“1”.&lt;/li&gt;
&lt;li&gt;In the Replace with field, type latinBreak-“0”&lt;/li&gt;
&lt;li&gt;Choose Replace All.&lt;/li&gt;
&lt;li&gt;Save the file and close NotePad.&lt;/li&gt;
&lt;li&gt;Open PowerPoint and use File&amp;gt;Open to find and reopen the XML version. Resave in the normal PowerPoint pptx format. All English text will now break normally.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;Source: &lt;a href="https://answers.microsoft.com/en-us/msoffice/forum/all/powerpoint-text-box-issue-how-to-stop-text/9f574574-d287-4394-86d9-1c44d667098f"&gt;PowerPoint text box issue: how to stop text splitting in the middle of words in a text box MS PowerPoint 365 plz i need answer&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</content><category term="note to self"></category><category term="PowerPoint"></category></entry><entry><title>Problems with BOINC</title><link href="/my-problems-with-boinc.html" rel="alternate"></link><published>2022-08-19T08:59:00-06:00</published><updated>2022-08-19T08:59:00-06:00</updated><author><name>Brad Lazaruk</name></author><id>tag:None,2022-08-19:/my-problems-with-boinc.html</id><summary type="html">Solving a problem with getting BOINC and World Community Grid to download new work to me</summary><content type="html">&lt;p&gt;I’m a long time user of &lt;a href="https://boinc.berkeley.edu/"&gt;BOINC&lt;/a&gt;. In fact I was an early user of the old SETI@Home project before BOINC was even established.&lt;/p&gt;
&lt;p&gt;Over the years I’ve tried some project managers with BOINC, starting with &lt;a href="http://www.gridrepublic.org/"&gt;GridRepublic&lt;/a&gt;, and then moving to &lt;a href="https://www.worldcommunitygrid.org/"&gt;World Community Grid&lt;/a&gt; when I joined IBM in 2005.&lt;/p&gt;
&lt;p&gt;A few years ago it seemed to me that GridRepublic was no longer being maintained and so I dabbled with &lt;a href="https://scienceunited.org/"&gt;ScienceUnited&lt;/a&gt; as well.&lt;/p&gt;
&lt;p&gt;But in the end I didn’t like the strain that ScienceUnited was putting on my laptop, and I felt that I had to spend far too much time tweaking and monitoring it so that it completed the work units on time. So I decided to switch back to World Community Grid where I could easily specify limits that I was comfortable with and knew they would be respected.&lt;/p&gt;
&lt;p&gt;At the beginning of 2022, IBM transferred the WCG project to Krembil, and as part of the migration all work was stopped. When the project came back online I wasn’t getting new work units.&lt;/p&gt;
&lt;p&gt;So today I finally took the time to look into this.&lt;/p&gt;
&lt;p&gt;Removing and re-adding the WCG project from BOINC didn’t solve the problem. In fact, I was unable to re-add the project at all to my BOINC manager; I just got errors when trying to do so. So I tried removing the application entirely and re-installing from the version downloaded from the BOINC website, and from the WCG website. Neither of those solved the problem. I was sometimes able to add the project to the BOINC manager, and sometimes not. But even when it did add I was unable to get any work units to transfer.&lt;/p&gt;
&lt;p&gt;Performing a scrub of the program files directories and the registry didn’t move things forward for me either.&lt;/p&gt;
&lt;p&gt;But finally, installing the BOINC client as downloaded from ScienceUnited and then using it to attach to World Community Grid worked. The project attached and new work units are being downloaded in a reasonable timeframe.&lt;/p&gt;
&lt;p&gt;Odd. But it works.&lt;/p&gt;</content><category term="note to self"></category><category term="BOINC"></category><category term="GridRepublic"></category><category term="World Community Grid"></category><category term="ScienceUnited"></category></entry><entry><title>Updating Anaconda Navigator</title><link href="/updating-anaconda-navigator.html" rel="alternate"></link><published>2021-03-25T00:00:00-06:00</published><updated>2021-03-25T00:00:00-06:00</updated><author><name>Brad Lazaruk</name></author><id>tag:None,2021-03-25:/updating-anaconda-navigator.html</id><summary type="html">Updating Anaconda Navigator</summary><content type="html">&lt;p&gt;For whatever reason my installations of Anaconda Navigator always refuse to update through the GUI. No matter how many times I click the Yes to upgrade, nothing happens.&lt;/p&gt;
&lt;p&gt;So finally I found 15 seconds where I was both tired of this situation and had the clarity of thought to do something about it.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;conda deactivate
conda update anaconda-navigator&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Problem solved. Sigh.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Source: &lt;a href="https://docs.anaconda.com/anaconda/navigator/update-navigator/"&gt;Updating Navigator — Anaconda documentation&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</content><category term="note to self"></category><category term="Anaconda"></category><category term="conda"></category></entry></feed>