Changes

Jump to: navigation, search

Fall 2012 DPI908/SBR600 Weekly Schedule

772 bytes removed, 18:03, 30 November 2012
SBR600 Only: Practical quiz
{{Chris Tyler Draft}}[[Category:Fall 2012 SBR600]][[Category:Fall 2012 DPI908]]
{{Admon/important|Tentative Schedule - Fall 2012|Please note that the schedule here is tentative. Week-by-week details will be added as the course progresses.}}
 
This is the Fall 2012 weekly schedule for the [[DPI908]] and [[SBR600]] courses.
Previous semester: [[Winter 2012 SBR600 Weekly Schedule]]
# [[DPI908/SBR600 Communication Lab|Communication Lab]]
# [[DPI908/SBR600 Fedora Installation|Fedora Installation]]
 
{{Admon/important|CDOT Wiki Issues|There is an issue with some email sent from the CDOT Wiki system to MySeneca email accounts. This will prevent important e-mail such as initial temporary passwords, e-mail confirmations, and password resets from being received. This issue is currently being examined by Seneca ITS and we expect a resolution soon. '''The deadline for the communication lab is being extended due to this issue.'''}}
<!-- ---------------------------------------------------------------------------------------------- Week 2 ------------ -->
 
= Week 2 - Building from Source & RPM Packaging =
<!-- ---------------------------------------------------------------------------------------------- Week 3 ------------ -->
= Week 3 - Mock and Koji , Signing and Repos =
== Monday (September 17) ==
=== Using Mock to Test Package Builds ===
Mock is a tool which builds a package using rpmbuild in a 'cleanroom' environment. This has several advantages:
* [[:fedora:Using_Mock_to_test_package_builds|Using Mock to test package builds]]
=== To Do ===
 
By '''Wednesday, September 19''':
# [[DPI908/SBR600 Mock Lab]]
 
