tag:blogger.com,1999:blog-55540710211054881092017-06-19T12:56:18.112-07:00Potential InformationChristopher Leehttps://plus.google.com/114744049040264263224noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-5554071021105488109.post-6514192915202619892013-10-14T09:32:00.001-07:002013-10-14T09:33:21.825-07:00How to combine mp4/mov movie clips fast<div dir="ltr" style="text-align: left;" trbidi="on">Cut and paste are key basic operations for editing. So it's always been maddening to me how getting both these operations fast & simply has been way too hard. On Mac OS X, CUT is incredibly easy and fast (the Edit:Trim in Quicktime Player), but PASTE (concatenate) required using a "hidden" function only found in the old Quicktime Player 7 (drag and drop a clip into an existing clip, then Close without saving, then tell it to save combined file). But Apple broke that functionality, it no longer works (at least on Snow Leopard). After scouring the internet for lots of possibilities (e.g. using VLC, the swiss army knife of media tools), I found the easiest, fastest way is to download ffmpeg (e.g. from http://ffmpegmac.net/) and run the following commands:<br /><blockquote class="tr_bq"><pre class="wiki" style="background-color: #f7f7f7; border: 1px solid rgb(215, 215, 215); font-size: 13px; margin: 1em 1.75em; overflow: auto; padding: 0.25em;">ffmpeg -i input1.mov -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate1.ts<br />ffmpeg -i input2.mov -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate2.ts<br />ffmpeg -i "concat:intermediate1.ts|intermediate2.ts" -c copy -bsf:a aac_adtstoasc output.mp4</pre></blockquote>Note that this requires NO transcoding (conversion), takes just a few seconds, and the resulting filesize will simply be the sum of your input filesizes. In my case, 57 MB total for my 18 minute lecture video. <br />By contrast, when I concatenated the same two mov files in iMovie, using exactly the same settings as the input mov files, it took nearly an hour running my CPU so hard it was overheating, and the resulting file was 350 MB. Idiotic iMovie insists on re-encoding the video, which probably degrades the image quality, just to add insult to injury.<br /><br />I got this method from the ffmpeg docs:<br /><a href="https://trac.ffmpeg.org/wiki/How%20to%20concatenate%20(join,%20merge)%20media%20files">https://trac.ffmpeg.org/wiki/How%20to%20concatenate%20(join,%20merge)%20media%20files</a></div>Christopher Leehttps://plus.google.com/114744049040264263224noreply@blogger.com1tag:blogger.com,1999:blog-5554071021105488109.post-72695798496097748712012-10-26T15:11:00.001-07:002012-10-26T18:58:40.643-07:00New Paper on General Information Metrics for Experiment Planning<div dir="ltr" style="text-align: left;" trbidi="on">As part of our ongoing project on "turning the scientific method into math", Marc Harper and I have written a paper on <a href="http://arxiv.org/abs/1210.4808">expectation potential information</a> as the key measure of information yield from a proposed experiment. Take a look at the paper; we are eager for feedback (e.g. add a comment on this post). The basic idea is:<br /><ul><li><em>empirical information</em> (\(I_e\)) measures prediction power on observables.</li><li><em>potential information</em> (\(I_p\)) measures the maximum additional prediction power possible for a given set of observables, relative to the current model. In other words the theoretical increase in empirical information achievable by the best possible model. The key point is that \(I_p\) can be estimated without in any way searching model space.The value of any experiment is its ability to <em>surprise us</em>, i.e. to demonstrate that our current model is inadequate. Potential information provides a general measure of this, so the value of an experimental dataset is simply its potential information measure. For more details on this <a href="http://www.mdpi.com/2078-2489/2/1/17">previous work</a>, see here.<br /> </li><li><em>expectation potential information</em> (\(E(I_p)\)) forecasts the expected information value of an experiment, under our current beliefs (uncertainty) about its likely outcomes. That is, adopting the view that our "current model" is always a mix of competing models, the \(E(I_p)\) for a proposed experiment measures its ability to resolve major uncertainties in that mixture.</li></ul>Two things about this work have been fun:<br /><ul><li>we used an interesting "test problem", RoboMendel: a robot scientist tasked with proposing experiments to discover the laws of genetics. It's been fun working through how the basic \(E(I_p)\) metric addresses not only fine details of experiment planning (e.g. the value of including a specific control) but also the big questions of "what should we look at?"</li><li>Note that all these metrics are defined <em>strictly</em> in terms of prediction power on <em>observable</em> variables, contrary to the usual focus in statistical inference on our ability to infer <em>hidden</em> variables. Yet the \(E(I_p)\) metric comes full circle; you can prove that as the mixture probabilities converge to the true marginal probabilities of possible "outcomes", the expectation potential information metric converges \(E(I_p) \to I(X;\Omega)\), i.e. the classic information theory metric of how "informative" the observable <em>X</em> is of the true hidden state of the system \(\Omega\).</li></ul><!-- gitpubHash=1e56912d92b86cc2277768db934db916c99440bc --></div>Christopher Leehttps://plus.google.com/114744049040264263224noreply@blogger.com0tag:blogger.com,1999:blog-5554071021105488109.post-70585483686227332492012-10-26T13:14:00.001-07:002012-10-26T13:14:46.184-07:00Bioinformatics Learning 2.0: proposing an open source consortium for bioinformatics teaching materials <p>I've spent almost all of my time over the last year transforming how I teach (replacing lectures with Socratic active learning, where students answer questions in class), both by developing <a href="http://potentialinfo.blogspot.com/p/open-science.html">software tools</a> for this and teaching <a href="http://thinking.bioinformatics.ucla.edu/teaching/">two different courses</a> this way (an Intro Bioinformatics theory course for computer science students, and a Genomics and Computational Biology course for biology students). I have made all of these tools and <a href="http://potentialinfo.blogspot.com/2012/08/intro-bioinfo-theory-course-example.html">materials available</a> as open source, because I believe this job (even for a single course) is always too big for one person (particularly the need for <em>hundreds</em> of exercises for the students to learn how to actually use the concepts). Rather than each instructor "reinventing the wheel" (producing all their own course materials despite the fact that dozens of other courses overlap the same material), we should share materials as open source, so each instructor can use the best materials from everyone else, and focus their own efforts on areas where they have special interest or expertise (which in turn they contribute back to the community).</p><p>I was invited to speak about all this at RECOMB-BE this year; here's a link to a <a href="http://www.youtube.com/watch?v=V1kOylqeSzE">video of my talk</a> if you're interested.</p> <!-- gitpubHash=7125ba0f4fe9e37260cb16fb5c70d19021f5bb6c -->Christopher Leehttps://plus.google.com/114744049040264263224noreply@blogger.com0tag:blogger.com,1999:blog-5554071021105488109.post-28328536829396507372012-08-22T14:51:00.001-07:002012-11-09T11:38:55.987-08:00Intro Bioinfo Theory Course Example Release 1<div dir="ltr" style="text-align: left;" trbidi="on"><h4>Introduction</h4><strong>What is the purpose of this release?</strong><P>It illustrates the kind of content I am releasing as open source course materials, to bootstrap an open source bioinformatics teaching materials consortium where instructors can selectively use, modify and share materials for their own teaching. <strong>If you're interested in using these materials or participating in such a consortium</strong>, I invite you to contribute your thoughts or feedback in the <strong>Comments</strong> section below, or by email to <a href="mailto:leec@chem.ucla.edu">leec@chem.ucla.edu</a>.</P><strong>What is this?</strong><br /><P>This is a snapshot of the reading, lectures, homework, projects, practice exams, and exams from my 2011 Bioinformatics Theory course offered separately as a CS undergrad course and Bioinformatics graduate course (different exams; separate graduate term project). The course uses a core set of simple genetics, sequence analysis and phylogeny problems to teach fundamental principles that arise in virtually all bioinformatics problems. This course is not for students who want to learn to use existing methods (e.g. BLAST) but rather for students who might in the future want to invent new bioinformatics analyses. It emphasizes statistical inference, graph models and computational complexity.</P><P>Note: this is <em>not</em> a standard lecture course; approximately half the class time was devoted to in-class <strong>concept tests</strong>, where the class was presented with a question that tests conceptual understanding. Students answered concept tests using an open-response (i.e. not multiple choice) in-class response system by typing answers on their laptops or smartphones. We then discussed our answers using <a href="http://en.wikipedia.org/wiki/Peer_instruction">Peer Instruction</a> methods, and I analyzed all the individual students' answers in detail; at the subsequent class, I went through each of conceptual errors the students made for each question. I have written approximately 200 concept tests for a wide range of statistical and computational concepts relevant to bioinformatics, and a wide variety of "problems-to-work" (i.e. more conventional homework problems) covering the same material. I am making all of these materials and software available as open source; this is the first step in that release process.</P><a name='more'></a><br /><strong>What does this initial release lack?</strong><br />Note that this is "just a taste" of the full release (planned for March - April 2012), in that this initial release does not contain the full infrastructure for flexible content sharing and reuse planned for the full release. Specifically it does not include:<br /><ul><li><strong>my tools for automatic compilation of different outputs</strong> (traditional latex "textbook" output; beamer-style slides; concept-tests for the in-class response system, etc.) from user-specified selections of the content database; the in-class response system (lets students answer the concept tests by typing text and equations on their laptops or smartphones); etc. These will be released separately from the course material repository, because they are generic tools that could be used for many other projects. If anyone wants to access these now, contact me; I can release the current versions immediately.</li><li><strong>a more extensive set of course materials</strong> will be released as a Distributed Version Control repository (i.e. <a href="http://git-scm.com/">Git</a>) enabling any number of people to alter, add to, and share these materials in a secure way. That is, a public repository will be established containing only textbook materials (i.e. explanations of concepts); and separately, a private "instructors' repository" that also contains concept tests, homework / exam problems and answers. Anyone will be able to access or contribute to the public repository; only course instructors will be given access to the private repository. Instructors will be asked to follow common-sense guidelines to protect the test database against irresponsible internet distribution, so that the test questions retain their value as test instruments on graded homework or exams.</li><li><strong>the full release content will be extensively annotated</strong> with metadata that explicitly represent the dependencies and relations of each individual concept in the material. For example, all concepts will be tagged with their corresponding entry in Wikipedia (so if a student has a question about the explanation of a concept in this text, they can see what <a href="http://www.blogger.com/wikipedia.org">Wikipedia</a> has to say about that same concept). The goal is to enable easy and sophisticated re-use and customization of user-specified selections of content, and direct integration with other resources such as Wikipedia.</li></ul><h4>The Course Materials</h4>The course materials are linked as PDF documents below (requires a password, for access contact <a href="mailto:leec@chem.ucla.edu">leec@chem.ucla.edu</a>). The editable document sources are in <a href="http://sphinx.pocoo.org/rest.html">reStructured Text</a>, a flexible open document standard with LaTeX equation support.<br /><ul><li><a href="http://people.mbi.ucla.edu/leec/learning2/IntrotoBioinformatics.pdf">Course Overview</a></li></ul><h5>Reading and Lectures</h5><P>Reading was assigned as a prerequisite for each class, defining the basic concepts for that class. Students were required to have read this material before coming to class (otherwise they couldn't possibly answer the in-class concept tests), by having random quizes on these basic definitions at the beginning of class. Each class was 2 hours, approximately half lecture and half concept-tests / peer instruction. Note that for some concept tests in the lectures, I then worked through the answer on the projector, so there is no "answer slide" for those concept tests in the PDF file.</P><ul><li><a href="http://people.mbi.ucla.edu/leec/learning2_public/lec1_allslides.pdf">Lecture 1: Intro & Overview</a>: this explains how in-class concept tests will be used as a teaching method, and ends with a few simple concept tests on basic conditional probability.</li><li><a href="http://people.mbi.ucla.edu/leec/learning2_public/lec2_reading.pdf">Reading for lecture 2: inference under uncertainty</a> (<a href="http://people.mbi.ucla.edu/leec/learning2_public/lec2_reading.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2/lec2_quiz.pdf">Reading quiz</a></li><li><a href="http://people.mbi.ucla.edu/leec/learning2_public/lec2_final.pdf">Lecture 2: Conditional probability concept tests</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/lec2_ct.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2_public/lec3_reading.pdf">Reading for lecture 3: essential probability concepts</a> (<a href="http://people.mbi.ucla.edu/leec/learning2_public/lec3_reading.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2_public/lec3_final.pdf">Lecture 3: Conditional probability concept errors; independence; chain rule</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/lec3.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2_public/lec4_reading.pdf">Reading for lecture 4: dependency structure</a> (<a href="http://people.mbi.ucla.edu/leec/learning2_public/lec4_reading.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2/lec4_quiz.pdf">Reading quiz</a></li><li><a href="http://people.mbi.ucla.edu/leec/learning2_public/lec4_final.pdf">Lecture 4: principles of probabilistic modeling</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/lec4.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2/modeling.pdf">Reading for lecture 5: probabilistic modeling</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/modeling.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2/bio.pdf">Basic genetics glossary of terms</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/bio.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2/lec5_quiz.pdf">Reading quiz</a></li><li><a href="http://people.mbi.ucla.edu/leec/learning2_public/lec5_final.pdf">Lecture 5: modeling concept tests</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/lec5.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2_public/lec6_final.pdf">Lecture 6: more modeling concept tests</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/lec6.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2_public/lec6_reading.pdf">Reading for lecture 7: hypothesis testing</a> (<a href="http://people.mbi.ucla.edu/leec/learning2_public/lec6_reading.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2_public/lec7_final.pdf">Lecture 7: modeling concept errors; hypothesis testing</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/lec7.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2_public/lec8_reading.pdf">Reading for lecture 8: Markov chains</a> (<a href="http://people.mbi.ucla.edu/leec/learning2_public/lec8_reading.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2/lec8_quiz.pdf">Reading quiz</a></li><li><a href="http://people.mbi.ucla.edu/leec/learning2_public/lec8_slides.pdf">Lecture 8: HMMs</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/lec8.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2_public/lec9_reading.pdf">Reading for lecture 9: HMM posteriors; heterogeneous HMMs; HMM length variation</a> (<a href="http://people.mbi.ucla.edu/leec/learning2_public/lec9_reading.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2_public/lec9_final.pdf">Lecture 9: conceptual learning suggestions; higher order dependencies; forward-backward algorithm</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/lec9.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2_public/lec10_reading.pdf">Reading for lecture 10: Generalized Markov models, branching, closures, posterior algorithms</a> (<a href="http://people.mbi.ucla.edu/leec/learning2_public/lec10_reading.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2_public/lec10_final.pdf">Lecture 10: HMM concept errors; forward-backward concept tests; profile alignment</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/lec10.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2_public/lec11_final.pdf">Lecture 11: forward-backward concept errors; sequence alignment concept tests</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/lec11.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2_public/lec12_final.pdf">Lecture 12: HMM models of alignment</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/lec12.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2_public/lec13_reading.pdf">Reading for lecture 13: Evolution as a continuous-time Markov process</a> (<a href="http://people.mbi.ucla.edu/leec/learning2_public/lec13_reading.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2/lec13_quiz.pdf">Reading quiz</a></li><li><a href="http://people.mbi.ucla.edu/leec/learning2_public/lec13_final.pdf">Lecture 13: alignment concept errors; phylogeny concepts</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/lec13.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2_public/lec14_final.pdf">Lecture 14: evolutionary distance models; phylogeny construction algorithms</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/lec14.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2_public/lec15_final.pdf">Lecture 15: phylogeny concept tests</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/lec15.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2_public/lec16_final.pdf">Lecture 16: phylogeny concept errors</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/lec16.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2_public/lec16_reading.pdf">Reading for lecture 17: analyzing tree structure and posterior confidence</a> (<a href="http://people.mbi.ucla.edu/leec/learning2_public/lec16_reading.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2_public/lec17_final.pdf">Lecture 17: consensus phylogeny analysis</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/lec17.rst">source</a>)</li></ul><h5>Homework</h5><ul><li><a href="http://people.mbi.ucla.edu/leec/learning2/hw1.pdf">Homework 1</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/hw1.rst">source</a>) and <a href="http://people.mbi.ucla.edu/leec/learning2/hw1_answers.pdf">Answers</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/hw1_answers.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2/hw2.pdf">Homework 2</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/hw2.rst">source</a>) and <a href="http://people.mbi.ucla.edu/leec/learning2/hw2_answers.pdf">Answers</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/hw2_answers.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2/proj1.pdf">Project 1</a></li><li><a href="http://people.mbi.ucla.edu/leec/learning2/hw4.pdf">Homework 4</a> and <a href="http://people.mbi.ucla.edu/leec/learning2/hw4_answers.pdf">Answers</a>.</li><li><a href="http://people.mbi.ucla.edu/leec/learning2/hw5.pdf">Homework 5</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/hw5.rst">source</a>) and answers (<a href="http://people.mbi.ucla.edu/leec/learning2/hw5a.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2/proj2.pdf">Project 2</a></li><li><a href="http://people.mbi.ucla.edu/leec/learning2/hw7.pdf">Homework 7</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/hw7.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2/hw8.pdf">Homework 8</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/hw8.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2/term_project.pdf">Graduate term project guidelines</a> and <a href="http://people.mbi.ucla.edu/leec/learning2/gradprojects.pdf">Suggested example projects</a></li></ul><h5>Exams</h5><ul><li><a href="http://people.mbi.ucla.edu/leec/learning2/practice1.pdf">Practice midterm 1</a> and <a href="http://people.mbi.ucla.edu/leec/learning2/practice1a.pdf">Answers</a></li><li><a href="http://people.mbi.ucla.edu/leec/learning2/practice2.pdf">Practice midterm 2</a> and <a href="http://people.mbi.ucla.edu/leec/learning2/practice2a.pdf">Answers</a></li><li><a href="http://people.mbi.ucla.edu/leec/learning2/midterm_equations.pdf">Midterm equation sheet</a></li><li><a href="http://people.mbi.ucla.edu/leec/learning2/midterm.pdf">Graduate midterm</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/midterm.rst">source</a>) and <a href="http://people.mbi.ucla.edu/leec/learning2/midterm_answers.pdf">Answers</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/midterm_answers.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2/midterm_ug.pdf">Undergrad midterm</a> : removed several of the more challenging questions (<a href="http://people.mbi.ucla.edu/leec/learning2/midterm_ug.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2/practice_final_1.pdf">Practice final 1</a> and <a href="http://people.mbi.ucla.edu/leec/learning2/practice_finalkey_1.pdf">Answers</a></li><li><a href="http://people.mbi.ucla.edu/leec/learning2/practice_final_2.pdf">Practice midterm 2</a> and <a href="http://people.mbi.ucla.edu/leec/learning2/practice_finalkey_2.pdf">Answers</a></li><li><a href="http://people.mbi.ucla.edu/leec/learning2/final_equations.pdf">Final equation sheet</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/final_equations.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2/final.pdf">Graduate final</a> (<a href="http://people.mbi.ucla.edu/leec/learning2/final.rst">source</a>)</li><li><a href="http://people.mbi.ucla.edu/leec/learning2/final_ug.pdf">Undergrad final</a> : removed several of the more challenging questions (<a href="http://people.mbi.ucla.edu/leec/learning2/final_ug.rst">source</a>)</li></ul><h4>Standard Tools Used For These Materials</h4>I have based my work on completely standard tools and formats that can be automatically converted to a wide variety of outputs or other standard formats. A short list:<br /><ul><li><a href="http://sphinx.pocoo.org/rest.html">reStructured Text</a>, a flexible open document standard with <a href="http://en.wikipedia.org/wiki/LaTeX">LaTeX</a> equation support.</li><li>The <a href="http://sphinx.pocoo.org/">Sphinx</a> documentation system, which can convert rst to standard "textbook format" LaTeX output.</li><li><a href="https://github.com/cjlee112/rst2beamer">rst2beamer</a> rst-to-latex slides converter, modified (by me) to support LaTeX equations.</li><li><a href="http://en.wikipedia.org/wiki/Beamer_(LaTeX)">beamer</a> LaTeX slide presentation class.</li><li>pdflatex</li><li>All work on this project has been tracked in the <a href="http://git-scm.com/">Git</a> distributed version control system. The public repository will most likely be hosted on <a href="https://github.com/cjlee112">Github</a>; the private repository could either be at UCLA or possibly Github.</li></ul><!-- gitpubHash=a23feb9beb3a50e7439981ae47e067a5b2d250cd --></div>Christopher Leehttps://plus.google.com/114744049040264263224noreply@blogger.com0