sp-tutorial 0.2.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.
- data/README.markdown +42 -0
- data/Rakefile +36 -0
- data/TODO +6 -0
- data/VERSION.yml +4 -0
- data/config.ru +15 -0
- data/lib/config.ru +15 -0
- data/lib/public/doc/Cyklop-otf-0_91.zip +0 -0
- data/lib/public/doc/ex/sp_lab01_zad.odt +0 -0
- data/lib/public/doc/ex/sp_lab02_zad.odt +0 -0
- data/lib/public/doc/ex/sp_lab03_zad.odt +0 -0
- data/lib/public/doc/ex/sp_lab04_zad.odt +0 -0
- data/lib/public/doc/latexsheet.pdf +0 -0
- data/lib/public/doc/survival.pdf +0 -0
- data/lib/public/images/Thatll_Flat_Git_It_Vol_20.jpg +0 -0
- data/lib/public/images/alan_kay.jpg +0 -0
- data/lib/public/images/alan_perlis.jpg +0 -0
- data/lib/public/images/albert_einstein.jpg +0 -0
- data/lib/public/images/algorithm.png +0 -0
- data/lib/public/images/biuletyn-snall.jpg +0 -0
- data/lib/public/images/bop.jpg +0 -0
- data/lib/public/images/borenstein.jpg +0 -0
- data/lib/public/images/commits.png +0 -0
- data/lib/public/images/gitk-branches.png +0 -0
- data/lib/public/images/jkew.jpg +0 -0
- data/lib/public/images/jwz.gif +0 -0
- data/lib/public/images/knuth.jpg +0 -0
- data/lib/public/images/marcin_wolinski.jpg +0 -0
- data/lib/public/images/objects-example.png +0 -0
- data/lib/public/images/perlis.gif +0 -0
- data/lib/public/images/real_programmers.png +0 -0
- data/lib/public/images/richard_stallman.jpg +0 -0
- data/lib/public/images/sp.png +0 -0
- data/lib/public/images/sp.svg +117 -0
- data/lib/public/images/spowrotem.jpg +0 -0
- data/lib/public/images/staging_area.png +0 -0
- data/lib/public/images/the_thinker.jpg +0 -0
- data/lib/public/images/tparr.jpg +0 -0
- data/lib/public/images/wide-gitk.gif +0 -0
- data/lib/public/javascripts/sp.js +1 -0
- data/lib/public/stylesheets/fonts/Cyklop-Italic.otf +0 -0
- data/lib/public/stylesheets/icons/doc.png +0 -0
- data/lib/public/stylesheets/icons/email.png +0 -0
- data/lib/public/stylesheets/icons/external.png +0 -0
- data/lib/public/stylesheets/icons/feed.png +0 -0
- data/lib/public/stylesheets/icons/im.png +0 -0
- data/lib/public/stylesheets/icons/pdf.png +0 -0
- data/lib/public/stylesheets/icons/visited.png +0 -0
- data/lib/public/stylesheets/icons/xls.png +0 -0
- data/lib/public/stylesheets/ie.css +27 -0
- data/lib/public/stylesheets/print.css +30 -0
- data/lib/public/stylesheets/screen.css +249 -0
- data/lib/public/stylesheets/sp.css +194 -0
- data/lib/public/stylesheets/src/grid.png +0 -0
- data/lib/public/stylesheets/uv.css +121 -0
- data/lib/sp-tutorial.rb +78 -0
- data/lib/views/answers.rdiscount +7 -0
- data/lib/views/exercises.rdiscount +154 -0
- data/lib/views/favicon.ico.rdiscount +0 -0
- data/lib/views/git.rdiscount +558 -0
- data/lib/views/labs01.rdiscount +54 -0
- data/lib/views/labs02.rdiscount +32 -0
- data/lib/views/labs03.rdiscount +28 -0
- data/lib/views/labs04.rdiscount +41 -0
- data/lib/views/latex.rdiscount +498 -0
- data/lib/views/layout.rdiscount +41 -0
- data/lib/views/ll.rdiscount +78 -0
- data/lib/views/main.rdiscount +67 -0
- data/lib/views/scripts.rdiscount +618 -0
- data/lib/views/unix-commands.rdiscount +604 -0
- data/lib/views/unix-guru.rdiscount +696 -0
- data/sp-tutorial.gemspec +125 -0
- metadata +186 -0
@@ -0,0 +1,194 @@
|
|
1
|
+
/* font-face fonts works with Firefox and Opera */
|
2
|
+
|
3
|
+
@font-face {
|
4
|
+
font-family: "Cyklop";
|
5
|
+
src: url(fonts/Cyklop-Regular.otf) format("opentype");
|
6
|
+
}
|
7
|
+
|
8
|
+
@font-face {
|
9
|
+
font-family: "Cyklop";
|
10
|
+
src: url(fonts/Cyklop-Italic.otf) format("opentype");
|
11
|
+
font-style: italic;
|
12
|
+
}
|
13
|
+
|
14
|
+
#logo {
|
15
|
+
font: normal 256%/1 "Cyklop", "DejaVu Sans", sans-serif;
|
16
|
+
margin-bottom: 24px;
|
17
|
+
}
|
18
|
+
|
19
|
+
#logo a {
|
20
|
+
text-decoration: none;
|
21
|
+
color: #5A0405;
|
22
|
+
}
|
23
|
+
|
24
|
+
#logo a:focus, #logo a:hover {
|
25
|
+
color: #321494;
|
26
|
+
}
|
27
|
+
|
28
|
+
#logo span {
|
29
|
+
margin-left: 1em;
|
30
|
+
color: #B019BD;
|
31
|
+
}
|
32
|
+
|
33
|
+
/* hack for RDiscount comments */
|
34
|
+
|
35
|
+
h4 {
|
36
|
+
display: none;
|
37
|
+
}
|
38
|
+
|
39
|
+
html {
|
40
|
+
/* http://www.hicksdesign.co.uk/journal/forcing-scrollbars-now-even-better */
|
41
|
+
height: 100%;
|
42
|
+
margin-bottom: 1px;
|
43
|
+
|
44
|
+
background-color: #E3E6F7;
|
45
|
+
margin: 24px auto 24px 44px;
|
46
|
+
}
|
47
|
+
|
48
|
+
body {
|
49
|
+
font-family: "DejaVu Sans", "Trebuchet MS", sans-serif ;
|
50
|
+
line-height: 28px;
|
51
|
+
}
|
52
|
+
|
53
|
+
#header {
|
54
|
+
padding-top: 24px;
|
55
|
+
padding-bottom: 0px;
|
56
|
+
background-color: #F07818;
|
57
|
+
/* border: solid #888; */
|
58
|
+
/* border-width: 1px 1px 0px 1px; */
|
59
|
+
}
|
60
|
+
|
61
|
+
#links {
|
62
|
+
float: right;
|
63
|
+
}
|
64
|
+
|
65
|
+
#links a {
|
66
|
+
text-decoration: none;
|
67
|
+
color: #A00;
|
68
|
+
}
|
69
|
+
|
70
|
+
.container {
|
71
|
+
/* border: 1px solid #888; */
|
72
|
+
background-color: #FEF9F0;
|
73
|
+
}
|
74
|
+
|
75
|
+
a[href^="http:"], a[href^="mailto:"], a[href^="http:"]:visited,
|
76
|
+
a[href$=".pdf"], a[href$=".doc"], a[href$=".xls"], a[href$=".rss"],
|
77
|
+
a[href$=".rdf"], a[href^="aim:"] {
|
78
|
+
padding:2px 16px 2px 0;
|
79
|
+
}
|
80
|
+
|
81
|
+
h1 {
|
82
|
+
font-weight: normal;
|
83
|
+
font-size: 160%;
|
84
|
+
font-family: "Cyklop", "DejaVu Sans", serif;
|
85
|
+
font-style: italic;
|
86
|
+
color: #D80000;
|
87
|
+
padding-top: 16px;
|
88
|
+
padding-bottom: 16px;
|
89
|
+
background-color: #F0D800;
|
90
|
+
width: 869px;
|
91
|
+
margin-left: -44px;
|
92
|
+
padding-left: 44px;
|
93
|
+
}
|
94
|
+
|
95
|
+
blockquote {
|
96
|
+
font: normal 14/1.5 "DejaVu Sans", sans-serif;
|
97
|
+
width: 297px;
|
98
|
+
margin-top: 6px;
|
99
|
+
margin-left: 528px;
|
100
|
+
padding: 18px 22px 18px 22px;
|
101
|
+
position: absolute;
|
102
|
+
background: #99ff99;
|
103
|
+
-moz-border-radius: 4px;
|
104
|
+
color: #800;
|
105
|
+
}
|
106
|
+
|
107
|
+
blockquote img {
|
108
|
+
margin: 0 auto 12px auto;
|
109
|
+
display: block;
|
110
|
+
}
|
111
|
+
|
112
|
+
blockquote p.author {
|
113
|
+
margin-top: -1em;
|
114
|
+
padding-right: 44px;
|
115
|
+
color: #800;
|
116
|
+
font-style: italic;
|
117
|
+
text-align: right;
|
118
|
+
}
|
119
|
+
|
120
|
+
h2 {
|
121
|
+
font-size: 140%;
|
122
|
+
padding-bottom: 6px;
|
123
|
+
border-bottom: 2px dotted #D80000;
|
124
|
+
color: #D80000;
|
125
|
+
}
|
126
|
+
|
127
|
+
h3 {
|
128
|
+
font-size: 120%;
|
129
|
+
color: #D80000;
|
130
|
+
}
|
131
|
+
|
132
|
+
pre.dawn {
|
133
|
+
margin-left: -50px;
|
134
|
+
padding: 8px 0 8px 39px;
|
135
|
+
border-left: 11px solid rgb(237,0,86);
|
136
|
+
}
|
137
|
+
|
138
|
+
pre code, li pre {
|
139
|
+
margin: 0;
|
140
|
+
padding: 0;
|
141
|
+
border: none;
|
142
|
+
}
|
143
|
+
|
144
|
+
code {
|
145
|
+
margin: 0 2px;
|
146
|
+
padding: 0.06em 0.125em;
|
147
|
+
border: 1px solid #403B33;
|
148
|
+
}
|
149
|
+
|
150
|
+
caption {
|
151
|
+
text-align: right;
|
152
|
+
}
|
153
|
+
|
154
|
+
pre, code {
|
155
|
+
font-family: "DejaVu Sans Mono", PakTypeNaqsh, monospace;
|
156
|
+
}
|
157
|
+
|
158
|
+
/* tabele */
|
159
|
+
|
160
|
+
thead th {
|
161
|
+
background-color: #ADD8C7;
|
162
|
+
}
|
163
|
+
li ul {
|
164
|
+
margin-bottom: 1.5em;
|
165
|
+
}
|
166
|
+
|
167
|
+
.table1 {
|
168
|
+
background-color: #EB7C7C;
|
169
|
+
}
|
170
|
+
|
171
|
+
.table2 {
|
172
|
+
background-color: #ECB39F;
|
173
|
+
}
|
174
|
+
|
175
|
+
/* różne */
|
176
|
+
|
177
|
+
.center {
|
178
|
+
text-align: center;
|
179
|
+
}
|
180
|
+
|
181
|
+
blockquote h1 {
|
182
|
+
font-weight: bold;
|
183
|
+
font-size: 100%;
|
184
|
+
font-family: "DejaVu Sans", "PakTypeNaqsh", serif;
|
185
|
+
color: #D80000;
|
186
|
+
padding-top: 16px;
|
187
|
+
padding-bottom: 16px;
|
188
|
+
background-color: #00A800;
|
189
|
+
color: white;
|
190
|
+
width: 100%;
|
191
|
+
margin-left: -22px;
|
192
|
+
margin-top: -18px;
|
193
|
+
-moz-border-radius: 4px;
|
194
|
+
}
|
Binary file
|
@@ -0,0 +1,121 @@
|
|
1
|
+
pre.dawn .MetaSeparator {
|
2
|
+
font-weight: bold;
|
3
|
+
background-color: #DCDCDC;
|
4
|
+
color: #19356D;
|
5
|
+
}
|
6
|
+
pre.dawn .SupportVariable {
|
7
|
+
color: #234A97;
|
8
|
+
}
|
9
|
+
pre.dawn .Constant {
|
10
|
+
font-weight: bold;
|
11
|
+
color: #811F24;
|
12
|
+
}
|
13
|
+
pre.dawn .EmbeddedSource {
|
14
|
+
background-color: #829AC2;
|
15
|
+
}
|
16
|
+
pre.dawn .StringRegexpConstantCharacterEscape {
|
17
|
+
font-weight: bold;
|
18
|
+
color: #811F24;
|
19
|
+
}
|
20
|
+
pre.dawn .Support {
|
21
|
+
color: #691C97;
|
22
|
+
}
|
23
|
+
pre.dawn .MarkupList {
|
24
|
+
color: #693A17;
|
25
|
+
}
|
26
|
+
pre.dawn .Storage {
|
27
|
+
color: #A71D5D;
|
28
|
+
font-style: italic;
|
29
|
+
}
|
30
|
+
pre.dawn .line-numbers {
|
31
|
+
background-color: #7496CF;
|
32
|
+
color: #000000;
|
33
|
+
}
|
34
|
+
pre.dawn .StringConstant {
|
35
|
+
font-weight: bold;
|
36
|
+
color: #696969;
|
37
|
+
}
|
38
|
+
pre.dawn .MarkupUnderline {
|
39
|
+
text-decoration: underline;
|
40
|
+
color: #080808;
|
41
|
+
}
|
42
|
+
pre.dawn .MarkupHeading {
|
43
|
+
font-weight: bold;
|
44
|
+
color: #19356D;
|
45
|
+
}
|
46
|
+
pre.dawn .SupportConstant {
|
47
|
+
color: #B4371F;
|
48
|
+
}
|
49
|
+
pre.dawn .MarkupQuote {
|
50
|
+
background-color: #C5C5C5;
|
51
|
+
color: #0B6125;
|
52
|
+
font-style: italic;
|
53
|
+
}
|
54
|
+
pre.dawn .StringRegexpSpecial {
|
55
|
+
font-weight: bold;
|
56
|
+
color: #CF5628;
|
57
|
+
}
|
58
|
+
pre.dawn .InvalidIllegal {
|
59
|
+
background-color: #B52A1D;
|
60
|
+
color: #F8F8F8;
|
61
|
+
font-style: italic;
|
62
|
+
}
|
63
|
+
pre.dawn .MarkupDeleted {
|
64
|
+
color: #B52A1D;
|
65
|
+
}
|
66
|
+
pre.dawn .MarkupRaw {
|
67
|
+
background-color: #C5C5C5;
|
68
|
+
color: #234A97;
|
69
|
+
}
|
70
|
+
pre.dawn .SupportFunction {
|
71
|
+
color: #693A17;
|
72
|
+
}
|
73
|
+
pre.dawn .PunctuationSeparator {
|
74
|
+
color: #794938;
|
75
|
+
}
|
76
|
+
pre.dawn .StringRegexp {
|
77
|
+
color: #CF5628;
|
78
|
+
}
|
79
|
+
pre.dawn .StringEmbeddedSource {
|
80
|
+
background-color: #829AC2;
|
81
|
+
color: #080808;
|
82
|
+
}
|
83
|
+
pre.dawn .MarkupLink {
|
84
|
+
color: #234A97;
|
85
|
+
font-style: italic;
|
86
|
+
}
|
87
|
+
pre.dawn .MarkupBold {
|
88
|
+
font-weight: bold;
|
89
|
+
color: #080808;
|
90
|
+
}
|
91
|
+
pre.dawn .StringVariable {
|
92
|
+
color: #234A97;
|
93
|
+
}
|
94
|
+
pre.dawn .String {
|
95
|
+
color: #0B6125;
|
96
|
+
}
|
97
|
+
pre.dawn .Keyword {
|
98
|
+
color: #794938;
|
99
|
+
}
|
100
|
+
pre.dawn {
|
101
|
+
/* background-color: #F5F5F5; */
|
102
|
+
color: #080808;
|
103
|
+
}
|
104
|
+
pre.dawn .MarkupItalic {
|
105
|
+
color: #080808;
|
106
|
+
font-style: italic;
|
107
|
+
}
|
108
|
+
pre.dawn .InvalidDeprecated {
|
109
|
+
font-weight: bold;
|
110
|
+
color: #B52A1D;
|
111
|
+
}
|
112
|
+
pre.dawn .Variable {
|
113
|
+
color: #234A97;
|
114
|
+
}
|
115
|
+
pre.dawn .Entity {
|
116
|
+
color: #BF4F24;
|
117
|
+
}
|
118
|
+
pre.dawn .Comment {
|
119
|
+
color: #5A525F;
|
120
|
+
font-style: italic;
|
121
|
+
}
|
data/lib/sp-tutorial.rb
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
# Zobacz przykład: http://gist.github.com/38605
|
4
|
+
|
5
|
+
gem 'rdiscount'
|
6
|
+
gem 'sinatra'
|
7
|
+
gem 'wbzyl-sinatra-rdiscount'
|
8
|
+
|
9
|
+
gem 'emk-sinatra-url-for'
|
10
|
+
gem 'wbzyl-sinatra-static-assets'
|
11
|
+
|
12
|
+
require 'rdiscount'
|
13
|
+
require 'sinatra/base'
|
14
|
+
require 'sinatra/rdiscount'
|
15
|
+
|
16
|
+
require 'sinatra/url_for'
|
17
|
+
require 'sinatra/static_assets'
|
18
|
+
|
19
|
+
module WB
|
20
|
+
class SPTutorial < Sinatra::Base
|
21
|
+
helpers Sinatra::UrlForHelper
|
22
|
+
helpers Sinatra::StaticAssets
|
23
|
+
|
24
|
+
# disable overriding public and views dirs
|
25
|
+
set :app_file, __FILE__
|
26
|
+
set :static, true
|
27
|
+
|
28
|
+
# the middleware stack can be used internally as well. I'm using it for
|
29
|
+
# sessions, logging, and methodoverride. This lets us move stuff out of
|
30
|
+
# Sinatra if it's better handled by a middleware component.
|
31
|
+
set :logging, true # use Rack::CommonLogger
|
32
|
+
|
33
|
+
helpers Sinatra::RDiscount
|
34
|
+
|
35
|
+
# configure blocks:
|
36
|
+
# configure :production do
|
37
|
+
# end
|
38
|
+
|
39
|
+
#before do
|
40
|
+
# mime :sql, 'text/plain; charset="UTF-8"' # when served by Sinatra itself
|
41
|
+
#end
|
42
|
+
|
43
|
+
# helper methods
|
44
|
+
#attr_reader :title
|
45
|
+
|
46
|
+
def page_title
|
47
|
+
@title || ""
|
48
|
+
end
|
49
|
+
|
50
|
+
# def title=(name)... does not work, bug?
|
51
|
+
def title(name)
|
52
|
+
@title = " | #{name}"
|
53
|
+
end
|
54
|
+
|
55
|
+
get '/' do
|
56
|
+
rdiscount :main
|
57
|
+
end
|
58
|
+
|
59
|
+
get '/:section' do
|
60
|
+
rdiscount :"#{params[:section]}"
|
61
|
+
end
|
62
|
+
|
63
|
+
# does not work with sub-uri; bug?
|
64
|
+
# get '/labs/:section' do
|
65
|
+
# rdiscount "labs/#{params[:section]}".to_sym
|
66
|
+
# end
|
67
|
+
|
68
|
+
error do
|
69
|
+
e = request.env['sinatra.error']
|
70
|
+
Kernel.puts e.backtrace.join("\n")
|
71
|
+
'Application error'
|
72
|
+
end
|
73
|
+
|
74
|
+
# each Sinatra::Base subclass has its own private middleware stack:
|
75
|
+
# use Rack::Lint
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
@@ -0,0 +1,154 @@
|
|
1
|
+
#### {% title "Ćwiczenia" %}
|
2
|
+
|
3
|
+
# Ćwiczenia
|
4
|
+
|
5
|
+
<blockquote>
|
6
|
+
{%= image_tag "/images/albert_einstein.jpg", :alt => "[Albert Einstein]" %}
|
7
|
+
<p>
|
8
|
+
In the interests of clarity, it seemed necessary to constantly
|
9
|
+
remind myself to pay not the slightest attention to the elegance of
|
10
|
+
the presentation; I adhered conscientiously to the rule of the
|
11
|
+
brilliant theoretician, Ludwig Boltzmann, to leave elegance to
|
12
|
+
tailors and shoemakers.
|
13
|
+
</p>
|
14
|
+
<p class="author">— Albert Einstein</p>
|
15
|
+
</blockquote>
|
16
|
+
|
17
|
+
Rozwiązania ćwiczeń należy umieścić na swoim blogu.
|
18
|
+
Na przykład, rozwiązania ćwiczeń LaTeX-owych, powinny
|
19
|
+
być dostępne pod jakimś takim URL:
|
20
|
+
|
21
|
+
http://sigma.ug.edu.pl/~wbzyl/2009-11-22-latex.html
|
22
|
+
|
23
|
+
(Oczywiście, zamiast *wbzyl* trzeba wstawić swój login,
|
24
|
+
no i data będzie inna.)
|
25
|
+
|
26
|
+
Kod należy umieścić w repozytorium git. Na przykład
|
27
|
+
|
28
|
+
cd ~/tmp
|
29
|
+
mkdir latex
|
30
|
+
cd latex
|
31
|
+
touch README.md
|
32
|
+
git init
|
33
|
+
... dodajemy pliki z kodem/rozwiązaniem ...
|
34
|
+
git add .
|
35
|
+
git commit -m "gotowe"
|
36
|
+
cd ..
|
37
|
+
git clone --bare latex ~/public_git/latex.git
|
38
|
+
rm -rf ~/tmp/latex
|
39
|
+
|
40
|
+
## Bash
|
41
|
+
|
42
|
+
Zadania do wykonania w laboratoriach:
|
43
|
+
|
44
|
+
* {%= link_to "Laboratorium 1", "/labs01" %} (polecenia powłoki)
|
45
|
+
* {%= link_to "Laboratorium 2", "/labs02" %} (kontynuacja)
|
46
|
+
* {%= link_to "Laboratorium 3", "/labs03" %} (— " —)
|
47
|
+
* {%= link_to "Laboratorium 4", "/labs04" %} (— " —)
|
48
|
+
* {%= link_to "Laboratorium 5, 6", "/doc/ex/sp_lab03_zad.odt" %} (polecenia *find*, *grep*)
|
49
|
+
* {%= link_to "Laboratorium 7, 8, 9, 10", "/doc/ex/sp_lab04_zad.odt" %} (skrypty)
|
50
|
+
* LaTeX, Git: Laboratoria 11, 12, 13
|
51
|
+
* Zaliczenia: Laboratoria 14, 15
|
52
|
+
|
53
|
+
|
54
|
+
## Edytory
|
55
|
+
|
56
|
+
2\. W *jBlogu* jest kilka napisów, które należy wymienić,
|
57
|
+
na przykład, w pliku *index.html*:
|
58
|
+
|
59
|
+
title: WB_Blog
|
60
|
+
|
61
|
+
w pliku *_layouts/default.html*:
|
62
|
+
|
63
|
+
<meta name="author" content="Włodek Bzyl" />
|
64
|
+
|
65
|
+
Znaleźć wszystkie takie napisy.
|
66
|
+
Napisać prosty skrypt korzystający z programu *sed*
|
67
|
+
wymieniający te napisy.
|
68
|
+
|
69
|
+
Logo przygotowałem w programie *inkscape*.
|
70
|
+
Plik *images/logo.svg* w formacie *SVG* zawiera tekst *WB@jBlog*,
|
71
|
+
który należy wymienić.
|
72
|
+
|
73
|
+
<blockquote>
|
74
|
+
{%= image_tag "/images/biuletyn-snall.jpg", :alt => "[]" %}
|
75
|
+
<p>
|
76
|
+
W okresie międzywojennym font Cyklop był używany
|
77
|
+
w tytulariach gazetowych i drukach akcydensowych.
|
78
|
+
</p>
|
79
|
+
</blockquote>
|
80
|
+
|
81
|
+
W pliku *images/logo.svg* literki składane są fontem *OTF*
|
82
|
+
{%= link_to "Cyklop", "/doc/Cyklop-otf-0_91.zip" %}.
|
83
|
+
Zainstalować ten font lokalnie i korzystając z programu
|
84
|
+
*inkscape* zmienić tekst.
|
85
|
+
Zapisać zmiany i wyeksportować obrazek
|
86
|
+
*images/logo.png* w formacie *PNG*.
|
87
|
+
|
88
|
+
2\. Przygotować prostą stronę www ze ściągą do wyrażeń regularnych
|
89
|
+
rozpoznawanych przez program *egrep*.
|
90
|
+
Ściąga powinna być dostępna pod takim URL:
|
91
|
+
|
92
|
+
<pre>http://sigma.inf.ug.edu.pl/~TWÓJ_LOGIN/egrep.html
|
93
|
+
</pre>
|
94
|
+
|
95
|
+
|
96
|
+
## Git
|
97
|
+
|
98
|
+
1\. W zespołach 3–4 osobowych przygotować prosty projekt.
|
99
|
+
Popracować wspólnie nad projektem. Na koniec
|
100
|
+
zajęć przeanalizować kto co zrobił.
|
101
|
+
|
102
|
+
2\. Napisać historyjkę pokazującą jak można
|
103
|
+
wyszukać *commit* w którym po raz pierwszy
|
104
|
+
pojawiła się określona funkcja.
|
105
|
+
Umieścić historyjkę na jBlogu pod *git-grep*.
|
106
|
+
|
107
|
+
3\. Napisać historyjkę ilustrującą użycie polecenia
|
108
|
+
`git cherry-pick`.
|
109
|
+
Umieścić historyjkę na jBlogu pod *git-cherry-pick*.
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
## XeLaTeX
|
114
|
+
|
115
|
+
1\. Zapoznajemy się z programem *TeXworks*:
|
116
|
+
|
117
|
+
* wczytujemy gotowy szablon: File → New from Template
|
118
|
+
* włączamy outlines: Window → Show → Tags
|
119
|
+
* opanowujemy klika skrótów klawiszowych:
|
120
|
+
* kompilacja: ctrl+t
|
121
|
+
* …
|
122
|
+
|
123
|
+
2\. Przygotować po jednym dokumencie (1–2 strony wydruku)
|
124
|
+
pokazującym podstawowe możliwości pakietu:
|
125
|
+
|
126
|
+
* *graphicx* (dokumentacja *epslatex.pdf*)
|
127
|
+
* *floatlft* albo *photo* (pływające wstawki)
|
128
|
+
* *geometry*
|
129
|
+
|
130
|
+
3\. Tekst zadań do wykonania w laboratorium, na przykład
|
131
|
+
{%= link_to "Laboratorium 2", "/doc/ex/sp_lab02_zad.odt" %},
|
132
|
+
to lista wypunktowana (otoczenia *enumerate*, *itemize*)
|
133
|
+
oraz tytularia (polecenia *section*, *paragraph*).
|
134
|
+
Przygotować szablon oraz skróty klawiszowe ułatwiające
|
135
|
+
wpisywanie takich tekstów. Przepisać jeden ze zestawów
|
136
|
+
zadań korzystając z przygotowanego szablonu oraz ze
|
137
|
+
skrótów klawiszowych. Opisać to co zostało zrobione
|
138
|
+
na swoim jBlogu.
|
139
|
+
|
140
|
+
Wskazówka do 3. Zajrzyj na strony Wiki:
|
141
|
+
[Documentation of the code completion feature] [texworks code completion],
|
142
|
+
[Some tips for using TeXworks] [texworks tips].
|
143
|
+
|
144
|
+
|
145
|
+
## Skrypty powłoki
|
146
|
+
|
147
|
+
1\. Poprawić skrypt *makedict.sh* tak, aby rozpoznawał
|
148
|
+
polskie litery.
|
149
|
+
|
150
|
+
|
151
|
+
#### Linki
|
152
|
+
|
153
|
+
[texworks tips]: http://code.google.com/p/texworks/wiki/TipsAndTricks "Tips and Tricks"
|
154
|
+
[texworks code completion]: http://code.google.com/p/texworks/wiki/CodeCompletion "Code completion"
|