All posts by admin

How to Disable Automatic Updates on Windows Server

Motivation:

You have a  Windows Server 2016 server. The server Windows updates are being downloaded and installed automatically. This may affect your customers’ usage. You want to disable it so that you can install Windows updates when you find most appropriate.

Solution:
  1. Open Command Prompt (Admin).
  2. Type sconfig and press Enter.
  3. Press 5 (Windows Update Settings:), then press Enter.
  4. Press D (to select DownloadOnly option), then press Enter.
  5. Click OK button.
  6. Press 13 (Restart Server), then press Enter.
  7. Click Yes button to restart your server.

To disable automatic reboots in inactive hours, you can try the steps below.

1. Click Start and type Task Scheduler.
2. Expand Task Scheduler Library >> Microsoft >> Windows .
3. Click  UpdateOchestrator.
4. Right-click on Reboot and select Disable.

 

How to Fix EPUB Processing Failure on Google Play Books

Problem:

You uploaded EPUB file to Google Play Books but received Processing Failed error message.

Solution 1:
  1. Open https://ebook.online-convert.com/convert-to-epub.
  2. Click Choose File and select EPUB file.
  3. Wait for the uload to be complete.
  4. Click the Start button.
  5. Download the new EPUB file.
  6. Upload the new EPUB file to Google Play Books.
  7. If this solution does not fix the issue, please try solution 2 below.
Solution 2:
  1. Open https://www.zamzar.com.
  2. Click Choose Files and select EPUB file.
  3. Click Convert To and select azw3.
  4. Click Convert Now button.
  5. Download the azw3 file.
  6. Return to https://www.zamzar.com.
  7. Click Choose Files and select azw3 file.
  8. Click Convert To and select EPUB.
  9. Click Convert Now button.
  10. Download the EPUB file.
  11. Upload the EPUB file to Google Play Books.

Note: https://www.zamzar.com offers only 2 free daily conversions.

 

 

Topic 26 – Introduction to Cloud Computing

Why do I need to learn about cloud computing?

Because you will develop software systems that often leverage cloud services for quick deployment, scalable computation, and storage.

What can I do after finishing learning cloud computing?

You will be able to

  • deploy software systems to public clouds,
  • build your private cloud,
  • develop software using cloud plaftforms,
  • develop software using cloud services,
  • leverage cloud services for training and deploying machine learning models,
  • leverage cloud services for big data analytics and reporting.

What should I do now?

First, please read this book to learn about the core concepts of cloud computing: Dan C. Marinescu (2022). Cloud Computing – Theory and Practice. Morgan Kaufmann.

After that, please read this book to gain hands-on experience with Amazon cloud services: Andreas Wittig and Michael Wittig (2022). Amazon Web Services in Action. Manning Publications.

After that, please read this book to gain hands-on experience with VMware private cloud products: Nick Marshall et al. (2019). Mastering VMware vSphere 6.7. Sybex.

After that, please read the books below to gain hands-on experience with Salesforce platform features:

After that, please read this book to gain hands-on experience with Hadoop and Spark systems: Tomasz Wiktorski (2019). Data-Intensive Systems – Principles and Fundamentals using Hadoop and Spark. Springer.

Terminology Review:

  • Software as a Service
  • Multitenancy
  • Infrastructure as a Service
  • Virtual Machines
  • Software-Defined Networking
  • Infrastructure as Code (IaC)
  • Platform as a Service
  • Containers as a Service
  • Function as a Service (Serverless Computing)
  • File Storage
  • Block Storage
  • Object Storage
  • Direct-Attached Storage (DAS)
  • Network-Attached Storage (NAS)
  • Storage Area Network (SAN)
  • GFS
  • Bigtable
  • MapReduce

After finishing cloud computing, please click on Topic 27 – Introduction to Blockchain to continue.

 

Topic 25 – Introduction to Distributed Systems

Why do I need to learn about distributed systems?

Distributed systems provide the foundation for understanding the theories and techniques behind cloud computing and blockchain technology.

The architectures, protocols, and algorithms introduced in distributed systems are also necessary for creating complex software.

What can I do after finishing learning distributed systems?

You will be able to design software that can

  • tolerate faults,
  • shard data,
  • handle massive number of requests, and
  • perform expensive computations.

You will also be prepared to learn about cloud computing and blockchain technology.

What should I do now?

First, please audit this course to familiarize yourself with the core concepts and protocols of distributed systems: Distributed Systems, UC Santa Cruz Baskin School of Engineering, 2021.

Afterward, please audit the course and read the books below to learn how to design large-scale distributed systems:

