sp-tutorial 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -17,7 +17,7 @@
17
17
  <body>
18
18
  <div class="span-21" id="header">
19
19
  <div id="logo" class="push-1 span-7">
20
- <a href="/sp/">WB@SP</a><span>2dc87f0d…</span>
20
+ <%= link_to "WB@SP", "/" %><span>2dc87f0d…</span>
21
21
  </div>
22
22
  <div class="span-13 last">
23
23
  <div class="append-1" id="links">
@@ -73,6 +73,39 @@ Trochę o repozytoriach gita, błędach
73
73
  początkujących etc. Jak umieścić swoją
74
74
  zmienioną wersję na *github.com*.
75
75
 
76
- Zmienna powłoki: *PATH*
76
+ Powtórka, dużo przykładów do „Przetrwać z uniksem”.
77
77
 
78
- Wyrażenia regularne: *egrep*. Programy *find* i *diff*.
78
+ Tymczasowy URL strony:
79
+
80
+ http://sigma.inf.ug.edu.pl:8002/
81
+
82
+
83
+ ## 26.10.2009
84
+
85
+ Środowisko. Wypisywanie zmiennych i ich wartości,
86
+ polecenia *env* i *set*.
87
+ Zmienne powłoki: *PATH*, *LANG_XX*.
88
+
89
+ Program *find*, kilka przykładów. Wyrażenia regularne:
90
+ przykład z godzinami w formacie: 15:10. Testowanie
91
+ prostego wyrażenia na stronie *Rubular*.
92
+ Zadanie domowe: przeczytać ze strony manuala
93
+ polecenia *grep* rozdział „REGULAR EXPRESSIONS”.
94
+ W laboratorium należy wyjaśnić pozostałe przykłady z wykładu.
95
+
96
+ Polecenie *diff*. Różne sposoby pokazywania
97
+ różnic między plikami: standardowy, kontekstowy
98
+ oraz unified. Info o programie *kdiff3* oraz
99
+ o „three-way diff”.
100
+ W laboratorium powiedzieć do czego służy program
101
+ *patch* + przykład.
102
+
103
+
104
+ ## 9.11.2009
105
+
106
+ XeLaTeX.
107
+
108
+
109
+ ## 16.11.2009
110
+
111
+ Skrypty.
@@ -21,6 +21,7 @@ w komputerze tak się Wam spodobał.
21
21
  1. {%= link_to "Nie za krótkie wprowadzenie do LaTeX-a", "/latex" %}
22
22
  1. {%= link_to "Git jest git", "/git" %}
23
23
  1. {%= link_to "Jak zostać Uniksowym guru w kwadrans", "/unix-guru" %}
24
+ 1. {%= link_to "TeXLive i inne różne rzeczy", "/texlive" %}
24
25
  1. {%= link_to "Skryptologia stosowana", "/scripts" %}
25
26
 
26
27
  Różne rzeczy:
@@ -28,12 +29,7 @@ Różne rzeczy:
28
29
  * {%= link_to "Wykłady", "/ll"%}
29
30
  * {%= link_to "Ćwiczenia", "/exercises" %}
30
31
  * {%= link_to "Odpowiedzi", "/answers" %}
31
-
32
-
33
- ## Terminy kolejnych wykładów
34
-
35
- * Październik: 5, 12, 19, 26
36
- * Listopad: 2, 9, 16 (ostatni wykład, 1h)
32
+ * {%= link_to "Blogi studentów", "/blogs" %}
37
33
 
38
34
 
39
35
  ## Literatura
@@ -44,8 +40,13 @@ Różne rzeczy:
44
40
  1. T. Oetiker, H. Partl, I. Hyna, E. Schlegl.
45
41
  [Nie za krótkie wprowadzenie do systemu LaTeX2e] [lshort2e]
46
42
  (tłumaczenie J. Gołdasz, R. Kubiak, T. Przechlewski).
