Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Lucy Wiki" for change 
notification.

The "LucyBookClub" page has been changed by MarvinHumphrey:
https://wiki.apache.org/lucy/LucyBookClub?action=diff&rev1=59&rev2=60

Comment:
Start Pro Git

  == Agenda ==
  The Lucy Book Club is open to anyone who is interested in search, parsing, 
compilers, and Lucy in general.
  
- We are currently taking a MOOC, 
[[https://www.coursera.org/course/hwswinterface|The Hardware/Software 
Interface]], offered by the University of Washington in conjunction with 
Coursera.
+ On January 14, we will start reading through the book 
[[http://git-scm.com/book|Pro Git]] by Scott Chacon.  The entire book is 
available online as well as in traditional dead-tree format.
  
  == Schedule ==
  
- We currently meet weekly on Tuesday evenings at 19:00 PDT. The meeting takes 
place online with Google Plus Hangouts, a video chat service. For more 
information on how to access the chat room log into irc.freenode.net/#lucy_dev 
and ask for an invite.
+ We currently meet weekly on Tuesday evenings at 18:00 PDT. The meeting takes 
place online with Google Plus Hangouts, a video chat service. For more 
information on how to access the chat room log into irc.freenode.net/#lucy_dev 
and ask for an invite.
+ 
+ We used to meet at 19:00 PDT, but we have changed the schedule to be more 
convenient for our East Coast participants.
  
  == Where To Get Information ==
  
@@ -20, +22 @@

  [[mailto:[email protected]|[email protected]]]
  
  == Upcoming Meetings ==
+ 
+ === Tuesday January 14, 18:00 PDT: ===
+ 
+ ''Pro Git'' Chapter 1: [[http://git-scm.com/book/en/Getting-Started|Getting 
Started]]
+ 
+ Discussion questions:
+ 
+  1.  What are some backup strategies that don't use version control?
+  1.  What are some of the features of version control?
+  1.  What does RCS stand for?
+  1.  How does RCS produce the current contents of a file which has been 
changed many times?
+  1.  How is RCS better than saving copies of files in time-stamped 
directories?
+  1.  How does version control differ from a backup system like Time Machine?
+  1.  What problem inherent to local version control systems like RCS were 
centralized version control systems designed to solve?
+  1.  What are the pros and cons of centralized version control?
+  1.  What are the pros and cons of distributed version control?
+  1.  Which version control systems store snapshots and which store 
differences?
+  1.  How did Linux manage version control until around 2002?
+  1.  What were some of the design criteria for Git?
+  1.  Why is `git log` so much faster than `svn log`?
+  1.  Would Git work well for the following tasks?
+   *   writing a novel
+   *   writing poetry
+   *   writing a journal
+   *   writing magazine articles
+   *   taking notes on academic classes
+   *   managing a small static website
+   *   form letters
+   *   archiving log files
+   *   documentation
+   *   magazine layouts
+   *   raster image files, e.g. Photoshop native format
+   *   .m3u playlists
+   *   video editing projects
+   *   MIDI music sequence files
+  1.  How does addressing content by hash improve Git's integrity?
+  1.  What are the security advantages of a DVCS?
+  1.  When your commit changes only one file out of many, how does Git handle 
saving the state of the files which have *not* changed?
+  1.  What are the three states that a tracked file can be in at any time?  
What is the state of an _untracked_ file?
+  1.  What is Git's "staging area" and how is it implemented?
+  1.  What are the three levels of config files for Git?  Which overrides 
which?
+  1.  When you run `git config --list`, you may see the same key multiple 
times with different values.  What does this mean?
+ 
+ == Community Notes ==
+ 
+ Below are an excerpt of notes from previous meetings and or anything of 
interest related to the meetings.
+ 
  
  === Tuesday June 18, 7:00 pm PDT: ===
  
@@ -35, +84 @@

   1.  Without indirection, what happens if you need to update data which 
exists at multiple memory locations?
   1.  What are some non-computer-science examples of indirection?
   1.  What aren't there any machines which are capable of mapping a full 
64-bit address space in physical memory?
-  1.  What are some systems which use direct physical addressing?  
+  1.  What are some systems which use direct physical addressing?
   1.  What are the three states for virtual memory pages?
   1.  Roughly how large is a virtual memory page?
   1.  Why not use write-through with virtual memory?
@@ -56, +105 @@

   1.  There are two kinds of fragmentation: internal and external.  Internal 
and external to what?  How do they differ?
   1.  Briefly describe four approaches to managing a memory heap: _implicit 
free list_, _explicit free list_, _segregated free list_, and _blocks sorted by 
size_.
   1.  What are the differences between _first fit_, _next fit_ and _best fit_?
-  1.  What is _splitting_? 
+  1.  What is _splitting_?
   1.  What is _coalescing_?
   1.  When memory is nearly full, which is faster: implicit or explicit free 
list?
   1.  For a segregated free list allocator, how closely does memory 
utilization approach best fit?
@@ -65, +114 @@

  
   1.  If heap memory were executable, how might a double free() lead to a an 
exploit resulting in arbitrary code execution?  Hint: it's like a stack buffer 
overflow, but much harder for the attacker.
   1.  Why does Professor Ceze keep saying "Simple, right?" for stuff that 
isn't simple?
- 
- 
- 
- == Community Notes ==
- 
- Below are an excerpt of notes from previous meetings and or anything of 
interest related to the meetings.
  
  === Tuesday June 11, 7:00 pm PDT: ===
  
@@ -111, +154 @@

  Review questions:
  
   1.  How well has memory speed and memory bandwidth kept up with increases in 
CPU speed?
-  1.  What is the unit of memory which is transfered between caches?  
+  1.  What is the unit of memory which is transfered between caches?
   1.  What are the two types of _locality_?
-  1.  How should code for a loop which iterates over a multi-dimensional array 
change depending on whether the array is stored in column-major or row-major 
order?  
+  1.  How should code for a loop which iterates over a multi-dimensional array 
change depending on whether the array is stored in column-major or row-major 
order?
   1.  Why is it faster to perform matrix multiplication in blocks rather than 
row by row?
-  1.  How much faster do hits have to be than misses in order for a 99% hit 
rate to be twice as fast as a 97% hit rate?  
+  1.  How much faster do hits have to be than misses in order for a 99% hit 
rate to be twice as fast as a 97% hit rate?
-  1.  Why is _miss rate_ often used rather than _hit rate_?  
+  1.  Why is _miss rate_ often used rather than _hit rate_?
-  1.  What's the typical miss penalty for L1?  L2?  Main memory?  Can there be 
a miss penalty for data stored a register?  
+  1.  What's the typical miss penalty for L1?  L2?  Main memory?  Can there be 
a miss penalty for data stored a register?
   1.  How are caches divided within the Intel Core i7?
-  1.  What are the drawbacks of a _direct-mapped_ cache?  What are the 
drawbacks of a _fully associative_ cache?  
+  1.  What are the drawbacks of a _direct-mapped_ cache?  What are the 
drawbacks of a _fully associative_ cache?
   1.  What purpose does the _tag_ in a cache entry serve?
   1.  In addition to the tag, a cache read also involves a _set index_ and a 
_block offset_ -- but those numbers are not stored explicity as part of the 
cache entry.  How are they used?
   1.  How is the _valid bit_ used in the context of a write-back cache?
@@ -188, +231 @@

   9.  How would you get at a single byte within an x86 register?
   10. What are the four integer op suffixes from AT&T assembler and what do 
they stand for?
   11. What is the pointer dereferencing operator in AT&T assembler?  What 
character is used as a sigil for constants?
-  12. Describe _displacement_ and _indirect_ addressing modes.  Describe the 
"general form" of the addressing idiom.  
+  12. Describe _displacement_ and _indirect_ addressing modes.  Describe the 
"general form" of the addressing idiom.
   13. How can the LEA instruction be abused to perform simple arithmetic using 
the general form of addressing?  What checks are omitted by LEA which are 
performed by standard arithmetic instructions like ADD?
   14. What allows chips which implement the x86-64 ISA to perform fewer 
manipulations of the stack than x86 chips?
   15. What's the difference between the SARL and SHRL instructions?
@@ -196, +239 @@

   17. What do testX and cmpX do?
   18. What it is the point of `testl %eax %eax`?
   19. Which control construct requires more JMP instructions: while or 
do-while?  How many JMP instructions does a for-loop require?
-  20. How does the `cmovC` "conditional move" instruction make it possible to 
avoid a JMP?  
+  20. How does the `cmovC` "conditional move" instruction make it possible to 
avoid a JMP?
   21. What advantage does PC-relative addressing offer over absolute 
addressing?
   22. Under what circumstances can a `switch` statement be implemented as a 
"jump table"?
   23. Explain the instruction `jmp *.L62(,%edx,4)`
@@ -213, +256 @@

  
   1.  What is hardware?  What is software?  What is the "hardware/software 
interface" as defined by the instructors?  What do you, personally, hope to 
gain from studying the "hardware/software interface"?
   2.  What attributes of assembly language make it easier to understand than 
machine code?
-  3.  Why might a computer process/thread be described as an "illusion"?  
+  3.  Why might a computer process/thread be described as an "illusion"?
   4.  What aspect of the low and high voltages representing zeroes and ones 
limits CPU clock speed?
   5.  In what sense are CPU registers, CPU cache, main memory, persistent 
storage (e.g. hard disk), and offline storage (e.g. offsite backups) all 
"memory"?  How do they differ?
   6.  What are the advantages of little-endian architecture with respect to 
casting between integer widths?
@@ -307, +350 @@

  
  2. Why is the strategy of using the most restrictive visibility possible a 
good practice when writing C++ to work with Elf?
  
- 3 What is a symbol map file for? 
+ 3 What is a symbol map file for?
  
  4 What is a wrapper function? And what are drawbacks of using wrapper 
functions?
  
@@ -460, +503 @@

  
  Here are review questions for the Drepper material:
  
-  1.  What limitations of the `a.out` format make it ill-suited for creating 
shared libraries?  If a modern Linux system supplied shared libraries derived 
from `a.out`, how would that affect applications which use them?  
+  1.  What limitations of the `a.out` format make it ill-suited for creating 
shared libraries?  If a modern Linux system supplied shared libraries derived 
from `a.out`, how would that affect applications which use them?
   2.  What is the main difference between a compiled ELF shared library and a 
compiled binary executable?
   3.  If you're creating a very large application which takes a long time to 
link, how can you use shared libraries to minimize the edit-compile-test loop 
and maximize programmer efficiency?  Compare this use of shared libraries to 
traditional separate compilation.
   4.  When loading the contents of an executable file into memory, why is it 
desirable to mark as many pages as possible non-writable?
@@ -553, +596 @@

          12.4.4 Transactional Memory
          12.4.5 Implicit Synchronization
      12.5 Message Passing
-     12.6 Summary and Concluding Remarks  
+     12.6 Summary and Concluding Remarks
  }}}
  
  
