<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1125488696455856148</id><updated>2012-01-03T12:13:38.147+01:00</updated><category term='C++'/><category term='Scons'/><category term='Ubuntu'/><category term='Emacs'/><category term='Firefox'/><category term='Git'/><category term='narzędzia'/><category term='Linux'/><category term='GMail'/><category term='kompilacja'/><category term='Web'/><title type='text'>Ciekawe rozwiązania, techniki, zasoby</title><subtitle type='html'>Marcin Milewski</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://marcindev.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1125488696455856148/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://marcindev.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Marcin Milewski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1125488696455856148.post-7999258250123517205</id><published>2011-09-17T08:00:00.000+02:00</published><updated>2011-09-17T08:00:01.867+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Git'/><category scheme='http://www.blogger.com/atom/ns#' term='narzędzia'/><title type='text'>Przykładowy .gitconfig</title><content type='html'>&lt;br /&gt;Plik &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;.gitconfig&lt;/span&gt; należy zapisać w katalogu domowym (zwykle &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/home/USERNAME&lt;/span&gt;).&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[user]&lt;br /&gt;    name = Marcin Milewski&lt;br /&gt;    email = my-secret-email@gmail.com&lt;br /&gt;&lt;br /&gt;[alias]&lt;br /&gt;    co = checkout&lt;br /&gt;    st = status&lt;br /&gt;    br = branch&lt;br /&gt;    w = whatchanged&lt;br /&gt;&lt;br /&gt;[color]&lt;br /&gt;    ui = auto&lt;br /&gt;&lt;br /&gt;[color "branch"]&lt;br /&gt;    current = yellow reverse&lt;br /&gt;    local = yellow&lt;br /&gt;    remote = green&lt;br /&gt;&lt;br /&gt;[color "diff"]&lt;br /&gt;    meta = magenta bold&lt;br /&gt;    frag = magenta bold&lt;br /&gt;    old = red bold&lt;br /&gt;    new = green bold&lt;br /&gt;&lt;br /&gt;[color "status"]&lt;br /&gt;    added = yellow&lt;br /&gt;    changed = green&lt;br /&gt;    untracked = cyan&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1125488696455856148-7999258250123517205?l=marcindev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://marcindev.blogspot.com/feeds/7999258250123517205/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://marcindev.blogspot.com/2011/09/przykadowy-gitconfig.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1125488696455856148/posts/default/7999258250123517205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1125488696455856148/posts/default/7999258250123517205'/><link rel='alternate' type='text/html' href='http://marcindev.blogspot.com/2011/09/przykadowy-gitconfig.html' title='Przykładowy .gitconfig'/><author><name>Marcin Milewski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1125488696455856148.post-3321845738371615398</id><published>2011-06-17T08:00:00.030+02:00</published><updated>2011-06-28T21:19:41.480+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scons'/><category scheme='http://www.blogger.com/atom/ns#' term='narzędzia'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='kompilacja'/><title type='text'>SCons i kompilacja kodu w standardzie C++0x</title><content type='html'>&lt;span class="Apple-style-span" style="font-size: large;"&gt;Krótko o SConsie&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.scons.org/"&gt;SCons&lt;/a&gt; to ciekawe narzędzie do kompilacji kodu C++, Javy czy LaTeX'a. Autorzy chwalą się pisząc nieskromnie: next-generation build tool.&lt;br /&gt;Kompilacja prostego programu w C++ wygląda następująco:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Tworzymy plik SConstruct&lt;/li&gt;&lt;li&gt;Uruchamiamy polecenie &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;scons&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre&gt;# plik: SConstruct&lt;br /&gt;Program('game', 'main.cpp')   # pierwszy argument można pominąć&lt;br /&gt;&lt;/pre&gt;Jest to równoważne uruchomieniu następujących poleceń:&lt;br /&gt;&lt;pre&gt;g++ -o main.o -c main.cpp&lt;br /&gt;g++ -o game main.o&lt;br /&gt;&lt;/pre&gt;Łatwo możemy także tworzyć biblioteki:&lt;br /&gt;&lt;pre&gt;# plik: SConstruct&lt;br /&gt;SharedLibrary('superlib', 'superlib.cpp')&lt;br /&gt;&lt;/pre&gt;Jest to równoważne:&lt;br /&gt;&lt;pre&gt;g++ -o superlib.os -c -fPIC superlib.cpp&lt;br /&gt;g++ -o libsuperlib.so -shared superlib.os&lt;br /&gt;&lt;/pre&gt;Widzimy, że SCons zadbał o odpowiednie flagi oraz prefix &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;lib-&lt;/span&gt; dla nazwy pliku wynikowego.&lt;br /&gt;&lt;br /&gt;Ręczne tworzenie bardziej skomplikowanych poleceń może wyglądać np. tak:&lt;br /&gt;&lt;pre&gt;env = Environment()&lt;br /&gt;env.MergeFlags("-lSDL -lSDL_mixer -lSDL_image -lGL -lGLU")&lt;br /&gt;env.MergeFlags("-g -ggdb")&lt;br /&gt;env.MergeFlags("-W -Wall -Wextra -Woverloaded-virtual -pedantic")&lt;br /&gt;env.Program("game", Glob("*.cpp") + Glob("editor/*.cpp"))&lt;br /&gt;&lt;/pre&gt;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:&lt;br /&gt;&lt;pre&gt;env.Append(LIBS = Split('SDL SDL_mixer SDL_image GL GLU'))&lt;br /&gt;&lt;/pre&gt;Dość ciekawy jest fakt, że SCons &lt;a href="http://www.scons.org/doc/HTML/scons-user/c1809.html"&gt;sam rozpoznaje&lt;/a&gt;, które flagi powinny być gdzie użyte. Wpisując&lt;br /&gt;&lt;pre&gt;env.MergeFlags("-I /src/include/")&lt;br /&gt;env.MergeFlags("-L /src/lib/")&lt;br /&gt;&lt;/pre&gt;pierwsza flaga zostanie użyta podczas kompilacji, a druga dopiero podczas łączenia (konsolidacji).&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Konkretnie o problemie&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Po wpisaniu&lt;br /&gt;&lt;pre&gt;env.MergeFlags('-std=c++0x')&lt;br /&gt;&lt;/pre&gt;SCons zachowywał się jakbym niczego nie dopisał! Trochę zaskakujące może być, że komendę&lt;br /&gt;&lt;pre&gt;env.MergeFlags('-fmessage-length=70')&lt;br /&gt;&lt;/pre&gt;wykonał poprawnie (odpowiednia flaga pojawiła się na wyjściu kompilatora).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Rozwiązanie 1&lt;/b&gt;&lt;br /&gt;Dodać flagę w definicji środowiska:&lt;br /&gt;&lt;pre&gt;env = Environment(CPPFLAGS = ['-std=c++0x'])&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;Rozwiązanie 2&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Zrezygnować z &lt;i&gt;MergeFlags&lt;/i&gt; na rzecz &lt;i&gt;Append&lt;/i&gt;:&lt;br /&gt;&lt;pre&gt;env.Append(CPPFLAGS = '-std=c++0x')&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;Kompletny SConstruct&lt;/b&gt; może wyglądać np. tak:&lt;br /&gt;&lt;pre&gt;EnsurePythonVersion(2, 6) &lt;br /&gt;EnsureSConsVersion(2, 0)&lt;br /&gt;&lt;br /&gt;env = Environment()&lt;br /&gt;env.Append(CPPPATH = ['/data/include/boost/', '/usr/include/', ])&lt;br /&gt;env.Append(LIBPATH = [])&lt;br /&gt;&lt;br /&gt;env.Append(CPPDEFINES = {'DEBUG_BUILD' : '1'})&lt;br /&gt;&lt;br /&gt;env.Append(CPPFLAGS = Split('-W -Wall -Wextra -Woverloaded-virtual -pedantic'))&lt;br /&gt;env.Append(CPPFLAGS = Split('-std=c++0x -g -ggdb'))&lt;br /&gt;&lt;br /&gt;env.Append(LIBS = Split('SDL SDL_mixer SDL_image GL GLU'))&lt;br /&gt;&lt;br /&gt;env.Program("game", Glob("*.cpp") + Glob("editor/*.cpp") + Glob("gui/*.cpp"))&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1125488696455856148-3321845738371615398?l=marcindev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://marcindev.blogspot.com/feeds/3321845738371615398/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://marcindev.blogspot.com/2011/06/scons-i-kompilacja-kodu-w-standardzie.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1125488696455856148/posts/default/3321845738371615398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1125488696455856148/posts/default/3321845738371615398'/><link rel='alternate' type='text/html' href='http://marcindev.blogspot.com/2011/06/scons-i-kompilacja-kodu-w-standardzie.html' title='SCons i kompilacja kodu w standardzie C++0x'/><author><name>Marcin Milewski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1125488696455856148.post-6555579198054690672</id><published>2011-03-05T08:00:00.010+01:00</published><updated>2011-03-05T10:55:21.767+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>Nieczytelne znaki w Emacsie, czyli krzywe wygładzanie w Ubuntu 10.10</title><content type='html'>Jeżeli na czcionce Emacsie pojawiają Ci się dziwne znaczki, to być może spotkało Cię to samo co mnie.&lt;br /&gt;&lt;div&gt;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 ( &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;emacs -nw&lt;/span&gt; ). Po obejrzeniu poniższego screena chyba nikt nie ma wątpliwości o co chodzi.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-QD8cMfBFLVs/TXFWwTM0BtI/AAAAAAAABOQ/vzX8Ayhmt_M/s1600/problem.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://lh3.googleusercontent.com/-QD8cMfBFLVs/TXFWwTM0BtI/AAAAAAAABOQ/vzX8Ayhmt_M/s1600/problem.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;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)...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;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.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;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!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Odpowiedź znajduje się w System =&amp;gt;&amp;nbsp;Preferences =&amp;gt;&amp;nbsp;Appearance =&amp;gt; Font&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-x_U8IFHUXAY/TXFZhAyzbeI/AAAAAAAABOU/yjBg1In7mWI/s1600/appearance.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://lh5.googleusercontent.com/-x_U8IFHUXAY/TXFZhAyzbeI/AAAAAAAABOU/yjBg1In7mWI/s1600/appearance.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-BUJy9jDbOAY/TXFZhkx8mmI/AAAAAAAABOY/ZG1J4_8-YTM/s1600/details.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://lh4.googleusercontent.com/-BUJy9jDbOAY/TXFZhkx8mmI/AAAAAAAABOY/ZG1J4_8-YTM/s1600/details.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;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 :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1125488696455856148-6555579198054690672?l=marcindev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://marcindev.blogspot.com/feeds/6555579198054690672/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://marcindev.blogspot.com/2011/03/nieczytelne-znaki-w-emacsie-czyli.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1125488696455856148/posts/default/6555579198054690672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1125488696455856148/posts/default/6555579198054690672'/><link rel='alternate' type='text/html' href='http://marcindev.blogspot.com/2011/03/nieczytelne-znaki-w-emacsie-czyli.html' title='Nieczytelne znaki w Emacsie, czyli krzywe wygładzanie w Ubuntu 10.10'/><author><name>Marcin Milewski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh3.googleusercontent.com/-QD8cMfBFLVs/TXFWwTM0BtI/AAAAAAAABOQ/vzX8Ayhmt_M/s72-c/problem.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1125488696455856148.post-5747320948257903551</id><published>2011-01-16T08:00:00.003+01:00</published><updated>2011-06-16T18:49:18.149+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>Kolorowanie kolorów w CSSie z Emacsem</title><content type='html'>A Ty jak sprawdzasz czy użyte w arkuszu stylów kolory są ładne?&lt;br /&gt;Używając Emacsa możesz mieć to od razu podczas definiowania koloru!&lt;br /&gt;&lt;br /&gt;Przed:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_yoyhWzyq7zE/TTHKS53TmSI/AAAAAAAABN0/p8itcU79vnU/s1600/css-no-color.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_yoyhWzyq7zE/TTHKS53TmSI/AAAAAAAABN0/p8itcU79vnU/s1600/css-no-color.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;Po:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_yoyhWzyq7zE/TTHKFNbhHEI/AAAAAAAABNs/505EjPCSmlc/s1600/css-color.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_yoyhWzyq7zE/TTHKFNbhHEI/AAAAAAAABNs/505EjPCSmlc/s1600/css-color.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Odpowiedź na pytanie jak to zrobić znajduje się na stronie&amp;nbsp;&lt;a href="http://xahlee.org/emacs/emacs_html.html"&gt;http://xahlee.org/emacs/emacs_html.html&lt;/a&gt;&lt;br /&gt;Poniżej kod, który można wkleić do &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;.emacs&lt;/span&gt;a i cieszyć się kolorowymi definicjami kolorów.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;;; Kolorowanie kolorów w CSSie&lt;br /&gt;(defvar hexcolour-keywords&lt;br /&gt;  '(("#[abcdef[:digit:]]\\{6\\}"&lt;br /&gt;     (0&lt;br /&gt;      (put-text-property&lt;br /&gt;       (match-beginning 0) (match-end 0) 'face (list :background&lt;br /&gt;                                                     (match-string-no-properties 0)))))))&lt;br /&gt;&lt;br /&gt;(defun hexcolour-add-to-font-lock ()  (font-lock-add-keywords nil hexcolour-keywords))&lt;br /&gt;(add-hook 'css-mode-hook 'hexcolour-add-to-font-lock)&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1125488696455856148-5747320948257903551?l=marcindev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://marcindev.blogspot.com/feeds/5747320948257903551/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://marcindev.blogspot.com/2011/01/kolorowanie-kolorow-w-cssie-z-emacsem.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1125488696455856148/posts/default/5747320948257903551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1125488696455856148/posts/default/5747320948257903551'/><link rel='alternate' type='text/html' href='http://marcindev.blogspot.com/2011/01/kolorowanie-kolorow-w-cssie-z-emacsem.html' title='Kolorowanie kolorów w CSSie z Emacsem'/><author><name>Marcin Milewski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_yoyhWzyq7zE/TTHKS53TmSI/AAAAAAAABN0/p8itcU79vnU/s72-c/css-no-color.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1125488696455856148.post-2038296676990231166</id><published>2010-12-01T08:00:00.017+01:00</published><updated>2010-12-01T13:34:07.824+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='GMail'/><title type='text'>Co kryją labolatoria Gmaila?</title><content type='html'>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ę &lt;i&gt;undo send&lt;/i&gt; dostępną w&amp;nbsp;laboratorium&amp;nbsp;Gmaila.&lt;br /&gt;&lt;br /&gt;Jak się tam dostać?&amp;nbsp;Po zalogowaniu do Gmaila należy szukać klucza:&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_yoyhWzyq7zE/TPVPjVqtgiI/AAAAAAAABMw/HQc6NrYOJQ8/s1600/labs_bar_icon.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_yoyhWzyq7zE/TPVPjVqtgiI/AAAAAAAABMw/HQc6NrYOJQ8/s1600/labs_bar_icon.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Klucz do laboratorium&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;W środku jest wiele ciekawych wtyczek. Poniżej wymienię moim zdaniem najciekawsze.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Undo send&lt;/b&gt;&lt;br /&gt;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-&amp;gt;General).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Default 'Reply to all'&amp;nbsp;&lt;/b&gt;&lt;br /&gt;Przydatne, żeby nikogo niechcący nie wykluczyć z rozmowy.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Inserting images&amp;nbsp;&lt;/b&gt;&lt;br /&gt;Od teraz można wstawiać obrazki w treść maila.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Quote selected text&lt;/b&gt;&lt;br /&gt;Cytowanie zaznaczonego kawałka wiadomości. Irytujące jeśli przypadkiem zaznaczysz kawałek tekstu i klikniesz &lt;i&gt;odpowiedz&lt;/i&gt; -- trzeba odrzucić wiadomość, odznaczyć i jeszcze raz odpowiedzieć, ughh.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Signature tweaks&lt;/b&gt;&lt;br /&gt;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&lt;i&gt; Signature tweaks&lt;/i&gt; podpis jest bezpośrednio pod naszą wiadomością, a nie pod całą konwersacją.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Coś dla poglądaczy&lt;/b&gt;&lt;br /&gt;Innymi ciekawymi wtyczkami są:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Google Docs previews in mail&lt;/li&gt;&lt;li&gt;Google Maps previews in mail&lt;/li&gt;&lt;li&gt;Picasa previews in mail&lt;/li&gt;&lt;li&gt;Flickr previews in mail&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Umożliwiają pogląd załączników oraz linków z treści wiadomości bezpośrednio w GMailu. Korzystam bardzo często. Polecam.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_yoyhWzyq7zE/TPVOx5i75fI/AAAAAAAABMs/duThxSppTYs/s1600/yt_preview.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/_yoyhWzyq7zE/TPVOx5i75fI/AAAAAAAABMs/duThxSppTYs/s400/yt_preview.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Wystrzegałbym się natomiast&amp;nbsp;&lt;i&gt;Quick Links.&lt;/i&gt;&amp;nbsp;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?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1125488696455856148-2038296676990231166?l=marcindev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://marcindev.blogspot.com/feeds/2038296676990231166/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://marcindev.blogspot.com/2010/12/co-kryja-labolatoria.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1125488696455856148/posts/default/2038296676990231166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1125488696455856148/posts/default/2038296676990231166'/><link rel='alternate' type='text/html' href='http://marcindev.blogspot.com/2010/12/co-kryja-labolatoria.html' title='Co kryją labolatoria Gmaila?'/><author><name>Marcin Milewski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_yoyhWzyq7zE/TPVPjVqtgiI/AAAAAAAABMw/HQc6NrYOJQ8/s72-c/labs_bar_icon.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1125488696455856148.post-5020066450765055377</id><published>2010-06-12T08:00:00.004+02:00</published><updated>2010-06-12T08:00:02.289+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='narzędzia'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Weź styl w swoje ręce</title><content type='html'>Niewielu wie do czego jest plik &lt;b&gt;userContent.css&lt;/b&gt;, 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?&lt;br /&gt;&lt;br /&gt;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 &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;~/.mozilla/firefox/sa87d6fas.default/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. Ciekawe są tylko newsy.&lt;/b&gt;&lt;br /&gt;Pierwsza dotyczy serwisu &lt;a href="http://www.dobreprogramy.pl/"&gt;dobreprogramy.pl&lt;/a&gt;. 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.&lt;br /&gt;&lt;br /&gt;Korzystając ze wspomnianego pliku &lt;b&gt;userContent.css&lt;/b&gt; i znajomości CSS. Wyrzuciłem niepotrzebne elementy strony, czyniąc ją zdecydowanie bardziej użyteczną. Oto zmiany, których dokonałem:&lt;br /&gt;Serwis bez zmian: &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_yoyhWzyq7zE/TA0nmRxHyeI/AAAAAAAABKA/R8gf_Ma-tz8/s1600/dobreProgramy-przed.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/_yoyhWzyq7zE/TA0nmRxHyeI/AAAAAAAABKA/R8gf_Ma-tz8/s320/dobreProgramy-przed.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Serwis ze zmienionymi stylami:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_yoyhWzyq7zE/TA0nn14gXmI/AAAAAAAABKI/e68UB-JZy2Q/s1600/dobreProgramy-po.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="214" src="http://3.bp.blogspot.com/_yoyhWzyq7zE/TA0nn14gXmI/AAAAAAAABKI/e68UB-JZy2Q/s320/dobreProgramy-po.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Efekt można oglądać na stronie &lt;a href="http://www.dobreprogramy.pl/Aktualnosci,1.html"&gt;dobreprogramy.pl/Aktualności&lt;/a&gt;&lt;br /&gt;Pozostaje tylko pokazać zawartość userContent.css:&lt;br /&gt;&lt;blockquote&gt;@-moz-document url-prefix(http://www.dobreprogramy.pl/Aktualnosci) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; div#bigColumn, div#secondColumn, div.toplevelLimiter, #header, #footer {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; display: none !important;&amp;nbsp; /* najistotniejszy element */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #content .third {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; width: 90% !important;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; margin:0 !important;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; padding: 50px !important;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .main {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; background: white !important;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; margin: none !important;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; div.pagination a {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; font-size: 20px !important;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; margin: 1px !important;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; padding: 15px !important;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; border: 1px solid gray !important;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; background: lightGoldenRodYellow !important;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; div.pagination a.active {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; background: chocolate !important;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; color: black !important;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;2. Zbyt małe odnośniki są irytujące&lt;/b&gt;.&lt;br /&gt;Po chwili użytkowania tego serwisu zaczyna doskwierać dość mała czcionka (szczególnie w paginacji), co utrudnia interakcję - np. trafienie w link.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_yoyhWzyq7zE/TA0oLUK6K0I/AAAAAAAABKY/WyNa_-gWRjA/s1600/dobreProgramy-paginacja-przed.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_yoyhWzyq7zE/TA0oLUK6K0I/AAAAAAAABKY/WyNa_-gWRjA/s320/dobreProgramy-paginacja-przed.png" /&gt;&lt;/a&gt;&lt;/div&gt;Ale i na to znalazł się sposób (screen jest w oryginalnym rozmiarze :P ):&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_yoyhWzyq7zE/TA0oJ1q_KcI/AAAAAAAABKQ/h7PaN9mXb5g/s1600/dobreProgramy-paginacja-po.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_yoyhWzyq7zE/TA0oJ1q_KcI/AAAAAAAABKQ/h7PaN9mXb5g/s320/dobreProgramy-paginacja-po.png" /&gt;&lt;/a&gt;&lt;/div&gt;Istnieje jeszcze jedna możliwość "powiększenia" linka. Skorzystałem z tego przeglądając stronę z przedmiotu &lt;a href="http://www.ii.uni.wroc.pl/%7Ejma/kurs.phtml"&gt;Języki formalne...&lt;/a&gt;. Odnośniki o jakże długiej nazwie "Tu" z pewnością nie pomagają w wybraniu tego odsyłacza. Nic prostszego!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. Niechciane elementy po raz kolejny.&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_yoyhWzyq7zE/TA0v_lAX10I/AAAAAAAABKg/CzC1n6ro60Q/s1600/jfizo-tu.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="60" src="http://1.bp.blogspot.com/_yoyhWzyq7zE/TA0v_lAX10I/AAAAAAAABKg/CzC1n6ro60Q/s400/jfizo-tu.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;blockquote&gt;@-moz-document url-prefix(http://www.ii.uni.wroc.pl/~jma/kurs.phtml) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;h1,h2,h3,h4,h5,hr {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;font-size: 10pt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;padding:0;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;margin:0;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;a[href$="pod_gorke.jpg"] img { &amp;nbsp; &amp;nbsp;/* ends with pod_gorke.jpg */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;display: none;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;table td:first-child { &amp;nbsp;/* usuń komórkę z obrazkiem */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;display:none;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;a[href*="ranking"]:after { &amp;nbsp; &amp;nbsp; /* contains 'ranking' */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;content:'jest aktualny ranking';&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;a {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;background-color: lightblue;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;border: 1px solid blue;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;padding: .5em 1em .5em 1em;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;text-decoration: none !important;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;}&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;Podsumowanie&lt;/b&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Oprócz pliku &lt;a href="http://www.google.pl/search?q=userContent.css"&gt;userContent.css&lt;/a&gt; jest także plik, w którym możemy manipulować wyglądem całego okna - to &lt;a href="http://www.google.pl/search?q=userchrome.css"&gt;userChrome.css&lt;/a&gt;.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1125488696455856148-5020066450765055377?l=marcindev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://marcindev.blogspot.com/feeds/5020066450765055377/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://marcindev.blogspot.com/2010/06/wez-styl-w-swoje-rece.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1125488696455856148/posts/default/5020066450765055377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1125488696455856148/posts/default/5020066450765055377'/><link rel='alternate' type='text/html' href='http://marcindev.blogspot.com/2010/06/wez-styl-w-swoje-rece.html' title='Weź styl w swoje ręce'/><author><name>Marcin Milewski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_yoyhWzyq7zE/TA0nmRxHyeI/AAAAAAAABKA/R8gf_Ma-tz8/s72-c/dobreProgramy-przed.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1125488696455856148.post-7421875775143947313</id><published>2010-05-22T08:00:00.006+02:00</published><updated>2011-06-16T18:50:51.493+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='narzędzia'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Ograniczanie wykorzystania łącza z wondershaper</title><content type='html'>Czy 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 &lt;b&gt;wondershaper&lt;/b&gt;. Jego wykorzystanie jest dziecinnie proste:&lt;br /&gt;&lt;pre&gt;sudo wondershaper wlan0 1200 1000&lt;/pre&gt;gdzie &lt;i&gt;wlan0&lt;/i&gt; to nazwa interfejsu, który chcemy zmienić, &lt;i&gt;1200&lt;/i&gt; to prędkość pobierania, a &lt;i&gt;1000&lt;/i&gt; - wysyłania. &lt;br /&gt;Uwaga: prędkości podajemy w &lt;b&gt;kilobitach na sekundę&lt;/b&gt;. Z programu można korzystać pod Linuksem (jest dostępny w repozytoriach Ubuntu 9.10), pod innymi systemami nie sprawdzałem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1125488696455856148-7421875775143947313?l=marcindev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://marcindev.blogspot.com/feeds/7421875775143947313/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://marcindev.blogspot.com/2010/05/ograniczanie-wykorzystania-acza.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1125488696455856148/posts/default/7421875775143947313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1125488696455856148/posts/default/7421875775143947313'/><link rel='alternate' type='text/html' href='http://marcindev.blogspot.com/2010/05/ograniczanie-wykorzystania-acza.html' title='Ograniczanie wykorzystania łącza z wondershaper'/><author><name>Marcin Milewski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