43
+ 1. P. Flynn.
44
+ [Formatting Information](http://www.ctan.org/tex-archive/info/beginlatex/),
45
+ Version 3.6, March 2005.
46
+ [Wersja HTML](http://www.tex.ac.uk/tex-archive/info/beginlatex/html/).
47
+ 1. M. Downes. {%= link_to "Short Math Guide for LaTeX", "/doc/short-math-guide.pdf" %}.
47
48
  1. L. Lamport. „LaTeX. System opracowywania dokumentów”. Wydawnictwa Naukowo-Techniczne 2004.
48
- 1. [LaTeX2ε Cheatsheet] [latex2e cheatsheet]
49
+ 1. [LaTeX2ε Cheatsheet] [latex2e cheatsheet].
49
50
  1. Peter Norvig. [Teach Yourself Programming in Ten Years] [typ10].
50
51
  1. [TeX Live] [texlive].
51
52
  1. [TeXWorks IDE] [texworks].
@@ -0,0 +1,198 @@
1
+ #### {% title "TeXLive…" %}
2
+
3
+ # TeXLive i inne różne rzeczy
4
+
5
+ Na *Sigmie* zainstalowany jest system TeX z paczki *TeXLive*.
6
+ Dokumentację do systemu można pobrać z serwera
7
+ [Polskiej Grupy Użytkowników Systemu TeX] [gust doc].
8
+
9
+ W pracowniach będziemy korzystać z najnowszej wersji
10
+ systemu TeX zawartej w „TeXLive 2009” z programem
11
+ *xetex* w wersji 0.999.6.
12
+
13
+ Do pracy z dokumentami techowymi będziemy używać programu
14
+ *texworks* w wersji co najmniej 0.1 (r.416).
15
+
16
+
17
+ ## Konfiguracja TeXLive
18
+
19
+ Tylko podstawowe informacje.
20
+
21
+ TeX Live to ok. 35000 plików (razem, +1GB).
22
+ Pliki te są umieszczone w drzewkach. Listę drzewek otrzymamy
23
+ wykonując polecenie:
24
+
25
+ /home/pracinf/wbzyl/.texlive2008/texmf-config,
26
+ /var/lib/texmf,
27
+ /home/pracinf/wbzyl/texmf, # tutaj trzymamy prywatne pliki
28
+ /etc/texlive,
29
+ /var/lib/texmf,
30
+ /usr/share/texmf,
31
+ /usr/share/texmf, # bug! zamienić na texmf-local
32
+ /usr/share/texmf-dist
33
+
34
+ System TeX konfigurujemy edytując plik *texmf.cnf*.
35
+ Plik ten odszukujemy w systemie w taki sposób:
36
+
37
+ kpsewhich texmf.cnf
38
+ /usr/share/texmf/web2c/texmf.cnf
39
+
40
+ Zawartość tego pliku podejrzymy tak:
41
+
42
+ less $(kpsewhich texmf.cnf)
43
+
44
+
45
+ ## Instalacja TeXLive bezpośrednio z internetu
46
+
47
+ Na stronie [TeX Live availability](http://www.tug.org/texlive/acquire.html)
48
+ znajdziemy link do instalki systemu bezpośrednio z internetu
49
+ „TeX Live installation over the Internet”:
50
+ [Linux](http://mirror.ctan.org/systems/texlive/tlnet/2008/install-tl-unx.tar.gz)
51
+ [Windows](http://mirror.ctan.org/systems/texlive/tlnet/2008/install-tl.zip).
52
+
53
+ Po rozpakowaniu archiwum, uruchamiamy skrypt:
54
+
55
+ sudo ./install-tl
56
+
57
+ i po chwili widzimy, że będziemy musieli czekać z tydzień, zanim
58
+ zostaną ściągnięte wszystkie pakiety. Aby przyspieszyć instalację
59
+ wymieniamy domyślnie ustawiony serwer z którego pobierane są pakiety:
60
+
61
+ sudo ./install-tl -location ftp://ftp.gust.org.pl/tex-archive/systems/texlive/tlnet/2008/tlpkg/
62
+
63
+ Domyślne ustawienie drzewek techowych w TeXLive:
64
+
65
+ TEXDIR (the main TeX directory):
66
+ /usr/local/texlive/2008
67
+ TEXMFLOCAL (directory for site-wide local files):
68
+ /usr/local/texlive/texmf-local
69
+ TEXMFSYSVAR (directory for variable and automatically generated data):
70
+ /usr/local/texlive/2008/texmf-var
71
+ TEXMFSYSCONFIG (directory for local config):
72
+ /usr/local/texlive/2008/texmf-config
73
+ TEXMFHOME (directory for user-specific files):
74
+ ~/texmf
75
+
76
+ ### tlmgr – TeX Live package manager
77
+
78
+ System uaktualniamy korzystając z programu
79
+ [tlmgr](http://www.tug.org/texlive/tlmgr.html):
80
+
81
+ Kilka poleceń na dobry początek:
82
+
83
+ tlmgr update --all
84
+ Make your local TeX installation correspond to what
85
+ is in the package repository (typically on CTAN).
86
+ tlmgr update --list
87
+ Report what would be updated without actually updating anything.
88
+ tlmgr show pkgname
89
+ Display detailed information about pkgname,
90
+ such as the installation status and description
91
+
92
+ \([dokumentacja](http://www.tug.org/texlive/doc/tlmgr.html)\)
93
+
94
+
95
+ <blockquote>
96
+ {%= image_tag "/images/marcin_wolinski.jpg", :alt => "[Marcin Woliński]" %}
97
+ <p class="center">Marcin Woliński</p>
98
+ </blockquote>
99
+
100
+ ## Obłożenie klawiatury dla programisty
101
+
102
+ „Starannie zaprojektowane obłożenie klawiatury, zapewniające dostęp do
103
+ wszystkich potrzebnych symboli, jest istotnym elementem wygodnego
104
+ środowiska pracy osoby zajmującej się składem tekstu. W wypadku TeX-a
105
+ wiele symboli można uzyskać za pomocą poleceń, ale ponieważ powoli
106
+ standardem kodowania tekstu staje się Unicode, tych znaków, które
107
+ zostały uwzględnione w Unikodzie, wygodniej jest używać
108
+ bezpośrednio. Oczywiście pod warunkiem, że nie wymaga to szukania
109
+ znaków w «tablicy symboli».”
110
+ Marcin Woliński. [Racjonalna polska klawiatura dla programisty i&nbsp;typografa] [mw keyboard].
111
+
112
+ Opis instalacji dla Ubuntu (i dla Fedory) łatki ze strony autora.
113
+
114
+ W terminalu przejść do katalogu */usr/share/X11/xkb/*:
115
+
116
+ cd /usr/share/X11/xkb/
117
+
118
+ Nałożyć pobraną łatę na pliki definicyjne klawiatury poleceniem *patch*:
119
+
120
+ sudo patch -b -p1 < ...ścieżka/do/mwplkeyb.ubuntu9.04.diff
121
+
122
+ Dla bezpieczeństwa można najprzód wykonać powyższe polecenie na próbę:
123
+
124
+ patch --dry-run -b -p1 < ...ścieżka/do/mwplkeyb.ubuntu9.04.diff
125
+
126
+ i dopiero jeśli odpowie, że może z powodzeniem nałożyć wszystkie
127
+ łatki, wykonać polecenie powyżej.
128
+
129
+ Uaktywnić ten układ klawiatury w sposób właściwy dla danego środowiska
130
+ graficznego. W GNOME można go wyklikać z menu
131
+
132
+ System ↦ Preferencje ↦ Klawiatura
133
+ Układy ↦ Dodaj ↦ Kraj: Polska, Wariant: «International (with dead keys)».
134
+
135
+ Z terminala można aktywować nasz układ klawiatury dla bieżącej sesji poleceniem:
136
+
137
+ setxkbmap 'pl(intl)'
138
+
139
+ Dla trwałego efektu trzeba by je dodać do jakiegoś skryptu
140
+ inicjującego sesję X Window.
141
+
142
+
143
+ <blockquote>
144
+ {%= image_tag "/images/bop.jpg", :alt => "[autorzy Latin Modern]" %}
145
+ <p class="center">od lewej: P.&nbsp;Strzelczyk, B. Jackowski, J.&nbsp;M. Nowacki</p>
146
+ </blockquote>
147
+
148
+ ## Fonty Latin Modern
149
+
150
+ [Rodzina fontów Latin Modern w formacie OTF] [lm].
151
+ Ręczna instalacja w systemie? Kopiujemy archiwum do drzewka
152
+ *lokalnego* i tam je rozpakowujemy. Na koniec wykonujemy
153
+ polecenie: `mktexlsr` (albo `texhash`).
154
+
155
+
156
+ ## I-Ching
157
+
158
+ Ściągamy mój pakiet [I-ching Divinations] [i-ching].
159
+ Instalujemy go i poprawiamy skrypt *dod.sh*, tak
160
+ aby korzystał z fontów PFB (a nie z fontów PK).
161
+
162
+ Teraz uruchamiamy skrypt i po jego wykonaniu oglądamy wróżbę:
163
+
164
+ gv your-divination.ps
165
+
166
+ Skrypt *dod.sh* korzysta z programu *tex*.
167
+ Czy zamiast programu *tex* można użyć programu *xetex*?
168
+
169
+
170
+ ## Inkscape
171
+
172
+ Z manuala: „Inkscape − an SVG (Scalable Vector Graphics) editing program.”
173
+
174
+ Od siebie dodam, że program jest łatwy w obsłudze,
175
+ a obejrzenie kilku tutoriali ze strony
176
+ [Inkscape tutorials for the novice artist](http://screencasters.heathenx.org/)
177
+ powinno przekonać do programu niedowiarków.
178
+
179
+
180
+ ## Pandoc
181
+
182
+ [Cytat] [pandoc]: „Pandoc is a Haskell library for converting from one markup
183
+ format to another, and a command-line tool that uses this library. It
184
+ can read markdown and (subsets of) reStructuredText, HTML, and LaTeX,
185
+ and it can write markdown, reStructuredText, HTML, LaTeX, ConTeXt,
186
+ PDF, RTF, DocBook XML, OpenDocument XML, ODT, GNU Texinfo, MediaWiki
187
+ markup, groff man pages, and S5 HTML slide shows.”
188
+
189
+
190
+ #### Linki
191
+
192
+ [gust doc]: http://www.gust.org.pl/doc "Dokumentacje — GUST"
193
+ [lm]: http://www.gust.org.pl/projects/e-foundry/latin-modern/download "Latin Modern collection"
194
+ [mw keyboard]: http://marcinwolinski.pl/keyboard/ "Racjonalna polska klawiatura dla programisty…"
195
+
196
+ [i-ching]: http://www.ctan.org/tex-archive/fonts/psfonts/i-ching/ "I-Ching Divinations"
197
+
198
+ [pandoc]: http://johnmacfarlane.net/pandoc/ "Pandoc"
@@ -464,23 +464,26 @@ Proste przykłady:
464
464
  getconf ARG_MAX
465
465
  find /usr/include -type f | xargs grep POSIX_OPEN_MAX /dev/null
466
466
 
467
- Znajdź pliki puste lub nie otwierane od ponad roku:
468
-
469
- :::shell-unix-generic
470
- find . -size 0 -o -atime +365
471
-
472
467
  Więcej przykładów:
473
468
 
474
469
  :::shell-unix-generic
475
470
  find . -name "*.c" -print
476
471
  find . -mmin -5 # pliki modyfikowane w ostatnich 5 minutach
477
472
  find . -mmin +5 # ?
478
- find . -name "*.c" | xargs ls -l
479
473
 
480
- Polecenie *locate*.
474
+ Znajdź pliki puste lub nie otwierane od ponad roku:
475
+
476
+ :::shell-unix-generic
477
+ find . -size 0 -o -atime +365
478
+
479
+ Jeszcze jeden przykład z *xargs*:
481
480
 
481
+ find . -name "*.c" | xargs wc
482
482
 
483
- ## Polecenie diff
483
+ Polecenia *locate* i *updatedb*.
484
+
485
+
486
+ ## Polecenia *diff* i *patch*
484
487
 
485
488
  Tworzymy dwa pliki testowe:
486
489
 
@@ -517,13 +520,40 @@ Nakładamy łatę:
517
520
  </p>
518
521
  </blockquote>
519
522
 
523
+
520
524
  ## Wyrażenia regularne
521
525
 
522
- Samouczek: [Learning to Use Regular Expressions] [regexp tutorial].
526
+ Zaczynamy od lektury:
527
+
528
+ man egrep
529
+ /REGULAR EXP
530
+
531
+ Różne implementacje wyrażeń regularnych:
532
+
533
+ * Javascript: [Regular Expression Tester] [regexp tester]
534
+ * Ruby: [Rubular](http://rubular.com/). Fajne! Można
535
+ zrobić *permalink*.
536
+
537
+ Wchodzimy na *Rubular*, aby przyjrzeć się tym przykładom:
538
+
539
+ * nazwy zmiennych: `[a-zA-Z_][a-zA-Z_0-9]*`
540
+ * "napis": `"[^"]"` – użyteczne, ale czasami potrzebujemy
541
+ czegoś bardziej użytecznego; czego?
542
+ * cena w dolarach plus opcjonalnie centy: `\$[0-9]+(\.[0-9][0-9])?` –
543
+ naiwne, w zupełności wystarczyłoby: `\$[0-9]+`;
544
+ tym niemniej użyteczne, chociaż nie dopasowuje się do `$.46`;
545
+ zamiana `+` na `*`, czyli takie wyrażenie
546
+ `\$[0-9]*(\.[0-9][0-9])?` nie jest rozwiązaniem! dlaczego?
547
+
548
+ Na koniec, kilka wyrażeń regularnych dopasowujących się
549
+ do godzin zapisywanych w takim formacie: `8:15`, `22:04`.
523
550
 
524
- Program <kbd>egrep</kbd>.
551
+ * `[0-9]?[0-9]:[0-9][0-9]` – użyteczne, ale mało **dokładne**: 99:99
552
+ * `(1[012]|0?[0-9])|[0-5][0-9]` – ok, ale tylko 00:00–12:59
553
+ * `[01]?[0-9]|2[0-3]` – ok, jeśli dołożymy minuty
554
+ * `[01]?[4-9]|[012]?[0-3]` – ok, j.w.; ale jak to wyjaśnić?
525
555
 
526
- Testowanie wyrażeń regularnych: [Regular Expression Tester] [regexp tester]
556
+ Samouczek [Learning to Use Regular Expressions] [regexp tutorial].
527
557
 
528
558
 
529
559
  ## Fuse filesystem
@@ -1,15 +1,15 @@
1
1
  # Generated by jeweler
2
- # DO NOT EDIT THIS FILE
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{sp-tutorial}
8
- s.version = "0.2.0"
8
+ s.version = "0.3.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Wlodek Bzyl"]
12
- s.date = %q{2009-10-19}
12
+ s.date = %q{2009-11-26}
13
13
  s.description = %q{Notatki do frameworka Rails3
14
14
  }
15
15
  s.email = %q{matwb@univ.gda.pl}
@@ -18,9 +18,7 @@ Gem::Specification.new do |s|
18
18
  ]
19
19
  s.files = [
20
20
  "Rakefile",
21
- "TODO",
22
21
  "VERSION.yml",
23
- "config.ru",
24
22
  "lib/config.ru",
25
23
  "lib/public/doc/Cyklop-otf-0_91.zip",
26
24
  "lib/public/doc/ex/sp_lab01_zad.odt",
@@ -28,7 +26,10 @@ Gem::Specification.new do |s|
28
26
  "lib/public/doc/ex/sp_lab03_zad.odt",
29
27
  "lib/public/doc/ex/sp_lab04_zad.odt",
30
28
  "lib/public/doc/latexsheet.pdf",
29
+ "lib/public/doc/short-math-guide.pdf",
31
30
  "lib/public/doc/survival.pdf",
31
+ "lib/public/doc/templates/article-bibliography.tex",
32
+ "lib/public/doc/templates/article-hyperref.tex",
32
33
  "lib/public/images/Thatll_Flat_Git_It_Vol_20.jpg",
33
34
  "lib/public/images/alan_kay.jpg",
34
35
  "lib/public/images/alan_perlis.jpg",
@@ -72,6 +73,7 @@ Gem::Specification.new do |s|
72
73
  "lib/public/stylesheets/uv.css",
73
74
  "lib/sp-tutorial.rb",
74
75
  "lib/views/answers.rdiscount",
76
+ "lib/views/blogs.rdiscount",
75
77
  "lib/views/exercises.rdiscount",
76
78
  "lib/views/favicon.ico.rdiscount",
77
79
  "lib/views/git.rdiscount",
@@ -79,21 +81,28 @@ Gem::Specification.new do |s|
79
81
  "lib/views/labs02.rdiscount",
80
82
  "lib/views/labs03.rdiscount",
81
83
  "lib/views/labs04.rdiscount",
84
+ "lib/views/labs05.rdiscount",
85
+ "lib/views/labs06.rdiscount",
86
+ "lib/views/labs07.rdiscount",
87
+ "lib/views/labs10.rdiscount",
88
+ "lib/views/labs12.rdiscount",
89
+ "lib/views/labs13.rdiscount",
82
90
  "lib/views/latex.rdiscount",
83
91
  "lib/views/layout.rdiscount",
84
92
  "lib/views/ll.rdiscount",
85
93
  "lib/views/main.rdiscount",
86
94
  "lib/views/scripts.rdiscount",
95
+ "lib/views/texlive.rdiscount",
87
96
  "lib/views/unix-commands.rdiscount",
88
97
  "lib/views/unix-guru.rdiscount",
89
98
  "sp-tutorial.gemspec"
90
99
  ]
91
- s.homepage = %q{http://github.com/wbzyl/sp-tutorial}
100
+ s.homepage = %q{http://github.com/wbzyl/sp-ii}
92
101
  s.rdoc_options = ["--charset=UTF-8"]
93
102
  s.require_paths = ["lib"]
94
103
  s.rubyforge_project = %q{sp-tutorial}
95
104
  s.rubygems_version = %q{1.3.5}
96
- s.summary = %q{Notatki do wyklady z Srodowiska Programisty.}
105
+ s.summary = %q{Notatki do wykladu z Srodowiska Programisty.}
97
106
 
98
107
  if s.respond_to? :specification_version then
99
108
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
@@ -104,22 +113,23 @@ Gem::Specification.new do |s|
104
113
  s.add_runtime_dependency(%q<sinatra>, [">= 0"])
105
114
  s.add_runtime_dependency(%q<rdiscount>, [">= 0"])
106
115
  s.add_runtime_dependency(%q<ultraviolet>, [">= 0"])
107
- s.add_runtime_dependency(%q<wbzyl-sinatra-rdiscount>, [">= 0"])
108
- s.add_runtime_dependency(%q<wbzyl-rack-codehighlighter>, [">= 0"])
116
+ s.add_runtime_dependency(%q<sinatra-rdiscount>, [">= 0"])
117
+ s.add_runtime_dependency(%q<rack-codehighlighter>, [">= 0"])
109
118
  else
110
119
  s.add_dependency(%q<rack>, [">= 0"])
111
120
  s.add_dependency(%q<sinatra>, [">= 0"])
112
121
  s.add_dependency(%q<rdiscount>, [">= 0"])
113
122
  s.add_dependency(%q<ultraviolet>, [">= 0"])
114
- s.add_dependency(%q<wbzyl-sinatra-rdiscount>, [">= 0"])
115
- s.add_dependency(%q<wbzyl-rack-codehighlighter>, [">= 0"])
123
+ s.add_dependency(%q<sinatra-rdiscount>, [">= 0"])
124
+ s.add_dependency(%q<rack-codehighlighter>, [">= 0"])
116
125
  end
117
126
  else
118
127
  s.add_dependency(%q<rack>, [">= 0"])
119
128
  s.add_dependency(%q<sinatra>, [">= 0"])
120
129
  s.add_dependency(%q<rdiscount>, [">= 0"])
121
130
  s.add_dependency(%q<ultraviolet>, [">= 0"])
122
- s.add_dependency(%q<wbzyl-sinatra-rdiscount>, [">= 0"])
123
- s.add_dependency(%q<wbzyl-rack-codehighlighter>, [">= 0"])
131
+ s.add_dependency(%q<sinatra-rdiscount>, [">= 0"])
132
+ s.add_dependency(%q<rack-codehighlighter>, [">= 0"])
124
133
  end
125
134
  end
135
+