CMSI 185: Welcome to Week 09

This Week's Class Agenda

First things first: Don't forget your second test is coming Thursday next week!

What's Going On This Week

This week we will talk about:

  1. Github and project issues
  2. Configuration management introduction
  3. Passwords and basic security stuff
  4. You can book me website
  5. A few more practical examples

You can Book Me Website

Many or most of you know that you can contact me and set up an appointment using my calendar site on the "You Can Book Me" web page. As the semester wears on, and things get more and more complex, you may want to make use of that to schedule some one-on-one time with me. I'll make every effort to be available for you, either singly or in small groups, for extra help if you need it. If you want to reserve a slot, just go to my You Can Book Me website, click on an appropriate time slot, and enter all your information. You will get an e-mail notifying you that you have booked the time, and I'll get an e-mail that tells me who has booked it. I like to meet in the upstairs "software engineering" lab, Doolan 217, because it is quite, comfortable, and has a nice big whiteboard that is usually clean (not full of "do not erase" stuff).

GitHub

It is rapidly becoming the "defacto policy" of the LMU Computer Science department that all of the CS students should have a repository account on GitHub. The idea is to provide storage for your project, but also a lot more. Your GitHub repository, called a "git", holds your code, documents, web pages, and basically anything you want to put in it that is in electronic format. The nice thing about it is, when you put something in, the GitHub engine will track it for you, assign version numbers, and keep the old copies for you. In short, anything you save in there will be there forever, unless you specifically get rid of it.

There is a really good tutorial on GitHub at the [[fill in the class here]]

When you put something into your git, it is called "committing". When you commit, the old version of your file is replaced with the new version; the old version is saved for later. You can go look at it, and you can compare what changed. You can also compare older versions to the newest version, and even older versions against each other. Also, remember that when you commit something, you are only putting in a copy of the work — the original version remains on your local machine.

There are two types of repositories in GitHub: public and private. Private means only you can have access to the files and data that are in that git. Public means anyone can access it, which is more in the spirit of open-source projects

Configuration Management

In order to maximize re-use, this page points to my existing page on a website for a different class, CMSI 402. The page is at: http://myweb.lmu.edu/bjohnson/cmsi402web2/confmgmt.html.

Passwords and Security

How many of you use the same password for every account? How many of you use a simple password that would be easy to guess? How many of you use the most common password in the world, "123456"? How many of you use upper and lower case characters, numbers, or special symbols in your password(s)? And how many of you have your passwords all written on a post-it note on your desk or on the underside of a drawer? Finally, how many of you change your passwords on a regular basis? It is interesting and informative to check this site.

Believe it or not, password cracking (not *hacking*, that's something different) is the second easiest way to get into someone's accounts. Most of the questions in the previous paragraph are the normal methods people use for their passwords. Of course, many sites now are starting to require a more stringent standard, the so-called "strong" passwords, which is good, but is inconvenient for the users (you and me) to try to remember them all. Not only do we have to remember the passwords, we have to remember with *which account* each one belongs.

The US Government entities are now starting to require a 12-character password, which contains at a minimum, 2 uppercase letters, 2 lowercase letters, 2 numbers, and 2 special characters. In addition the operating system is required to keep track of up to 24 passwords you have used in the past, and is required to prevent you from re-using them too soon. Also, the O/S is supposed to be set to force the user to change the password every three to six months, even if it is NOT compromised, and is set to NOT let you change the password again within a week!

There are some tricks you can do to make things easier:

By the way, don't forget your phone! Cell phones are almost always connected to every account you have. An open cell phone, once you lose it, provides whoever finds it with complete access to ALL of those accounts. Yes, it *IS* a hassle to unlock the phone every time you want to text a friend, but you only have to do it once (you can set the time out duration). How much *MORE* hassle will it be if your unprotected phone is lost and you have to close all your accounts, credit cards, and so on, as well as go to the DMV for a new licence, the One Card office, Costco, or perhaps even the Social Security office for a replacement card?

Functions and Closures

This link takes you to a page that is part 2 of today's material, which covers more stuff about functions. It is actually from a previous version of this class, but I didn't see a need to reprint it here when I can just re-use the page with an anchor tag!

Coming Up Next ...

Next week we'll be covering Python file handling, something that JavaScript does NOT do. This is by design, because JavaScript was designed (and is most often used) to do things by downloading code over the Internet, and having code from the wide world that can write things to your local file system is inherently unsafe, as we've seen.