sp-tutorial 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
+