Terminology Review:

  • Fault Tolerance
  • Consistency
  • System Models
  • Failure Detectors
  • Communication
  • Ordering
  • State Machine Replication
  • Primary-Backup Replication
  • Bully Algorithm
  • Ring Election
  • Multi-Leader Replication
  • Leaderless Replication
  • Cristian’s Algorithm
  • Berkeley Algorithm
  • Lamport Clocks
  • Vector Clocks
  • Version Vectors
  • Chain Replication
  • Consensus
  • FLP
  • Raft
  • Paxos
  • Viewstamped Replication
  • Zab
  • Consistent Hashing
  • Distributed Transactions
  • ACID
  • Two-Phase Commit
  • Three-Phase Commit
  • Serializability
  • Two-Phase Locking
  • Distributed Locks
  • CAP
  • Consistency Models
  • Linearizability
  • Distributed Architectures
  • Distributed Programming
  • Hadoop
  • Spark
  • Tensorflow
  • PyTorch
  • Kubernetes
  • Bitcoin
  • Smart Contracts

After finishing distributed systems, please click on Topic 26 – Introduction to Cloud Computing to continue.

 

When to Use Cloud Resources

Motivation:

  • You are using on-premises virtual servers and storage for your services.
  • You wonder whether you should move your services to public cloud, such as AWS or Azure or Google Cloud, in order to reduce hardware and maintenance cost.