@@ -869, +912 @@

  
  
''[[http://www.amazon.com/Managing-Gigabytes-Compressing-Multimedia-Information/dp/1558605703/ref=sr_1_1?ie=UTF8&qid=1347647932&sr=8-1&keywords=Managing+Gigabytes|Managing
 Gigabytes]]'', by Ian H Witten.
  
- 
''[[http://www.amazon.com/Object-Oriented-Programming-Evolutionary-Brad-Cox/dp/0201548348/ref=sr_1_1?s=books&ie=UTF8&qid=1347648038&sr=1-1&keywords=Object-Oriented+Programming%3A++An+Evolutionary+Approach|Object-Oriented
 Programming:  An Evolutionary Approach]], by Brad J Cox. 
+ 
''[[http://www.amazon.com/Object-Oriented-Programming-Evolutionary-Brad-Cox/dp/0201548348/ref=sr_1_1?s=books&ie=UTF8&qid=1347648038&sr=1-1&keywords=Object-Oriented+Programming%3A++An+Evolutionary+Approach|Object-Oriented
 Programming:  An Evolutionary Approach]], by Brad J Cox.
  
  ''[[http://www.faqs.org/docs/artu/index.html|The Art of Unix Programming]], 
by Eric Steven Raymond.
  
@@ -882, +925 @@

  == Past Books ==
  
  
''[[http://www.amazon.com/Programming-Language-Pragmatics-Third-Edition/dp/0123745144/ref=sr_1_1?ie=UTF8&qid=1342155294&sr=8-1&keywords=programming+language+pragmatics|Programming
 Languages Pragmatics]]'', by Michael L Scott
-  
  

Reply via email to