== Wednesday (September 19) ==
=== Using Koji to Test on Multiple Architectures ===
* [[:fedora:PackageMaintainers/UsingKoji|Using Koji]]
=== To Do ===
By '''Wednesday, September 19''':
# [[DPI908/SBR600 Mock Lab|Mock Lab]]# [[DPI908/SBR600 Koji Lab|Koji Lab]]
<!-- ---------------------------------------------------------------------------------------------- Week 4 ------------ -->= Week 4 = Wednesday (September 19) ==
== Monday (September 24) == === [[Signing RPM packages === An RPM signature, like the digital signature used on many other software-signing systems, is and Creating a private key encryption of a checksum. Repository for RPM uses the GPG libraries for signing. # Create a GPG key: <code>gpg --gen-key</code># Add the e-mail address associated with your gpg key to the <code>%_gpg_name</code> macro in <code>~/.rpmmacros</code> -- the line will look like this: <code>%_gpg_name "<i>e-mail-address</i>"</code># Find (or make) some packages to put in your repository. Make sure that the epoch-version-release is higher than that of any package with the same name in the Fedora repositories.# Sign those packages with: <code>rpm --addsign <i>packagefile</i></code>Packages]]
=== To Do ===
By '''Wednesday, September 26''':
# [[DPI908/SBR600 RPM Signing Lab|RPM Signing Lab]]# [[DPI908/SBR600 Repo Creation Lab|Repo Creation Lab]]
== Wednesday (September 26) ==<!-- ---------------------------------------------------------------------------------------------- Week 4 ------------ -->
=Week 4 == Creating a YUM repository === A yum repository is just a directory of packages and some metadata. To create a yum repository:# Create a directory that can be served. The protocol used to serve that directory could be http, ftp, nfs, or something else (the files can be served by putting them on a DVD too!). For http, create the directory within <code>/var/www/html</code># Put your signed packages in that directory.# Create the repository metadata for that directory: <code>createrepo <i>/name/of/directory</i></code> (typically: <code>createrepo . </code>)
Notice that the repository metadata will be placed in a subdirectory named <code>repodata</code> === Testing === # Create a new repository file in <code>/etc/yum.repos.d</code> by copying and modifying an existing file in that directory. Keep <code>gpgcheck=1</code> but comment out the <code>gpgkey</code> file.# Confirm that you cannot install from that repository using yum, since the gpgkey is unavailable to yum/rpm.# Uncomment the <code>gpgkey</code> line, and point it to a new file within <code>/etc/pki/rpm-gpg/</code># Create that file by running Monday (as your regular userSeptember 24): <code>gpg --export --armour <i>e-mail-address</i></code> and saving the output to the new filename Wednesday (note: you'll need to be your regular user to perform the export, but the root user to install the file).# Confirm that you can now install from your repository. You should be asked whether you wish to import the key for your repo the first time you use a package from that repo. === Creating a Repository-release RPM === To make it easier for users to access your repository, create a RPM containing:# Your repo file# Your GPG key You can link to this repository-release RPM from a web page, and users can install access to your repository by simply clicking on that link. You can also include this package in a [[:fedora:Spin|Spin]] or [[:fedora:Remix|Remix]]. If you ever need to move your repository's location or make other adjustments, you can provide an updated repository-release package which will be installed when your users perform a <code>yum update</code>. Take a look at the [http://rpmfusion.org/ RPMFusion] release RPM for an example. === ToDo === By '''Wednesday, September 26''':# [[DPI908/SBR600 RPM Signing Lab]]{{Admon/note|Edited to this point|}} Lab# Create a signed repository containing your RPM package.# Create an RPM package that will install your repository configuration file and the key (repository-release package).# Test it.# Blog about this lab, and include a link to your repository-release package and the repository URL. <!-- ---------------------------------------------------------------------------------------------- Week 5 ------------ -->= Week 5 (Feb 7) = = Week 4 (Jan 31) = == Tuesday/Thursday ==
=== Project Selection ===
* Link your project title on the [[Winter 2012 SBR600 Participants|participants page]] to a page of the same name to create a project page. Copy the contents of the [[Sample Project]] page to your project page and fill in the details.
Over the next 2 weeksThis week, finalize your project plans and get started on your project:* The project page must be filled in, including your 0.1, 0.2, and 0.3 targets. Ensure that you have a link from the ''Projects'' column of the [[Fall 2012 DPI908/SBR600 Participants]] table to a page for your project; use the [[Sample Project]] template for your project page, and fill in as much detail as possible.
** Release 0.1: Proof of concept (e.g., a first draft of a package, a basic script, infrastructure set up on a test system) - Note that this must include the release of ''something'', not just research, and must be done in consultation with the community.
** Release 0.2: Initial working state - Whatever you are working on -- package, script, infrastructure configuration -- should be working, although it may not be feature-complete, fully deployed, or fully documented. Feedback from the community should be solicited. If there is a review process required to submit upstream, it should be started.
** Release 0.3: Completed working state - The work is complete and documented. Any upstream review, whether formal or informal, has been completed, feedback has been incorporated into the project, and the work has been committed beento the appropriate repositories (or released in an appropriate manner).
* You must have a strategy in place for reaching your targets.
You will make a brief (3-5 minute) presentation of your project plans on '''Thursday, February 9'''.
== Thursday ==Be prepared to give a professional, detailed, but very brief (2- to 4-minute) presentation on your project plan. Include:* Your approach to the problem.* Contacts and resources you've identified.* Your plans for each release. Note that at each release you will be expected to actually '''release''' something -- an RPM, a script, test results -- as appropriate to your project. Identify what you are intending to release at each stage:** 0.1 Release - proof of concept** 0.2 Release - initial functionality** 0.3 Release - tested and usable* Challenges and potential pitfalls that you have identified, and your approach to mitigating those challenges so that you can complete your project on time regardless of things beyond your control.* Time for a brief Q&A/Feedback session at the end.* During your presentation, you'll
=== Project Plan Presentations (0.0) To Do ===
* Project pages are due. Link from the ''Projects'' column of the [[Winter 2012 SBR600 Participants]] table to a page for your project; use the [[Sample Project]] template for Prepare your project page, and fill in as much detail as possible.* Be prepared to give a professional, detailed, but very brief (2- to 4-minute) presentation on your project planpresentation. Include:** Your approach to the problem.** Contacts and resources you've identified.** Your plans for each release. Note that at each release you will be expected to actually '''release''' something <!-- ---------------------------------------------------------------------------------------------- Week 5 --------- an RPM, a script, test results -- as appropriate to your project. Identify what you are intending to release at each stage:*** 0.1 Release - proof of concept*** 0.2 Release - initial functionality*** 0.3 Release - tested and usable>** Challenges and potential pitfalls that you have identified, and your approach to mitigating those challenges so that you can complete your project on time regardless of things beyond your control.** Time for a brief Q&A/Feedback session at the end.= Week 5 =
<!-- ---------------------------------------------------------------------------------------------- Week 6 ------------ -->
= Week 6 =
 
'''Note:''' Monday is the Thanksgiving Day Holiday.
<!-- ---------------------------------------------------------------------------------------------- Week 7 ------------ --> = Week 6 7 = == Monday (Feb 14October 15) ==
== Tuesday ==
=== Using GIT ===
* https://github.com/
== Thursday Wednesday (October 17) == === Python Primer === [[SBR600 Python Lab|Python Lab]] = Study Week and FSOSS = * Please don't leave your 0.1 milestone work until the last minute!* [http://fsoss.ca FSOSS 2012]
=== To Do ==Week 9-13 =GIT Lab* Project work* Clone the repository at sshSchedule://sbr600@scotland** 0.proximity.on.ca/~/certs/1 Milestone: TBA* Add your cert using the instructions in the readme.txt file* 0.2 Milestone: TBA* Blog about your experience* 0.3 Milestone: TBA
<!-- ---------------------------------------------------------------------------------------------- = Week 7 9 ------------ -->O.1 Release Presentation =* Please book your time slot on [[Fall 2012 DPI908/SBR600 Presentation Schedule| the presentation schedule page]] on a first come first server basis.= Week 7 (Feb 21) =* Each presentation should take no more than 10 minutes.
== Tuesday =Week 11 - 0.2 Release Presentation =* Demo of packaging some odd real-world cases for Please book your time slot on [[Fall 2012 DPI908/SBR600 Presentation Schedule| the Raspberry Pipresentation schedule page]] on a first come first server basis.* Each presentation should take no more than 10 minutes.
= Week 12 - Practical Quiz / Research Paper Discussion =
== Wednesday ==
=== '''SBR600 Only''': Practical quiz ===* [[Raspberry Pi The quiz consists of one task: you will need to update an RPM to the latest upstream version of the software. For example, if the package is foo-2-1 and there is a new upstream version 3 of foo available, you will need to produce a foo-3-1 package. It would be worthwhile practicing this task in advance.* The practical quiz will be in T3076 (which not our normal room) so that lab computers will be available.* Make sure that you have access to your Fedora system, either on your laptop, on a removable disk pack, or through an SSH connection to one of your computers at home. Verify your arrangements! You may want to bring a Fedora Remix]] launch eventLive system on USB or DVD as a backup.* You may use your notes and online resources during the quiz. However, you may not share information with other people during the quiz.
Solution to the practical quiz:<center><embed src="http://www.youtube.com/v/9SK3rWAGsMQ?version= Thursday 3&amp;hl=en_US" type=* Python"application/x-shockwave-flash" style="width: 400px; height: 326px;" allowscriptaccess="always" allowfullscreen="true"></embed></center>
= Break week! == '''DPI908 Only''': Discussion about the [[DPI908 Research Paper]] ===* Meet in the usual room
= Week 13 - Wrap-up = * Please donThe 0.3 Presentations are 't leave your ''CANCELLED'''. Your 0.1 milestone work until the last minute!3 release is still due on '''December 8 at 11:59 pm.'''== Monday == * Guest lecture/interview with Rob Bishop, Raspberry Pi Foundation tech evangelist.* Evening event: [[Raspberry Pi Hackspace Tour Toronto]]
= Week 9-13 =* Project work* Schedule:** 0.1 Milestone: March 9** 0.2 Milestone: March 23** 0.3 Milestone: April 13Wednesday ==
* Wrap-up - final opportunity to get help and feedback on your 0.3 release
<!--
= Exam Week =
-->
 
= Guest Lecture Notes =
* [[DPI908/SBR600 Guest Lecture-Paul Whalen-20121119]]

Navigation menu