Suggestions:

  1. It is common that cloud resources for system running 24/7 are much more expensive than private resources.

  2. Cloud resources are suitable for 
    • a very big system that needs to be run only once within limited time, or
    • startup with many consolidated services on single small virtual server, or
    • testing purpose, or
    • a very big company with big budget who want reliable and elastic resources.

       

      Topic 20 – Discrete Mathematics

      Why do I need to learn about discrete mathematics?

      Discrete mathematics is a fundamental tool for understanding many theories and techniques behind artificial intelligence, machine learning, deep learning, data mining, security, digital imagine processing and natural language processing.

      The problem-solving techniques and computation thinking introduced in discrete mathematics are necessary for creating complicated software too.

      What can I do after finishing learning discrete mathematics?

      You will be equipped with the core concepts of logic, set theory, number theory, combinatorics, graph theory, Boolean algebra, and discrete probability.

      These concepts will prepare you to learn modern theories and techniques for developing software in security, machine learning, data mining, image processing, and natural language processing.

      What should I do now?

      Please read the following books to grasp the core concepts of discrete mathematics:

      Alternatively, if you want to learn the topic through interactive explanations, please audit the course and read its textbook: MIT 6.042J – Mathematics for Computer Science, Fall 2010 (Textbook).

      Terminology Review:

      • Statement: An assertion that is either true or false.
      • Mathematical Statements.
      • Mathematical Proof: A convincing argument about the accuracy of a statement.
      • If p, then q. p is hypothesis. q is conclusion.
      • Proposition: A true statement.
      • Theorem: An important proposition.
      • Lemmas: Supporting propositions.
      • Logic: A language for reasoning that contains a collection of rules that we use when doing logical reasoning.
      • Propositional Logic: A logic about truth and falsity of statements.
      • Logic Connectives: Not (Negation), And (Conjunction), Or (Disjunction), If then (Implication), If and only if (Equivalence).
      • Truth Table.
      • Contrapositive of Proposition: The contrapositive of p q is the proposition ¬q ¬p.
      • Modus Ponens: If both P  Q and P hold, then Q can be concluded.
      • Predicate: A property of some objects or a relationship among objects represented by the variables.
      • Quantifier: Tells how many objects have a certain property.
      • Mathematical Induction: Base Case, Inductive Case.
      • Recursion: A Base, An Recursive Step.
      • Sum Example: Annuity.
      • Set.
      • Subset.
      • Set Operations: A ∪ B, A ∩ B, A ⊂ U: A’ = {x : x ∈ U and x ∉ A}, A \ B = A ∩ B’ = {x : x ∈ A and x ∉ B}.
      • Cartesian Product: A × B = {(a; b) : a ∈ A and b ∈ B};
      • A binary relation (or just relation) from X to Y is a subset R ⊆ X × Y. To describe the relation R, we  may list the collection of all ordered pairs (x, y) such that x is related to y by R.
      • A mapping or function f ⊂ A × B from a set A to a set B to be the special type of relation in which for each element a ∈ A there is a unique element b ∈ B such that (a, b) ∈ f.
      • Equivalence Relation.
      • Equivalence Class.
      • Partition.
      • A state machine is a binary relation on a set, the elements of the set are called states, the relation is called the transition relation, and an arrow in the graph of the transition relation is called a transition.
      • Greatest Common Divisor.
      • Division Algorithm.
      • Prime Numbers.
      • The Fundamental Theorem of Arithmetic: Let n be an integer such that n > 1. Then n can be factored as a product of prime numbers. n = p₁p₂ ∙ ∙ ∙ pₖ
      • Congruence: a is congruent to b modulo n if n | (a – b), written a ≡ b (mod n).
      • Fermat’s Little Theorem.
      • Stirling’s Approximation.
      • Probability.
      • Example: The Monty Hall Problem.
      • The Four Step Method: (1) Find the Sample Space (Set of possible outcomes), (2) Define Events of Interest (Subset of the sample space),  (3) Determine Outcome Probabilities, (4) Compute Event Probabilities.
      • A tree diagram is a graphical tool that can help us work through the four step approach when the number of outcomes is not too large or the problem is nicely structured.
      • Example: The Strange Dice.
      • Conditional Probability: P(A|B) = P (A ∩ B) / P(B).
      • A conditional probability P(B|A) is called a posteriori if event B precedes event A in time.
      • Example: Medical Testing.
      • Independence: P(B|A) = P(B)  or P(A∩B) = P(A) · P(B).
      • Mutual Independence: The probability of each event is the same no matter which of the other events has occurred.
      • Pairwise Independence: Any two events are independent.
      • Example: The Birthday Problem.
      • The birthday paradox refers to the counterintuitive fact that only 23 people are needed for that probability to exceed 50%, for 70 people: P = 99.9%.
      • Bernoulli Random Variable (Indicator Random Variable): f: Ω {1, 0}.
      • Binomial Random Variable: A number of successes in an experiment consisting of n trails. P (X = x) = [(n!)/((x!) · (n-x)!))]pˣ(1 − p)ⁿ − ˣ
      • Expectation (Average, Mean). E = Sum(R(w) · P(w)) = Sum(x · P(X = x)).
      • Median P(R < x) ≤ 1/2 and P(R>x) < 1/2.
      • Example: Splitting the Pot.
      • Mean Time to Failure: If a system independently fails at each time step with probability p, then the expected number of steps up to the first failure is 1/p.
      • Linearity of Expectation.
      • Example: The Hat Check Problem.
      • Example: Benchmark: E(Z/R) = 1.2 does NOT mean that E(Z) = 1.2E(R).
      • Variance: var(X) = E[(X−E[X])²].
      • Kurtosis: E[(X−E[X])⁴].
      • Markov’s Theorem: P(R ≥ x) ≤ E(R)/x (R > 0, x > 0).
      • Chebyshev’s Theorem: P(|R – E(R)| ≥ x) ≤ var(R)/x². Boundary of the probability of deviation from the mean.
      • The Chernoff Bound: P(T ≥ c·E(T)) ≤ e−ᶻ·ᴱ⁽ᵀ⁾, where z = c·lnc − c + 1, T = Sum(Tᵢ),  0 ≤ Tᵢ ≤ 1.

      After finishing discrete mathematics, please click on Topic 21 – Introduction to Computational Thinking to continue.

       

      Topic 2 – Introduction to Computer Networks

      Why do I need to learn about computer networks?

      Because you will develop software system that usually connects with other software systems via various networks.

      What can I do after finishing learning computer networks?

      You will be able to set up various software systems such as Domain Name System, Active Directory System, Electronic Mail, File Transfer Protocol System, Remote Desktop Services, File Services, HTTP Services.

      You will be prepared to learn about network programming, game development, web application development, distributed systems, cloud computing, and blockchain.

      What should I do now?

      Please audit this course and complete all the quizzes, to learn about computer networking concepts: The Bits and Bytes of Computer Networking.

      Alternatively, please read the books below to grasph the core concepts of computer networks:

      After that, please read the two books below to get hands-on experience with networking labs on Windows Server:

      After that, please read this book to learn about the problems and their coresponding solutions for building networks: Larry L. Peterson and Bruce S. Davie (2021). Computer Networks: A Systems Approach. Morgan Kaufmann.

      Terminology Review:

      • Computer Networking.
      • Computer Networks, Peer-to-Peer Systems, Local Area Networks, Wide Area Networks, Virtual Private Networks, ISP Networks, The Internet.
      • Network Software, Distributed Systems, World Wide Web, Network Protocols.
      • The OSI Reference Model: The Physical Layer, The Data Link Layer, The Network Layer, The Transport Layer, The Session Layer, The Presentation Layer, The Application Layer.
      • The TCP/IP Reference Model: The Link Layer, The Internet Layer, The Transport Layer, The Application Layer.
      • The TCP/IP 5-Layer Model: The Physical Layer, The Data Link Layer, The Network Layer, The Transport Layer, The Application Layer.
      • Network Interface Cards, RJ45 Ports and Plugs, Cables, Hubs, Switches, Routers, Servers, Clients, Nodes.
      • Bit, Octet (Byte), Modulation, Line Coding, Twisted Pair Cables, Simplex Communication, Duplex Communication, Full-Duplex, Half-Duplex.
      • Collision Domain, Ethernet, Carrier-Sense Multiple Access with Collision Detection (CSMA/CD), MAC Address.
      • Unicast, Broadcast, Multicast.
      • Data Packet, Ethernet Frame, Virtual LAN (VLAN), VLAN Header.
      • First-in-First-Out (FIFO).
      • ∞×∞
      • IPv4 Addresses, IIPv4 Datagrams, IPv4 Address Classes, Subnet Masks, CIDR (Classless Inter-Domain Routing).
      • Address Resolution Protocol (ARP).
      • Routing Tables, Autonomous System, Interior Gateway Protocols,  Exterior Gateway Protocols, Distance Vector Routing Protocols, Link State Routing Protocols, Core Internet Routers, Border Gateway Protocol (BGP), Non-Routable Address Space.
      • IP Security Protocol.
      • ∞×∞
      • Multiplexing, Demultiplexing, Ports.
      • TCP Segment, TCP Control Flags, Three-way Handshake, Four-way Handshake, Transmission Control Protocol (TCP), TCP Socket, TCP Socket States.
      • Connection-Oriented Protocols, Connectionless Protocols.
      • User Datagram Protocol (UDP).
      • Network Address Translation.
      • Frames, Packets, Messages.
      • Network Sockets.
      • Transport Service Primitives: LISTEN, CONNECT, SEND, RECEIVE, DISCONNECT.
      • ∞×∞
      • Public Switched Telephone Network (PSTN), Plain Old Telephone Service (POTS), Modems, Dial-up (Phone Lines), Usenet.
      • Broadband, T-Carrier Technologies, Digital Subscriber Line (DSL, Phone Lines), Asymmetric Digital Subscriber Line (ADSL), Symmetric Digital Subscriber Line (SDSL), High Bit-Rate Digital Subscriber Line (HDAL), Digital Subscriber Line Access Multiplexers (DSLAM).
      • Cable Broadband (Television Lines), Cable Modems, Cable Modem Termination System (CMTS).
      • Fiber to the X (FTTX), Fiber to the Neighborhood (FTTN), Fiber to the Building (FTTB), Fiber to the Home (FTTH), Fiber to the Premises (FTTP), Optical Network Terminator.
      • Point to Point Protocol (PPP), Network Control Protocol (NCP), Link Control Protocol (LCP), Point to Point Protocol over Ethernet (PPPoE).
      • ∞×∞
      • Network Drivers.
      • Firewalls.
      • ∞×∞
      • Domain Name System (DNS).
      • Electronic Mail, SMTP Protocol.
      • FTP (File Transfer Protocol), FTPS (File Transfer Protocol Secure), SFTP (SSH File Transfer Protocol).
      • Remote Desktop Services.
      • File Services.
      • HTTP Services.
      • Time Services.
      • Short Message Service (SMS).

      After finishing computer networks, please click on Topic 3 – Introduction to Programming to continue.

       

      How to Reduce Salesforce Licenses Cost

      Motivation:

      • You are using Salesforce for your daily work. It works very well but the cost is too expensive.
      • You want to find  a way to reduce Salesforce licenses cost.

      Suggestions:

      1. Salesforce cost depends on a selected Edition and number of user licenses.

      2. An edition is selected based on features that an ORG needs.

      For example, an ORG that needs the API and Flows feature for custom development has to choose Professional or Enterprise edition.

      The number Flows are very limited for Professional edition (5 flows).

      However the max number of flows of the Enterprise edition is 2000 that may be too many for a small business too.

      This may be Salesforce intention that they want customers to use Enterprise edition.

      3. A license price depends on the selected edition. For example, an ORG needs to  pay $150 /user/month for the Enterprise edition.

      4. A User License may be Salesforce License or Salesforce Platform License. A Profile defines permissions. A Profile with login is attached to one User License (except the case that the Profile is used for Community portal users).

      5. Assume that an ORG may use 13 User Licenses: 5 System Administrators (5 Salesforce Licenses) and 8 Platform Users (8 Salesforce Platform Licenses).

      In order to reduce the cost the ORG may consider some strategies below.

      • The ORG may use shared account for all the employees who have the same responsibilities (tasks) if possible.
      • The ORG may retain only 2 Salesforce licenses: One is for API access and development, and the other is for administrative tasks.
      • The ORG may change appropriate licenses from Salesforce license to Platform license if they do not use the built-in Leads, Opportunities, Forecasts, Cases, and Solutions.
      • The ORG should disable all unused accounts.
      • The ORG may develop Community portal for some user types and move all these users from Platform license to Community license.
      • If you are using Salesforce development platform then try moving your custom development features to another cheaper development platform, such as Zoho Creator.
      • If you are using Salesforce CRM as is then try moving your business workflows and data to another cheaper provider, such as EspoCRM.

       

        Topic 24 – Introduction to Nature Language Processing

        Why do I need to learn about nature language processing?

        Natural language processing (NLP) has become increasingly interesting, with breakthrough achievements such as speech recognition, speech synthesis, autonomous driving, and chatbots.

        Nowadays, a key skill for software developers is the ability to use NLP algorithms and tools to solve real-world problems involving text, audio, natural language sentences, and speech.

        What can I do after finishing learning about nature language processing?

        You will be to create software that could recognize speech, translate text to speech, translate a sentence from English to French, answer a customer’s question.

        That sounds fun! What should I do now?

        First, please take a quick look at the following two books to grasp the core concepts and classical methods in natural language processing:

        After that, please audit this course, Sequence Models, to obtain the core concepts and hands-on experience with sequence models.

        After that please watch these videos to learn about audio signal processing for machine learning.

        After that, please audit the courses below to learn how to understand and generate natural language using deep learning models:

        After that, please read the book below to learn how to use large lanugage models to build NLP applications:

        Terminology Review:

        • Natural Language Processing.
        • Text Classification (e.g. Spam Detection).
        • Named Entity Recognition.
        • Chatbots.
        • Speech Processing.
        • Speech Recognition.
        • Speech Synthesis.
        • Machine Translation.
        • Corpus: A body of texts.
        • Token: a word or a number or a punctuation mark.
        • Collocation: compounds (e.g. disk drive), phrasal verbs (e.g. make up), and other stock phrases (e.g. bacon and eggs).
        • Unigram: word.
        • Bigrams: pairs of words that occur commonly.
        • Trigrams: 3 words that occur commonly.
        • N-grams: n words that occur commonly.
        • Hypothesis Testing.
        • t-Test.
        • Likelihood Ratios.
        • Language Model: statistical model of word sequences.
        • Naive Bayes.
        • Hidden Markov Models.
        • Bag-of-Words Model.
        • Term Frequency–Inverse Document Frequency (TF–IDF).
        • Bag-of-n-Grams.
        • One-Hot Representation: You have a vocabulary of n words and you represent each word using a vector that is n bits long, in which all bits are zero except for one bit that is set to 1.
        • Word Embedding (Featurized Representation) is the transformation from words to dense vector.
        • Euclidean Distance, Dot Product Similarity, Cosine Similarity.
        • Embedding Matrix.
        • Neural Language Model.
        • Word2Vec: Skip-Gram Model, Bag-of-Words Model.
        • Negative Sampling.
        • GloVe, Global Vectors.
        • Recurrent Neural Networks.
        • Backpropagation Through Time.
        • Recurrent Neural Net Language Model (RNNLM).
        • Gated Recurrent Unit (GRU).
        • Long Short Term Memory (LSTM).
        • Bidirectional RNN.
        • Deep RNNs.
        • Sequence to Sequence Model.
        • Teacher Forcing.
        • Image Captioning.
        • Greedy Search.
        • Beam Search, Length Normalization.
        • BLEU (BiLingual Evaluation Understudy) Score.
        • ROUGE (Recall-Oriented Understudy for Gisting Evaluation) Score.
        • F1 Score.
        • Minimum Bayes-Risk.
        • Attention Mechanism.
        • Self-Attention (Scaled and Dot-Product Attention): Queries, Keys and Values.
        • Positional Encoding.
        • Masked Self-Attention.
        • Multi-Head Attention.
        • Residual Dropout.
        • Label Smoothing.
        • Transformer Encoder.
        • Transformer Decoder.
        • Transformer Encoder-Decoder.
        • Cross-Attention.
        • Byte Pair Encoding.
        • BERT (Bidirectional Encoder Representations from Transformers).

        After finishing natural language processing, please click on Topic 25 – Introduction to Distributed Systems to continue.