Merlin Mission Manager

From Coder Merlin
Within these castle walls be forged Mavens of Computer Science ...
— Merlin, The Coder
Eugene F. Kranz at his console at the NASA Mission Control Center

Prerequisites[edit]

Introduction[edit]

The  Merlin Mission Manager  is your personal control center to Merlin's Challenge Evaluation System. Challenges provide both you and your guide with objective evidence of your skill level as you develop expertise in a particular topic. As such, Missions serve both to provide you with valuable feedback as you are developing your skills and as a demonstration of mastery.

CautionWarnIcon.png
Do not skip this tutorial or skimp on your effort. Learning to use the Merlin Mission Manager is essential to doing well and every minute that you invest will pay off a hundred fold.

Missions[edit]

At various points along your pathway you'll be asked to complete one or more missions. Missions provide a logical grouping of one or more challenges, generally about a particular subject area or, alternatively, a summary of multiple topics. Just as wiki experiences are labelled using the Wnnnn scheme, missions follow similar rules. Missions will always begin with Mnnnn where the nnnn of the mission usually matches the nnnn of the wiki. Missions also have a two digit suffix, ss. Lower-numbered suffixes generally assist you with skill development, while higher-numbered suffixes provide demonstration of mastery.

At any given time, a Mission will be in one of the following states:

  • Not yet eligible - Your guide will provide you with missions at an appropriate pace, so not all missions are available at any given time. You may see a mission name appear in your mission list with an eligible date in the future. If so, the mission will become available to you on that date.
  • Eligible, but not yet accepted - On the eligible date you'll be permitted to accept the mission.
  • Accepted - Once you've accepted a mission you'll be able to view a list of all included challenges and begin working on solutions. From this point until you either submit the mission or until the mission expires, you'll be able to work on the challenges of the mission.
  • Completed - After you've completed all of the required challenges (and as many optional challenges as you'd like) you'll be able to complete the mission. At this point, you'll receive credit for the challenges.
  • Expired - Missions are available for a limited time. The  Merlin Mission Manager  will let you know how much time you have until a mission expires. After this point, you'll no longer be able to complete the mission.

Challenges[edit]

A single mission is comprised of one or more challenges. Each challenge is an opportunity to improve a particular skill and evaluate your mastery of that skill. In almost all cases the  Merlin Mission Manager  will provide you with instantaneous feedback regarding your results, enabling you to continuously improve your skills.

Within any given mission, challenges will be marked as either required or optional. Of course, it's to your own benefit to complete every available challenge even if it's not strictly required.

Interface[edit]

The  Merlin Mission Manager  is available as an easy-to-use command line interface. To get started, open a secure shell client and log on to the codermerlin server using your connection string:

 john-williams@ssh.codermerlin.com

After you’re connected, you’ll be prompted to enter your password. After a successful logon, you'll land in the "shell". Be sure you're in your home directory. (Remember that you can always get back to your home directory using the "cd" command without any arguments.)

john-williams@codermerlin:~$ cd

Help[edit]

If we ever need a quick reminder of the available commands for the  Merlin Mission Manager , we can obtain the list by simply invoking the  Merlin Mission Manager  without any command or by using the help command. Try it now.

john-williams@codermerlin:~$ merlin

-or-

john-williams@codermerlin:~$ merlin help

List Missions[edit]

The  Merlin Mission Manager  is aware of the context in which it's been invoked, and will respond accordingly. If we're outside of the required directory hierarchy,  Merlin Mission Manager  will let us know. Let's see what happens when we invoke the  Merlin Mission Manager  from our home directory:

john-williams@codermerlin:~$ merlin list


ObserveObserveIcon.png
Observe, Ponder, and Journal: : Section 1
  1. If you're outside of the Merlin directory and attempt a  Merlin Mission Manager  command, what is printed for your "Current location"?

We need to be inside the Merlin directory to obtain useful information from Merlin. Let's create that directory now and then enter the directory:

john-williams@codermerlin:~$ mkdir Merlin

john-williams@codermerlin:~$ cd Merlin

john-williams@codermerlin:~/Merlin$ 

Now, try the list command again:

john-williams@codermerlin:~/Merlin$ merlin list


ObserveObserveIcon.png
Observe, Ponder, and Journal: : Section 2
  1. If you're inside of the Merlin directory and attempt a  Merlin Mission Manager  command, what is printed for your "Current location"?
  2. Based on the output of the above command, what information does the  Merlin Mission Manager  provide to you?

Let's dissect the output at this level. Merlin will output a table similar to the following:

 Current location:  Merlin root



 Available missions: 

 Mission                 | Eligible    | Accepted  | Due                          |...

 M1008-10 Basic Addition | 11-Jul-2024 |           | 15-Jul-2024 (3d 12h 28m 10s) |...

  • Mission: This column contains the identifier (e.g. M1008-10) and the name (e.g. "Basic Addition") for the missions that have been assigned to you. The identifier of the mission generally begins with the same four digits that the wiki experience begins with. (Note that this wiki page's identifier is W1008, and the mission is M1008.)
  • Eligible: Sometimes your guide may assign missions to which you are not yet eligible. The date at which you'll be eligible to accept the mission is listed in this column.
  • Accepted: This is the date that you've accepted the mission. (We'll cover how a mission is accepted below.)
  • Due: This is the date (and time) that you'll need to complete the mission by in order to receive the maximum number of points. In addition to the date and time,  Merlin Mission Manager  will include a count of days (d), hours (h), minutes (m), and seconds (s) remaining.
  • Expiration: This is the date (and time) that you'll need to complete the mission by in order to receive any points. In addition to the date and time,  Merlin Mission Manager  will include a count of days (d), hours (h), minutes (m), and seconds (s) remaining.
  • Completed: After a mission is completed, this column will contain that date of completion.

Prepare a Mission[edit]

Before beginning work on a mission we'll need to do two things. The first is to ensure that the directory for the mission exists. The easiest way to accomplish this is to issue a prepare command to  Merlin Mission Manager  from with the "Merlin root" directory, but before doing so, let's take a peak at what's there:

john-williams@codermerlin:~/Merlin$ ls

Now, ask  Merlin Mission Manager  to prepare the directory:

john-williams@codermerlin:~/Merlin$ merlin prepare

Finally, have another look at the directory's contents:

john-williams@codermerlin:~/Merlin$ ls


ObserveObserveIcon.png
Observe, Ponder, and Journal: Section 3
  1. Look at the directory listing before and after you issued the "merlin prepare" command. What's changed?
  2. What do you think the purpose of the "prepare" command is?

Now, enter the mission directory.

Hint.pngHelpful Hint

Because mission and challenge directory names contain some 'special' characters (such as spaces and brackets), they require that we either include the entire name in quotes or escape (prefix with a special character) each such character. This isn't difficult, but there's an easier way! Every mission and every challenge begins with a unique sequence of characters which do not require escaping. This fact, in combination with what we learned about TAB completion, enables us to simply enter the initial letter, a few numbers, and then TAB. Try it now in order to enter the mission directory.

john-williams@codermerlin:~/Merlin$ cd M1008-10TAB

Either use the above hint, or type:

john-williams@codermerlin:~/Merlin$ cd M1008-10\ Basic\ Addition/

Let's use the list command again, but this time, from within a mission.

Key Concepts[edit]

References[edit]