tag:blogger.com,1999:blog-11254886964558561482024-02-21T05:27:31.308+01:00Ciekawe rozwiązania, techniki, zasobyMarcin MilewskiUnknownnoreply@blogger.comBlogger7125tag:blogger.com,1999:blog-1125488696455856148.post-79992582501235172052011-09-17T08:00:00.000+02:002011-09-17T08:00:01.867+02:00Przykładowy .gitconfig<br />
Plik <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">.gitconfig</span> należy zapisać w katalogu domowym (zwykle <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">/home/USERNAME</span>).<br />
<pre>
[user]
name = Marcin Milewski
email = my-secret-email@gmail.com
[alias]
co = checkout
st = status
br = branch
w = whatchanged
[color]
ui = auto
[color "branch"]
current = yellow reverse
local = yellow
remote = green
[color "diff"]
meta = magenta bold
frag = magenta bold
old = red bold
new = green bold
[color "status"]
added = yellow
changed = green
untracked = cyan
</pre>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1125488696455856148.post-33218457383716153982011-06-17T08:00:00.030+02:002011-06-28T21:19:41.480+02:00SCons i kompilacja kodu w standardzie C++0x<span class="Apple-style-span" style="font-size: large;">Krótko o SConsie</span><br />
<a href="http://www.scons.org/">SCons</a> to ciekawe narzędzie do kompilacji kodu C++, Javy czy LaTeX'a. Autorzy chwalą się pisząc nieskromnie: next-generation build tool.<br />
Kompilacja prostego programu w C++ wygląda następująco:<br />
<ol><li>Tworzymy plik SConstruct</li>
<li>Uruchamiamy polecenie <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">scons</span></li>
</ol><pre># plik: SConstruct
Program('game', 'main.cpp') # pierwszy argument można pominąć
</pre>Jest to równoważne uruchomieniu następujących poleceń:<br />
<pre>g++ -o main.o -c main.cpp
g++ -o game main.o
</pre>Łatwo możemy także tworzyć biblioteki:<br />
<pre># plik: SConstruct
SharedLibrary('superlib', 'superlib.cpp')
</pre>Jest to równoważne:<br />
<pre>g++ -o superlib.os -c -fPIC superlib.cpp
g++ -o libsuperlib.so -shared superlib.os
</pre>Widzimy, że SCons zadbał o odpowiednie flagi oraz prefix <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">lib-</span> dla nazwy pliku wynikowego.<br />
<br />
Ręczne tworzenie bardziej skomplikowanych poleceń może wyglądać np. tak:<br />
<pre>env = Environment()
env.MergeFlags("-lSDL -lSDL_mixer -lSDL_image -lGL -lGLU")
env.MergeFlags("-g -ggdb")
env.MergeFlags("-W -Wall -Wextra -Woverloaded-virtual -pedantic")
env.Program("game", Glob("*.cpp") + Glob("editor/*.cpp"))
</pre>Jeżeli nie chcemy wpisywać minusów przed nazwą bibliotek (co prawdopodobnie jest także zachowaniem przeciw wieloplatformowości pliku SConstruct), możemy napisać tak:<br />
<pre>env.Append(LIBS = Split('SDL SDL_mixer SDL_image GL GLU'))
</pre>Dość ciekawy jest fakt, że SCons <a href="http://www.scons.org/doc/HTML/scons-user/c1809.html">sam rozpoznaje</a>, które flagi powinny być gdzie użyte. Wpisując<br />
<pre>env.MergeFlags("-I /src/include/")
env.MergeFlags("-L /src/lib/")
</pre>pierwsza flaga zostanie użyta podczas kompilacji, a druga dopiero podczas łączenia (konsolidacji).<br />
<br />
<span class="Apple-style-span" style="font-size: large;">Konkretnie o problemie</span><br />
<br />
Wydaje się, że odkryliśmy super narzędzie i teraz kompilacja już będzie marzeniem. Rzeczywiście, w prostych przypadkach jest bardzo wygodne. Sprawa trochę się skomplikowała, gdy chciałem dodać flagę zmieniającą używany przez kompilator standard na C++0x.<br />
<br />
Po wpisaniu<br />
<pre>env.MergeFlags('-std=c++0x')
</pre>SCons zachowywał się jakbym niczego nie dopisał! Trochę zaskakujące może być, że komendę<br />
<pre>env.MergeFlags('-fmessage-length=70')
</pre>wykonał poprawnie (odpowiednia flaga pojawiła się na wyjściu kompilatora).<br />
<br />
<b>Rozwiązanie 1</b><br />
Dodać flagę w definicji środowiska:<br />
<pre>env = Environment(CPPFLAGS = ['-std=c++0x'])
</pre><br />
<b>Rozwiązanie 2</b><br />
<br />
Zrezygnować z <i>MergeFlags</i> na rzecz <i>Append</i>:<br />
<pre>env.Append(CPPFLAGS = '-std=c++0x')
</pre><br />
<b>Kompletny SConstruct</b> może wyglądać np. tak:<br />
<pre>EnsurePythonVersion(2, 6)
EnsureSConsVersion(2, 0)
env = Environment()
env.Append(CPPPATH = ['/data/include/boost/', '/usr/include/', ])
env.Append(LIBPATH = [])
env.Append(CPPDEFINES = {'DEBUG_BUILD' : '1'})
env.Append(CPPFLAGS = Split('-W -Wall -Wextra -Woverloaded-virtual -pedantic'))
env.Append(CPPFLAGS = Split('-std=c++0x -g -ggdb'))
env.Append(LIBS = Split('SDL SDL_mixer SDL_image GL GLU'))
env.Program("game", Glob("*.cpp") + Glob("editor/*.cpp") + Glob("gui/*.cpp"))
</pre>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1125488696455856148.post-65555791980546906722011-03-05T08:00:00.010+01:002011-03-05T10:55:21.767+01:00Nieczytelne znaki w Emacsie, czyli krzywe wygładzanie w Ubuntu 10.10Jeżeli na czcionce Emacsie pojawiają Ci się dziwne znaczki, to być może spotkało Cię to samo co mnie.<br />
<div>Problem jest o tyle dziwny, że objawia się tylko w Emacsie, w pozostałych miejscach systemu wszystko jest ok. Ponadto działa poprawnie w jeśli Emacsa uruchomimy w konsoli ( <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">emacs -nw</span> ). Po obejrzeniu poniższego screena chyba nikt nie ma wątpliwości o co chodzi.</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyKKFvrydeCl-2mv6K-6npGja3tUnCYk1fNeotbo7r_rv1okm0PGv-O8zHu-W7l4uB2XcXYFUBU5nrAntu2wPiP_E8R-TqytKsOJVnEbL8HC3tA43EMh8HlX6YdPep0ToTzzz4CBZdYU0/s1600/problem.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyKKFvrydeCl-2mv6K-6npGja3tUnCYk1fNeotbo7r_rv1okm0PGv-O8zHu-W7l4uB2XcXYFUBU5nrAntu2wPiP_E8R-TqytKsOJVnEbL8HC3tA43EMh8HlX6YdPep0ToTzzz4CBZdYU0/s1600/problem.png" /></a></div><div><br />
</div><div>Jak widać nie dotyka to wszystkich liter (przynajmniej tak na pierwszy rzut oka wygląda). Ale jeżeli "pomażemy" innym oknem po Emacsie to problem a to zniknie, a to znów się pojawi (ale w trochę innej formie)...</div><div><br />
</div><div>Sterownik karty graficznej!, ktoś powie. Gdyby nie fakt, że to zintegrowany Intel, do którego sterownika jakoś specjalnie się nie doinstalowuje, to coś by w tym było.</div><div><br />
</div><div>Odpaliłem niewiele używaną instalację tego samegu systemu na Virtualboksie i... działa aż miło. No dobra, to pewnie coś z ustawieniami wyglądu. Pozmieniałem dekoracje, poklikałem tu i ówdzie, znalazłem!<br />
<br />
<br />
<div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">Odpowiedź znajduje się w System => Preferences => Appearance => Font</div></div><div></div></div><div><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPsto-1DjgxIHE6cn6pJeK3wtvk7Dg0h5HyOdYx4nVXLGe4ibhIY8u-0PIYSwtUYkbY2sc7Tz0i1k67bGcZ8NChyLcBlTieRjUMLnPW2E9j__X1G67OR4PZVqgAhbkq4pCeoSLMfthKf8/s1600/appearance.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPsto-1DjgxIHE6cn6pJeK3wtvk7Dg0h5HyOdYx4nVXLGe4ibhIY8u-0PIYSwtUYkbY2sc7Tz0i1k67bGcZ8NChyLcBlTieRjUMLnPW2E9j__X1G67OR4PZVqgAhbkq4pCeoSLMfthKf8/s1600/appearance.png" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-YFWD3XKl7nQEp5RccPm8uMvch5coCKTdQKZRMtm_0G5opZCY_ty8MsL07qC5YrS9Epoue_bwljP2JGs9kwSMICxDm1HGxHYJ0o5i9-DE5LwWlMjMSViuGhTmpOlkiuQHbRpbifCnE1U/s1600/details.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-YFWD3XKl7nQEp5RccPm8uMvch5coCKTdQKZRMtm_0G5opZCY_ty8MsL07qC5YrS9Epoue_bwljP2JGs9kwSMICxDm1HGxHYJ0o5i9-DE5LwWlMjMSViuGhTmpOlkiuQHbRpbifCnE1U/s1600/details.png" /></a></div><div><br />
</div><div>i nazywa się "Subpixel smoothing". Zmieniłem na "Best shapes", a w szczegółach przełączyłem Hinting na Slight. Czcionki wyglądają niemal identycznie, no z wyjątkiem Emacsa, gdzie teraz wszystko jest jak być powinno :)</div><div><br />
</div><div><br />
</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1125488696455856148.post-57473209482579035512011-01-16T08:00:00.003+01:002011-06-16T18:49:18.149+02:00Kolorowanie kolorów w CSSie z EmacsemA Ty jak sprawdzasz czy użyte w arkuszu stylów kolory są ładne?<br />
Używając Emacsa możesz mieć to od razu podczas definiowania koloru!<br />
<br />
Przed:<br />
<div class="separator" style="clear: both; text-align: center;"></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhr_0DtkDIrVTv0M8af7z3yFZyHB8pekiCjvDZi5-8Llzr566CRUCOpY-oJdHuzbTUwMERl5Jqp1xOv2iQXjLIhReUikRF1piFKgHxszJ0DcfSSBQDWmGF-7Iye6OmR00c2o7mdaRnSUME/s1600/css-no-color.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhr_0DtkDIrVTv0M8af7z3yFZyHB8pekiCjvDZi5-8Llzr566CRUCOpY-oJdHuzbTUwMERl5Jqp1xOv2iQXjLIhReUikRF1piFKgHxszJ0DcfSSBQDWmGF-7Iye6OmR00c2o7mdaRnSUME/s1600/css-no-color.png" /></a></div><br />
Po:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifJzDlz0L1e_xv7aC79fTQpuz1J0RLsYgLwDg52jXUxfEoyjdocBxs_fQwAUdH99unkdZh9Z6NQHNKzHFqp0M8f3iESSxVe3N1Dzzb5eehi_4JlO4D9o8fuESNuFDLnhJffaEfJ8S1XEI/s1600/css-color.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifJzDlz0L1e_xv7aC79fTQpuz1J0RLsYgLwDg52jXUxfEoyjdocBxs_fQwAUdH99unkdZh9Z6NQHNKzHFqp0M8f3iESSxVe3N1Dzzb5eehi_4JlO4D9o8fuESNuFDLnhJffaEfJ8S1XEI/s1600/css-color.png" /></a></div><br />
Odpowiedź na pytanie jak to zrobić znajduje się na stronie <a href="http://xahlee.org/emacs/emacs_html.html">http://xahlee.org/emacs/emacs_html.html</a><br />
Poniżej kod, który można wkleić do <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">.emacs</span>a i cieszyć się kolorowymi definicjami kolorów.<br />
<br />
<pre>;; Kolorowanie kolorów w CSSie
(defvar hexcolour-keywords
'(("#[abcdef[:digit:]]\\{6\\}"
(0
(put-text-property
(match-beginning 0) (match-end 0) 'face (list :background
(match-string-no-properties 0)))))))
(defun hexcolour-add-to-font-lock () (font-lock-add-keywords nil hexcolour-keywords))
(add-hook 'css-mode-hook 'hexcolour-add-to-font-lock)
</pre>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-1125488696455856148.post-20382966769902311662010-12-01T08:00:00.017+01:002010-12-01T13:34:07.824+01:00Co kryją labolatoria Gmaila?Czy zdarzyło Ci się wysłać maila przed ukończeniem jego edycji? Trochę irytujące, ale posiadacze kont u Googla mają na to prosty sposób -- wykorzystać wtyczkę <i>undo send</i> dostępną w laboratorium Gmaila.<br />
<br />
Jak się tam dostać? Po zalogowaniu do Gmaila należy szukać klucza:<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizg6Hul_9Py9oK-KedM9-15dRtFZ-8NZdKHlMmMES-tTQcTIN_6-fHhzo1OV4RkEbIZdHEV4b6HJntTFxgqiYoDXik96vM7BYCGt58qWh3mCgONk4oT2IHQjkFO_hWpUuP8Ns4iPxEj9E/s1600/labs_bar_icon.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizg6Hul_9Py9oK-KedM9-15dRtFZ-8NZdKHlMmMES-tTQcTIN_6-fHhzo1OV4RkEbIZdHEV4b6HJntTFxgqiYoDXik96vM7BYCGt58qWh3mCgONk4oT2IHQjkFO_hWpUuP8Ns4iPxEj9E/s1600/labs_bar_icon.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Klucz do laboratorium</td></tr>
</tbody></table>W środku jest wiele ciekawych wtyczek. Poniżej wymienię moim zdaniem najciekawsze.<br />
<br />
<b>Undo send</b><br />
Po wysłaniu wiadomości masz kilka sekund, żeby odwysłać maila. Istnieje możliwość konfiguracji liczby sekund (5, 10, 20 lub 30) w ustawieniach ogólnych (Settings->General).<br />
<br />
<b>Default 'Reply to all' </b><br />
Przydatne, żeby nikogo niechcący nie wykluczyć z rozmowy.<br />
<br />
<b>Inserting images </b><br />
Od teraz można wstawiać obrazki w treść maila.<br />
<br />
<b>Quote selected text</b><br />
Cytowanie zaznaczonego kawałka wiadomości. Irytujące jeśli przypadkiem zaznaczysz kawałek tekstu i klikniesz <i>odpowiedz</i> -- trzeba odrzucić wiadomość, odznaczyć i jeszcze raz odpowiedzieć, ughh.<br />
<br />
<b>Signature tweaks</b><br />
Gmail z jakiegoś powodu rozpoczyna odpowiedź przed otrzymaną wiadomością. Z jednej strony najświeższa wiadomość jest zawsze na wierzchu. Z drugiej natomiast przeczytanie historii konwersacji przyprawia o ból głowy. Tak czy inaczej, dzięki<i> Signature tweaks</i> podpis jest bezpośrednio pod naszą wiadomością, a nie pod całą konwersacją.<br />
<br />
<b>Coś dla poglądaczy</b><br />
Innymi ciekawymi wtyczkami są:<br />
<ul><li>Google Docs previews in mail</li>
<li>Google Maps previews in mail</li>
<li>Picasa previews in mail</li>
<li>Flickr previews in mail</li>
</ul><div>Umożliwiają pogląd załączników oraz linków z treści wiadomości bezpośrednio w GMailu. Korzystam bardzo często. Polecam.<br />
<br />
</div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLgr-GKnYYL1ssY2z5Uy_mZCy9AMO7aNIshq9SLBdIP5BDONooLCoABrl2-9UOu-uKQmwGb8V853fLK3Opb9DE0YJFJmIJcLF2pIJjslPkLy9xuiydyBerP5qxG5vc0NCHWgNMiQYaDvg/s1600/yt_preview.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLgr-GKnYYL1ssY2z5Uy_mZCy9AMO7aNIshq9SLBdIP5BDONooLCoABrl2-9UOu-uKQmwGb8V853fLK3Opb9DE0YJFJmIJcLF2pIJjslPkLy9xuiydyBerP5qxG5vc0NCHWgNMiQYaDvg/s400/yt_preview.png" width="400" /></a></div><div><br />
</div><br />
Wystrzegałbym się natomiast <i>Quick Links.</i> Wtyczka całkiem fajna, bo umożliwia szukanie na skróty (nie trzeba za każdym razem wypełniać pola search jeśli często wyszukujemy jednej frazy). Niestety nie opanowałem sztuki usuwania linków z tego gadżetu. Ktoś wie jak?Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1125488696455856148.post-50200664507650553772010-06-12T08:00:00.004+02:002010-06-12T08:00:02.289+02:00Weź styl w swoje ręceNiewielu wie do czego jest plik <b>userContent.css</b>, a jeszcze mniej go używa. Plik ten pozwala zdefiniować użytkownikowi własny styl CSS dla treści wyświetlanej w oknie przeglądarki Firefox. Choć wiedziałem o nim od dawna, to nigdy nic do tego pliku nie wpisałem. Po co miałbym zmieniać kolor odnośnika? Mógłbym zmienić nawet cały układ dowolnej strony, ale czy nie szkoda na to czasu?<br />
<br />
Jak się okazuje, nawet możliwość podmiany CSS'a może się kiedyś przydać. Skorzystałem z tej możliwości w kilku sytuacjach. Zanim konkrety, napiszę, że tego pliku należy szukać w katalogu <span style="font-family: "Courier New",Courier,monospace;">~/.mozilla/firefox/sa87d6fas.default/</span><br />
<br />
<b>1. Ciekawe są tylko newsy.</b><br />
Pierwsza dotyczy serwisu <a href="http://www.dobreprogramy.pl/">dobreprogramy.pl</a>. Strona jak wygląda każdy widzi. Sęk w tym, że jedyną rzeczą, która mnie na niej ciekawi, są newsy. Mógłbym skorzystać z kanałów RSS, ale jakoś do tej pory nie zainstalowałem jeszcze żadnej aplikacji do tego celu. Ale nie o technologię się rozchodzi.<br />
<br />
Korzystając ze wspomnianego pliku <b>userContent.css</b> i znajomości CSS. Wyrzuciłem niepotrzebne elementy strony, czyniąc ją zdecydowanie bardziej użyteczną. Oto zmiany, których dokonałem:<br />
Serwis bez zmian: <br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGkFTkJk5PNh4zYLj_5yFRVy04DI0FUlFYArwPZsaqnHUFwymVleXqCbuoB9fjWIZ65-bhkdhCz680UauXLxivp1TEXk94p0LRuVZiji4qwuC3YztFHZZ5SqKj6XKY9sgQ9tjkGcU96RA/s1600/dobreProgramy-przed.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGkFTkJk5PNh4zYLj_5yFRVy04DI0FUlFYArwPZsaqnHUFwymVleXqCbuoB9fjWIZ65-bhkdhCz680UauXLxivp1TEXk94p0LRuVZiji4qwuC3YztFHZZ5SqKj6XKY9sgQ9tjkGcU96RA/s320/dobreProgramy-przed.png" width="320" /></a></div>Serwis ze zmienionymi stylami:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVZnp9IBSnzarJEjXyfTMK1d4MNFJE42QdCuD46DyZVCRElw9fpPfw2Lbeu5wS9zIJoCR_KltvvCNTlZ_7jQPfCqOOrhI9kvvNO4irXMHDiZX8mxgj_Vp9_n9WswE0-UtcFcOcpHruPZs/s1600/dobreProgramy-po.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="214" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVZnp9IBSnzarJEjXyfTMK1d4MNFJE42QdCuD46DyZVCRElw9fpPfw2Lbeu5wS9zIJoCR_KltvvCNTlZ_7jQPfCqOOrhI9kvvNO4irXMHDiZX8mxgj_Vp9_n9WswE0-UtcFcOcpHruPZs/s320/dobreProgramy-po.png" width="320" /></a></div>Efekt można oglądać na stronie <a href="http://www.dobreprogramy.pl/Aktualnosci,1.html">dobreprogramy.pl/Aktualności</a><br />
Pozostaje tylko pokazać zawartość userContent.css:<br />
<blockquote>@-moz-document url-prefix(http://www.dobreprogramy.pl/Aktualnosci) {<br />
div#bigColumn, div#secondColumn, div.toplevelLimiter, #header, #footer {<br />
display: none !important; /* najistotniejszy element */<br />
}<br />
<br />
#content .third {<br />
width: 90% !important;<br />
margin:0 !important;<br />
padding: 50px !important;<br />
}<br />
<br />
.main {<br />
background: white !important;<br />
margin: none !important;<br />
}<br />
<br />
div.pagination a {<br />
font-size: 20px !important;<br />
margin: 1px !important;<br />
padding: 15px !important;<br />
border: 1px solid gray !important;<br />
background: lightGoldenRodYellow !important;<br />
}<br />
<br />
div.pagination a.active {<br />
background: chocolate !important;<br />
color: black !important;<br />
}<br />
}</blockquote><br />
<b>2. Zbyt małe odnośniki są irytujące</b>.<br />
Po chwili użytkowania tego serwisu zaczyna doskwierać dość mała czcionka (szczególnie w paginacji), co utrudnia interakcję - np. trafienie w link.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBB90GQUGNe2V2uYxPca_QVadFeKJS-KGhSN2vjAc93DYSz7YJRjwaZEIe1esxiTGncRyg2G55QfM5aDy8cQcxGOYhgIl1sLVYbjNKHI9vr83L88fu8em29_Hop1PUt1ffQiY80YF012k/s1600/dobreProgramy-paginacja-przed.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBB90GQUGNe2V2uYxPca_QVadFeKJS-KGhSN2vjAc93DYSz7YJRjwaZEIe1esxiTGncRyg2G55QfM5aDy8cQcxGOYhgIl1sLVYbjNKHI9vr83L88fu8em29_Hop1PUt1ffQiY80YF012k/s320/dobreProgramy-paginacja-przed.png" /></a></div>Ale i na to znalazł się sposób (screen jest w oryginalnym rozmiarze :P ):<br />
<div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIR6WFShNshHcf4qyOtD4-S2RnOvgA7HCtHiwVbOeiybjWJLNeWBQ81U2j0C9SoWOHGKkDrS4IaXWLmSFB5yXDeD8l52pVUsANdJIhqO3_n9HJN-RMi1ugg93zVcQrkhdRjauZ9lmJD3g/s1600/dobreProgramy-paginacja-po.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIR6WFShNshHcf4qyOtD4-S2RnOvgA7HCtHiwVbOeiybjWJLNeWBQ81U2j0C9SoWOHGKkDrS4IaXWLmSFB5yXDeD8l52pVUsANdJIhqO3_n9HJN-RMi1ugg93zVcQrkhdRjauZ9lmJD3g/s320/dobreProgramy-paginacja-po.png" /></a></div>Istnieje jeszcze jedna możliwość "powiększenia" linka. Skorzystałem z tego przeglądając stronę z przedmiotu <a href="http://www.ii.uni.wroc.pl/%7Ejma/kurs.phtml">Języki formalne...</a>. Odnośniki o jakże długiej nazwie "Tu" z pewnością nie pomagają w wybraniu tego odsyłacza. Nic prostszego!<br />
<br />
<b>3. Niechciane elementy po raz kolejny.</b><br />
<b></b><br />
Na stronie Formalnych jest jeszcze jeden element, który mi przeszkadzał -- duże zdjęcie. Samo w sobie jest bardzo ładne, ale żeby ponad 2 MB na głównej stronie? Usunąłem :) A link zmieniłem z "Tu" na "Tu jest aktualny ranking". Strona wygląda może nieco dziwnie, ale za to mogę łatwo wykonywać pewne akcje.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKL17mFT4nRGAp8BdvdM7p6J13D730Cbg-6vAoWSBnz15FcO7ynt7sbXMAxqnUZ1X1TJUnZbeXpaqFFotqvYcMr8aCyv3bgCNooG2buRtwhDv64gVSchGXsEmk2c-6e32bTHAwnL7llJ4/s1600/jfizo-tu.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="60" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKL17mFT4nRGAp8BdvdM7p6J13D730Cbg-6vAoWSBnz15FcO7ynt7sbXMAxqnUZ1X1TJUnZbeXpaqFFotqvYcMr8aCyv3bgCNooG2buRtwhDv64gVSchGXsEmk2c-6e32bTHAwnL7llJ4/s400/jfizo-tu.png" width="400" /></a></div><br />
<blockquote>@-moz-document url-prefix(http://www.ii.uni.wroc.pl/~jma/kurs.phtml) {<br />
h1,h2,h3,h4,h5,hr {<br />
font-size: 10pt;<br />
padding:0;<br />
margin:0;<br />
}<br />
a[href$="pod_gorke.jpg"] img { /* ends with pod_gorke.jpg */<br />
display: none;<br />
}<br />
table td:first-child { /* usuń komórkę z obrazkiem */<br />
display:none;<br />
}<br />
a[href*="ranking"]:after { /* contains 'ranking' */<br />
content:'jest aktualny ranking';<br />
}<br />
a {<br />
background-color: lightblue;<br />
border: 1px solid blue;<br />
padding: .5em 1em .5em 1em;<br />
text-decoration: none !important;<br />
}<br />
}</blockquote><br />
<b>Podsumowanie</b><br />
Możliwość definiowania własnego stylu dla strony choć nie jest często wykorzystywana, to jednak czasem potrafi ułatwić życie. Dlatego warto o tej możliwości pamiętać i z niej skorzystać w odpowiednim momencie.<br />
<br />
Oprócz pliku <a href="http://www.google.pl/search?q=userContent.css">userContent.css</a> jest także plik, w którym możemy manipulować wyglądem całego okna - to <a href="http://www.google.pl/search?q=userchrome.css">userChrome.css</a>.<br />
<b><br />
</b>Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-1125488696455856148.post-74218757751439473132010-05-22T08:00:00.006+02:002011-06-16T18:50:51.493+02:00Ograniczanie wykorzystania łącza z wondershaperCzy w Twojej sieci lokalnej w godzinach wieczornych nie można dostać się do internetu? Wystarczyłoby przecież, aby każdy korzystający z internetu ograniczył na swoim komputerze wykorzystanie łącza do 1/n (gdzie n to liczba korzystających). Ale czy tak się da? Do niedawna wydawało mi się, że jest to trudne i szkoda czasu na zabawę. Wtedy trafiłem na konsolowe narzędzie <b>wondershaper</b>. Jego wykorzystanie jest dziecinnie proste:<br />
<pre>sudo wondershaper wlan0 1200 1000</pre>gdzie <i>wlan0</i> to nazwa interfejsu, który chcemy zmienić, <i>1200</i> to prędkość pobierania, a <i>1000</i> - wysyłania. <br />
Uwaga: prędkości podajemy w <b>kilobitach na sekundę</b>. Z programu można korzystać pod Linuksem (jest dostępny w repozytoriach Ubuntu 9.10), pod innymi systemami nie sprawdzałem.Unknownnoreply@blogger.com0