<?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-2691963304184624077</id><updated>2012-01-24T05:06:21.353-08:00</updated><category term='linux'/><category term='textmate'/><category term='ide'/><title type='text'>My Notes</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://przemyslawwroblewski.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://przemyslawwroblewski.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Przemysław Wróblewski</name><uri>http://www.blogger.com/profile/00315640642865740907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_VR-gtLX0f2c/Sh6KouL1sNI/AAAAAAAACq4/qlAk17nfMBg/S220/smea.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2691963304184624077.post-8501116721510156648</id><published>2012-01-23T06:42:00.000-08:00</published><updated>2012-01-23T07:25:50.910-08:00</updated><title type='text'>OSX Lion, apache bench "Connection reset by peer"</title><content type='html'>Obecnie testuje różne kontenery http na jruby, oprócz uruchomienia i testu z przegladarki zależy mi na określeniu jaka będzie strata/zysk przy konwersji MRI-&gt;JRUBY. Naturalnym dla mnie narzędziem do takich testów jest &lt;span style="font-weight:bold;"&gt;ab&lt;/span&gt; z pakietu apache utils.&lt;br /&gt;&lt;br /&gt;Jakie było moje zdziwienie kiedy zamiast czasu otrzymałem błąd:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ ab.old -n100 -c40 http://localhost:3000/&lt;br /&gt;This is ApacheBench, Version 2.3 &lt;$Revision: 655654 $&gt;&lt;br /&gt;Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/&lt;br /&gt;Licensed to The Apache Software Foundation, http://www.apache.org/&lt;br /&gt;&lt;br /&gt;Benchmarking localhost (be patient)...Send request failed!&lt;br /&gt;Send request failed!&lt;br /&gt;Send request failed!&lt;br /&gt;apr_socket_recv: Connection reset by peer (54)&lt;br /&gt;Total of 3 requests completed&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;pół dnia spędziłem, zmieniając serwery, zmieniłem również implementacje javy na openjdk, wszystko na nic, aby pod koniec dnia natrafić na &lt;a href="http://superuser.com/questions/323840/apache-bench-test-erroron-os-x-apr-socket-recv-connection-reset-by-peer-54"&gt;odpowiedz na superuser&lt;/a&gt;. Czemu wcześniej na to nie trafiłem? A kto by podejrzewał ab...&lt;br /&gt;&lt;br /&gt;Okazało się że &lt;span style="font-weight:bold;"&gt;ab&lt;/span&gt; dostarczany z osx ma ten błąd i należy przekompliować ab z źródeł. no comment&lt;br /&gt;&lt;br /&gt;UPDATE: po kompilacji dostłem nowy błąd "bind: address family not supported by protocol family 47", tu znowu wkracza osx ktory za localhost podstawia adres IPv6. Rozwiązanie polegało na usunięciu wpisów ipv6 z /etc/hosts powiązanych z localhostem&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2691963304184624077-8501116721510156648?l=przemyslawwroblewski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemyslawwroblewski.blogspot.com/feeds/8501116721510156648/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemyslawwroblewski.blogspot.com/2012/01/osx-lion-apache-bench-connection-reset.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default/8501116721510156648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default/8501116721510156648'/><link rel='alternate' type='text/html' href='http://przemyslawwroblewski.blogspot.com/2012/01/osx-lion-apache-bench-connection-reset.html' title='OSX Lion, apache bench &quot;Connection reset by peer&quot;'/><author><name>Przemysław Wróblewski</name><uri>http://www.blogger.com/profile/00315640642865740907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_VR-gtLX0f2c/Sh6KouL1sNI/AAAAAAAACq4/qlAk17nfMBg/S220/smea.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2691963304184624077.post-3647804749704517876</id><published>2011-09-19T01:05:00.001-07:00</published><updated>2011-09-19T01:11:15.944-07:00</updated><title type='text'>vimdiff on directories</title><content type='html'>Jedyną rzeczą której mi brakowało w gedit/rubymine było porównywanie katalogów, prawde mówiąc był to jedyny powód dla którego korzystałem od czasu do czasu z Eclipse/Aptana gdzie to działało rewelacyjnie.&lt;br /&gt;Do teraz, bo właśnie znalazłem plugin DirDiff:&lt;br /&gt;&lt;br /&gt;http://www.vim.org/scripts/script.php?script_id=102&lt;br /&gt;&lt;br /&gt;wystarczy wpisać:&lt;br /&gt;&lt;br /&gt;:DirDiff katalog1 katalog2&lt;br /&gt;&lt;br /&gt;a oto efekt:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-KCyWwDTTcJ8/Tnb49THMwaI/AAAAAAAAF_w/DlLJlSrTgxc/s1600/vim%2Bdiff%2Bdirectory.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 241px;" src="http://2.bp.blogspot.com/-KCyWwDTTcJ8/Tnb49THMwaI/AAAAAAAAF_w/DlLJlSrTgxc/s400/vim%2Bdiff%2Bdirectory.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5653980114196414882" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2691963304184624077-3647804749704517876?l=przemyslawwroblewski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemyslawwroblewski.blogspot.com/feeds/3647804749704517876/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemyslawwroblewski.blogspot.com/2011/09/vimdiff-on-directories.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default/3647804749704517876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default/3647804749704517876'/><link rel='alternate' type='text/html' href='http://przemyslawwroblewski.blogspot.com/2011/09/vimdiff-on-directories.html' title='vimdiff on directories'/><author><name>Przemysław Wróblewski</name><uri>http://www.blogger.com/profile/00315640642865740907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_VR-gtLX0f2c/Sh6KouL1sNI/AAAAAAAACq4/qlAk17nfMBg/S220/smea.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-KCyWwDTTcJ8/Tnb49THMwaI/AAAAAAAAF_w/DlLJlSrTgxc/s72-c/vim%2Bdiff%2Bdirectory.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2691963304184624077.post-4525503589132432129</id><published>2011-07-24T08:44:00.001-07:00</published><updated>2011-07-24T09:05:21.173-07:00</updated><title type='text'>XBMC match movie title based on filename</title><content type='html'>Bardzo często zdarzało mi się że XBMC przydzielał niepoprawny film z imdb na podstawie dziwnej nazwy pliku np: "rx-hl-720p-dtshd.mkv"&lt;br /&gt;Z poziomu interfejsu XBMC znalezienie takich nieprawidłowości było niemożliwe.&lt;br /&gt;&lt;br /&gt;Większość moich filmów ma poprawne nazwy katalogów więc pomyślełem że mogę użyć nazwy katalogu do weryfikcaji tego co XBMC przypisał do danego pliku na dysku.&lt;br /&gt;&lt;br /&gt;XBMC składuje swoje dane w sqlite i ma ładny opis co gdzie leży. W związku z tym napisałem króciutki programik do weryfikacji mapowań XBMC:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:ruby"&gt;&lt;br /&gt;require 'rubygems'&lt;br /&gt;require 'sqlite3'&lt;br /&gt;&lt;br /&gt;STOPWORDS = [ "the", "ii", "iii", "iv", "v", "vi", "3d"]&lt;br /&gt;WHITELIST = YAML.load_file(ENV['HOME'] + '/bin/xbmc-verify.yml')&lt;br /&gt;&lt;br /&gt;def detect_movie(title, path)&lt;br /&gt;  words = title.downcase.gsub(/[^a-z0-9]+/, " ").gsub(/ +/, " ").split(" ")&lt;br /&gt;  words.delete_if { |w| STOPWORDS.include? w }&lt;br /&gt;  dir = path.downcase&lt;br /&gt;  included = words.collect { |w| dir.include?(w) ? true : nil }.compact&lt;br /&gt;  included.length == words.length&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;db = SQLite3::Database.new ENV['HOME'] + "/.xbmc/userdata/Database/MyVideos34.db"&lt;br /&gt;&lt;br /&gt;db.execute("select c00, c16, strPath from movieview" ) do |row|&lt;br /&gt;  next if WHITELIST.include? File.basename(row[2])&lt;br /&gt;  unless detect_movie(row[0], row[2]) or detect_movie(row[1], row[2]) &lt;br /&gt;    movie_title = row[1]&lt;br /&gt;    movie_title &lt;&lt; " (#{row[0]})" if row[0] != row[1]&lt;br /&gt;    puts "!!! #{movie_title} - #{row[2]}"&lt;br /&gt;  end&lt;br /&gt;end&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/2691963304184624077-4525503589132432129?l=przemyslawwroblewski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemyslawwroblewski.blogspot.com/feeds/4525503589132432129/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemyslawwroblewski.blogspot.com/2011/07/xbmc-match-movie-title-based-on.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default/4525503589132432129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default/4525503589132432129'/><link rel='alternate' type='text/html' href='http://przemyslawwroblewski.blogspot.com/2011/07/xbmc-match-movie-title-based-on.html' title='XBMC match movie title based on filename'/><author><name>Przemysław Wróblewski</name><uri>http://www.blogger.com/profile/00315640642865740907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_VR-gtLX0f2c/Sh6KouL1sNI/AAAAAAAACq4/qlAk17nfMBg/S220/smea.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2691963304184624077.post-3563972534294802490</id><published>2011-05-28T08:11:00.000-07:00</published><updated>2011-05-28T08:29:49.150-07:00</updated><title type='text'>Windows 7</title><content type='html'>Ponieważ w najbliższej przyszłości czeka mnie (o zgrozo!) naprawa dwóch windowso napędzanych pecetów które rodzinka i znajomi chcą mi podrzucić, postanowiłem przećwiczyć instalacje nowej odsłony okienek na własnym komputerze aby uniknąć problemów na w/w zestawach.&lt;br /&gt;&lt;br /&gt;Korzystając z opisu &lt;a href="http://kmwoley.com/blog/?p=345"&gt;Kevina&lt;/a&gt; stworzyłem z obrazu płyty instalacyjnen bootujący dysk USB i uruchomiłem system z niego, na czarnym ekranie mignęło coś ala "ładowanie windows", więc czekam...&lt;br /&gt;&lt;br /&gt;Wow, po kilku minutach ujrzałem tapetę nowego windowsa i kursor myszki (nawet reagował na ruch gryzonia!) i to by było na tyle, więcej nic sie nie dzieje, dysk z którego uruchomiłem system nie pracuje - pomyślałem że już udało mu sie zawisnąć.&lt;br /&gt;&lt;br /&gt;Ale dostał szansę, w tap defence na telefonie włączyłem kolejne kilka plansz więc dostał gdzieś z 10 minut spokoju. Okazało się że to mu bardzo pomogło bo po ~15 minutach nareszcie pokazał coś do klikania na ekranie.&lt;br /&gt;A więc standardowa akceptacja regulaminu, czy robie upgrade czy instaluje od nowa etc.&lt;br /&gt;Wybrałem nową instalację i moim oczom ukazała się następująca plansza:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://lh5.googleusercontent.com/-NkWglfrHm5I/TeEOo5tsZ4I/AAAAAAAAF8w/6kPAMv2O_Jo/2011-05-28%25252017.00.21.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 800px; height: 465px;" src="https://lh5.googleusercontent.com/-NkWglfrHm5I/TeEOo5tsZ4I/AAAAAAAAF8w/6kPAMv2O_Jo/2011-05-28%25252017.00.21.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Gwoli wyjaśnienia, mam w komputerze 9 dysków - system uruchamiam z WD Raptora 74GB,&lt;br /&gt;na którym mam ubuntu i windowsa viste - domyśliłem się że to dysk 4. &lt;br /&gt;&lt;br /&gt;Pytanie która partycja to Vista a  która Ubuntu?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;"Drogi" microsofcie &lt;/span&gt; - czy tak trudno było w polu nazwa dać nazwę producenta i model, a w typie wyświetlić typ partycji (ntfs, linux, etc) ?&lt;br /&gt;&lt;br /&gt;Cóż - zagadka pozostanie niewyjaśniona bo szkoda mi stracić swoje dane, ja mam już dosyć, eksperymentował dalej będę na dostarczonych pctach.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2691963304184624077-3563972534294802490?l=przemyslawwroblewski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemyslawwroblewski.blogspot.com/feeds/3563972534294802490/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemyslawwroblewski.blogspot.com/2011/05/windows-7.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default/3563972534294802490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default/3563972534294802490'/><link rel='alternate' type='text/html' href='http://przemyslawwroblewski.blogspot.com/2011/05/windows-7.html' title='Windows 7'/><author><name>Przemysław Wróblewski</name><uri>http://www.blogger.com/profile/00315640642865740907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_VR-gtLX0f2c/Sh6KouL1sNI/AAAAAAAACq4/qlAk17nfMBg/S220/smea.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh5.googleusercontent.com/-NkWglfrHm5I/TeEOo5tsZ4I/AAAAAAAAF8w/6kPAMv2O_Jo/s72-c/2011-05-28%25252017.00.21.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2691963304184624077.post-1910225401231586946</id><published>2011-05-15T23:09:00.000-07:00</published><updated>2011-05-15T23:17:07.064-07:00</updated><title type='text'>ubuntu 11.04 so which tab is active?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://i.imgur.com/JHc5s.png"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 483px; height: 148px;" src="http://i.imgur.com/JHc5s.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Obok laptopa mam monitor, każdy z ekranów jest inaczej ustawiony i aby zobaczyć aktywną zakładkę muszę patrzeć na ekran pod odpowiednim kontem - okazało się że nie tylko ja mam taki problem, rozwiązaniem jest ostylowanie aktywnej zakładki w poniższy sposów:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;lowang@lowang-laptop:~$ cat .gtkrc-2.0 &lt;br /&gt;style "gnome_terminal_notebook"&lt;br /&gt;{&lt;br /&gt;  fg[NORMAL] = "#00ff00"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;widget "*TerminalWindow.*.GtkNotebook*" style "gnome_terminal_notebook"&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;po tym tylko restart aplikacji i zmiana powinna być widoczna.&lt;br /&gt;&lt;br /&gt;na podstawie:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://askubuntu.com/questions/40332/how-to-make-selected-tab-in-terminal-more-prominent"&gt;http://askubuntu.com/questions/40332/how-to-make-selected-tab-in-terminal-more-prominent&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2691963304184624077-1910225401231586946?l=przemyslawwroblewski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemyslawwroblewski.blogspot.com/feeds/1910225401231586946/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemyslawwroblewski.blogspot.com/2011/05/ubuntu-1104-so-which-tab-is-active.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default/1910225401231586946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default/1910225401231586946'/><link rel='alternate' type='text/html' href='http://przemyslawwroblewski.blogspot.com/2011/05/ubuntu-1104-so-which-tab-is-active.html' title='ubuntu 11.04 so which tab is active?'/><author><name>Przemysław Wróblewski</name><uri>http://www.blogger.com/profile/00315640642865740907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_VR-gtLX0f2c/Sh6KouL1sNI/AAAAAAAACq4/qlAk17nfMBg/S220/smea.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2691963304184624077.post-6835342665436372439</id><published>2011-05-15T22:37:00.000-07:00</published><updated>2011-05-15T23:07:39.628-07:00</updated><title type='text'>Ubuntu 11.04 Natty Narwhal</title><content type='html'>&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 206px;" src="http://2.bp.blogspot.com/-ZX_uDhm-fl0/TdC8q_kM7GI/AAAAAAAAF7c/Bi0DdthpwLE/s320/Screenshot.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5607188982880070754" /&gt;Od wersji 10.04 Ubuntu zaczęło być dla mnie na tyle dopracowane, że nie śpieszyłem sie z kolejnymi upgrejdami do nowszych wersji. Natomiast zawsze z niecierpliwościa obserwowałem co tym razem zostanie dodane/zmienione w tej wyśmienitej dystrybucji. Tym razem miał być to nowy interfejs więc zaraz po pojawieniu się wersji 'stabilnej' zrobiłem 2 upgrejdy - na kompuerze domowym i na laptopie. Pierwsze wrażenie - WOW, jak to teraz wygląda, nowy luncher ala osx, i ... zwis. Wróciłem do starego kernela na desktopie (Asus P5K Pro) i zniknęły problemy ze stabilnością. Przynajmniej tak mi się wtedy wydawało ;-) Co do samego nowego lunchera - jest świetny, uwielbiam jak ikonka epiphany (chat klient) podskakuje sobie po otrzymaniu nowej wiadomości - coś czego zawsze zazdrościłem osxowi (Adium) teraz mam w ubuntu.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ok, teraz trochę o wadach - do tej pory nie wiem jak edytować programy w nowym luncherze, próżno szukać opcji edytuj pod prawym przyciskiem myski. Gdzieś na forach czają się opisy jak to zrobić ale nie wygląda to na trywialną operację.&lt;/div&gt;&lt;div&gt;Kolejna sprawa to po kilku dniach używania (robię sleep na noc w desktopie, laptop chodzi cały czas) zauważyłem że gdzieś mi pamięć znika. Winowajcą okazał się compiz - potrafi 3G pamięci zjeść przez kilka dni, magiczne &lt;b&gt;Alt-F2&lt;/b&gt; i &lt;b&gt;compiz --replace&lt;/b&gt; rozwiązują chwilowo problem ale trzeba pamiętac aby raz na dzień to zrobić.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Podsumowując jestem zadowolony ze zmiany, Ubuntu to darmowe oprogramowanie i nie ma co od niego wymagać aby było perfekcyjne od dnia wydania, z czasem wszystkie niedogodności które napotkałem zostaną rozwiązane i dzięki automatycznym aktualizacją pojawią się na moich komputerach, lecz na przyszłość postaram się pamiętać aby nowy system instalować z kilkutygodniowym opóźnieniem.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2691963304184624077-6835342665436372439?l=przemyslawwroblewski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemyslawwroblewski.blogspot.com/feeds/6835342665436372439/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemyslawwroblewski.blogspot.com/2011/05/ubuntu-1104-natty-narwhal.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default/6835342665436372439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default/6835342665436372439'/><link rel='alternate' type='text/html' href='http://przemyslawwroblewski.blogspot.com/2011/05/ubuntu-1104-natty-narwhal.html' title='Ubuntu 11.04 Natty Narwhal'/><author><name>Przemysław Wróblewski</name><uri>http://www.blogger.com/profile/00315640642865740907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_VR-gtLX0f2c/Sh6KouL1sNI/AAAAAAAACq4/qlAk17nfMBg/S220/smea.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-ZX_uDhm-fl0/TdC8q_kM7GI/AAAAAAAAF7c/Bi0DdthpwLE/s72-c/Screenshot.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2691963304184624077.post-1930502750354755213</id><published>2010-09-24T04:22:00.000-07:00</published><updated>2010-09-24T04:31:31.381-07:00</updated><title type='text'>Blueconnect Huawei E122 w Ubuntu 10.04</title><content type='html'>&lt;div&gt;Po podłączeniu modemu gsm zazwyczaj wystarczy zrobic &lt;span class="Apple-style-span" &gt;eject /dev/sr1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;niestety huawei jest na to odporny :(&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Aby go odpalic wystarczy:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;$ sudo apt-get install usb-modeswitch usb-modeswitch-data&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;$ sudo usb_modeswitch -v 12d1 -p 1001 -H 1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;teraz networkmanager juz widzi modem, w dmesgu otrzymamy potwierdzenie tego faktu:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;[6020235.400753] usb 2-3: USB disconnect, address 28&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;[6020239.730122] usb 2-3: new high speed USB device using ehci_hcd and address 29&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;[6020239.881162] usb 2-3: config 1 interface 1 altsetting 0 bulk endpoint 0x85 has invalid maxpacket 256&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;[6020239.881174] usb 2-3: config 1 interface 1 altsetting 0 bulk endpoint 0x5 has invalid maxpacket 256&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;[6020239.881183] usb 2-3: config 1 interface 2 altsetting 0 bulk endpoint 0x86 has invalid maxpacket 256&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;[6020239.881191] usb 2-3: config 1 interface 2 altsetting 0 bulk endpoint 0x6 has invalid maxpacket 256&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;[6020239.883626] option 2-3:1.0: GSM modem (1-port) converter detected&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;[6020239.883820] usb 2-3: GSM modem (1-port) converter now attached to ttyUSB0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;[6020239.884534] option 2-3:1.1: GSM modem (1-port) converter detected&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;[6020239.884700] usb 2-3: GSM modem (1-port) converter now attached to ttyUSB1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;[6020239.885937] option 2-3:1.2: GSM modem (1-port) converter detected&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;[6020239.886088] usb 2-3: GSM modem (1-port) converter now attached to ttyUSB2&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;[6020239.887020] scsi69 : usb-storage 2-3:1.3&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;[6020239.887960] scsi70 : usb-storage 2-3:1.4&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;[6020240.883984] scsi 69:0:0:0: CD-ROM            HUAWEI   Mass Storage     2.31 PQ: 0 ANSI: 2&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;[6020240.883995] scsi 70:0:0:0: Direct-Access     HUAWEI   SD Storage       2.31 PQ: 0 ANSI: 2&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;[6020240.885180] sd 70:0:0:0: Attached scsi generic sg2 type 0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;[6020240.903658] sd 70:0:0:0: [sdb] Attached SCSI removable disk&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;[6020240.904152] sr1: scsi-1 drive&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;[6020240.904317] sr 69:0:0:0: Attached scsi CD-ROM sr1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;[6020240.904421] sr 69:0:0:0: Attached scsi generic sg3 type 5&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;[6020251.580164] sr1: CDROM (ioctl) error, command: Xpwrite, Read disk info 51 00 00 00 00 00 00 00 02 00&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;[6020251.580193] sr: Sense Key : Hardware Error [current] &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;[6020251.580203] sr: Add. Sense: No additional sense information&lt;/span&gt;&lt;/div&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/2691963304184624077-1930502750354755213?l=przemyslawwroblewski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemyslawwroblewski.blogspot.com/feeds/1930502750354755213/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemyslawwroblewski.blogspot.com/2010/09/blueconnect-huawei-e122-w-ubuntu-1004.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default/1930502750354755213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default/1930502750354755213'/><link rel='alternate' type='text/html' href='http://przemyslawwroblewski.blogspot.com/2010/09/blueconnect-huawei-e122-w-ubuntu-1004.html' title='Blueconnect Huawei E122 w Ubuntu 10.04'/><author><name>Przemysław Wróblewski</name><uri>http://www.blogger.com/profile/00315640642865740907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_VR-gtLX0f2c/Sh6KouL1sNI/AAAAAAAACq4/qlAk17nfMBg/S220/smea.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2691963304184624077.post-1825345146511403470</id><published>2009-12-23T03:32:00.000-08:00</published><updated>2009-12-23T03:58:36.358-08:00</updated><title type='text'>HP SmartArray P410i - what a piece of shit!</title><content type='html'>&lt;div&gt;Platforma DL 160 jest oferowana w 2 wersjach 4x3,5" i 8x2,5". Pierwsza wersja jest NO Hotplug podłączona do kontrolera INTEL ICH10R, kolejna ma już kieszonki na dyski i działa na kontrolerze HP SmartArray P410i/ZM ( nie da się z niego zrezygnować, przynajmniej mi się nie udało )&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Co do samego kontrolera HP SmartArray P410i, jest to urzadzenie które z premedytacją ukrywa dyski przed systemem więc przy instalacji debiana był 1wszy zonk, gdzie mam go zainstalować?&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Pomęczyłem troche support HP i dostalem w koncu odpowiedz: "NIE DA SIE".&lt;/div&gt;&lt;div&gt;Ba, support był wielce zdziwiony że jak to chce wyłączyć funkcje raid w ich kontrolerze, przecież to nie będzie działać...&lt;/div&gt;&lt;div&gt;Pewnie tak samo sie dziwił dział zamówień że zamówilismy serwery bez cdromów... lol&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Wcześniej miałem doczynienia z serwerami &lt;b&gt;Fujitsu-Siemens&lt;/b&gt; i do głowy mi nie przyszło że taki absurd może się pojawić, ale cóż, to tylko hp.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;Obejściem tego okazało się zrobienie fizycznej macierzy RAID z poziomu narzędzia zwanego ORCA - taki mini bios tego kontrolera, cholernie ograniczony z minimalną ilością opcji.&lt;/div&gt;&lt;div&gt;Teraz zamiast mieć wszędzie raid softwarowy przez to badziewie jesteśmy zmuszeni do robienia wyjątków w konfiguracji i korzystania z raidu softwarowego. Oczywiście tak samo wygląda sprawa w przypadku S.M.A.R.T - hp daje swoje własne narzędzie. Oczywiscie pod debianem to kolejny klopot bo daja to w RPM-ach do Redhata.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Kolejna sprawa to wydajność, domyślnie SmartArray ma wyłączoną opcję buforowania zapisu, więc działa baaardzo słabo. Ale troche magi w narzędziu zwanym &lt;b&gt;hpacucli&lt;/b&gt;, czyli:&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;=&gt; ctrl slot=4 modify drivewritecache=enable&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;i udało się to włączyć.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Naszczęscie kontroler ten poprawnie rozpoznał dyski INTEL-a, a tu miałem trochę wątpliwości bo nikt nie był mi w stanie tego potwierdzić. Niby wspiera SATA, ale kto wie jakie ficzery HP mógł tam dopisać...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ciekawe jak będę zmieniał firmware w tych dyskach skoro nie mam do nich dostępu z systemu...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Podsumowując: narazie działają, ale ciągle żałuje że ich nie wyrzuciłem i nie zastąpiłem np INTELEM SASUC8I który ma tzw RAID-passthrough więc dyski sa normalnie widoczne.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2691963304184624077-1825345146511403470?l=przemyslawwroblewski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemyslawwroblewski.blogspot.com/feeds/1825345146511403470/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemyslawwroblewski.blogspot.com/2009/12/hp-smartarray-p410i-what-piece-of-shit.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default/1825345146511403470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default/1825345146511403470'/><link rel='alternate' type='text/html' href='http://przemyslawwroblewski.blogspot.com/2009/12/hp-smartarray-p410i-what-piece-of-shit.html' title='HP SmartArray P410i - what a piece of shit!'/><author><name>Przemysław Wróblewski</name><uri>http://www.blogger.com/profile/00315640642865740907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_VR-gtLX0f2c/Sh6KouL1sNI/AAAAAAAACq4/qlAk17nfMBg/S220/smea.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2691963304184624077.post-2487451952137557942</id><published>2009-09-15T01:41:00.000-07:00</published><updated>2009-12-23T03:32:18.988-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ide'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='textmate'/><title type='text'>Linux IDE: Aptana, Eclipse, Netbeans ? a może coś innego ?</title><content type='html'>od wielu lat pracuje na różnych klonach eclipsa lub samym eclipse, miałem roczną przygodę z netbeansami ale ciągle mi czegoś brakowało - mianowicie prostoty i szybkości. O ile Netbeans był wyraźnie szybszy od aptany/eclipsa niestety sposób d&lt;span style="font-weight: bold;"&gt;ziałani&lt;/span&gt;a synchronizacji svn był w nim tragiczny. To chyba jedyna z wad jakie w nim dostrzegłem.&lt;br /&gt;&lt;br /&gt;Pewnie problem może ię wydawac wam dziwny, przecież wszystko "u mnie działa szybko" natomiast ja w moim workspace mam &lt;span style="font-weight: bold;"&gt;203 401&lt;/span&gt; pliki w różnych projektach zajmujących razem &lt;span style="font-weight: bold;"&gt;4,4GB&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Oczywiście nie wszystko mam naraz otwarte, ale 4 projekty z &lt;span style="font-weight: bold;"&gt;80000&lt;/span&gt; plików zawsze mam dostępne. Na takiej ilości plików eclipsowo/aptanowy indexer zżera &lt;span style="font-weight: bold;"&gt;100% procesora&lt;/span&gt;,&lt;br /&gt;czyniąc prace niemożliwą. Zanim indexer zaraguje na próby zatrzymania go mijaja kolejne minuty. nawet jak się już to uda i nie wygenerował wczesniej Exceptiona o braku pamięci, a zaznacze że mam aktywne poniższe opcje:&lt;br /&gt;&lt;br /&gt;--launcher.XXMaxPermSize&lt;br /&gt;256m&lt;br /&gt;-Xms256m&lt;br /&gt;-Xmx896m&lt;br /&gt;&lt;br /&gt;to nareszczie można zacząć pracować. Przy 4GB ramu i uruchomionym Firefoxie zaraz wolna pamięć praktycznie maleje do zera.&lt;br /&gt;&lt;br /&gt;Poniżej fragment top-a(wszystko przed chwilą uruchomione):&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;PID     USER     PR  NI  VIRT  RES  SHR   S %CPU %MEM SWAP COMMAND                                                                                                  &lt;br /&gt;15459 lowang 20   0 2000m 781m  35m S    1    20.1 1.2g /usr/bin/java&lt;br /&gt;10034 lowang 20   0 1248m 485m  35m S   28   12.5 763m /usr/lib/firefox&lt;br /&gt;      5160   root     20   0   588m  173m  17m S    2      4.5 414m /usr/X11R6/bin/X :0&lt;br /&gt;1539   lowang 30  10  342m 106m  15m S    0      2.7 235m /usr/bin/python2.6&lt;br /&gt;6490   lowang 20   0   550m    98m  12m  S    1      2.5 452m google/chrome&lt;br /&gt;10932 lowang 20   0   406m    46m  17m  S    0      1.2 359m gedit&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ostatni na fragmencie listy jest właśnie mój faworyt czyli &lt;a href="http://projects.gnome.org/gedit/"&gt;gedit&lt;/a&gt; - prosty edytorek standardowo instalowany wraz z ubuntu. Oczywiście standardowo ciężko było by w nim pisać, na szczęście istnieje do niego wiele pluginów upodabniających go do textmate-a,&lt;br /&gt;polecam instalacje dodatków z repo: &lt;a href="http://github.com/mig/gedit-rails"&gt;http://github.com/mig/gedit-rails&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;końcowy efekt wygląda tak:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VR-gtLX0f2c/Sq9iJlDd95I/AAAAAAAAD5M/nkVOhx0oHyI/s1600-h/gedit+textmate.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 479px; height: 299px;" src="http://1.bp.blogspot.com/_VR-gtLX0f2c/Sq9iJlDd95I/AAAAAAAAD5M/nkVOhx0oHyI/s400/gedit+textmate.png" alt="" id="BLOGGER_PHOTO_ID_5381627996436035474" border="0" /&gt;&lt;/a&gt;po prawej stronie widoczne okienko tzw. "snap open" czyli naciskamy CTRL-ALT-O i zaczynami wpisywac treść nazwy pliku a gedit pokazuje nam dopasowania - z tej listy odrazu otwieramy taki znaleziony plik, koniec z zagłębianiem się na 4-ty poziom podkatalogu :)&lt;br /&gt;&lt;br /&gt;Kolorowanie składni działa rewelacyjnie, podpowiadanie też jest w miare efektywne ( działa w obrębie danego pliku, nie jest jakies super sprytne ale wystarcza), jedyne czego brakuje to klikniecia w nazwę klasy z CRTL-em aby odrazu wyświetliła się definicja, ale niestety coś za coś.&lt;br /&gt;&lt;br /&gt;Jesli masz dość wolnego wielkiego IDE to zachęcam do małej próby :)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;UPDATE 2009-12-23: zamiast snap open doinstalowałem gedit-gmate z pluginem &lt;b&gt;Go to File, &lt;/b&gt;jest znacznie szybszy i stabilniejszy niz &lt;b&gt;snap-open.&lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2691963304184624077-2487451952137557942?l=przemyslawwroblewski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemyslawwroblewski.blogspot.com/feeds/2487451952137557942/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemyslawwroblewski.blogspot.com/2009/09/linux-ide-aptana-eclipse-netbeans-moze.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default/2487451952137557942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default/2487451952137557942'/><link rel='alternate' type='text/html' href='http://przemyslawwroblewski.blogspot.com/2009/09/linux-ide-aptana-eclipse-netbeans-moze.html' title='Linux IDE: Aptana, Eclipse, Netbeans ? a może coś innego ?'/><author><name>Przemysław Wróblewski</name><uri>http://www.blogger.com/profile/00315640642865740907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_VR-gtLX0f2c/Sh6KouL1sNI/AAAAAAAACq4/qlAk17nfMBg/S220/smea.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_VR-gtLX0f2c/Sq9iJlDd95I/AAAAAAAAD5M/nkVOhx0oHyI/s72-c/gedit+textmate.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2691963304184624077.post-6487253620962139033</id><published>2009-06-30T00:41:00.000-07:00</published><updated>2009-06-30T00:51:07.060-07:00</updated><title type='text'>rcov plugin overwrites its results</title><content type='html'>tak sie dzieje dla zadania rake test:test:rcov, testy funkcjonalne nadpisuja jednostkowe itd...&lt;div&gt;Dlatego dodałem prosty task:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;pre name="code" class="Ruby"&gt;&lt;br /&gt;for test_task in %w(test:units test:functionals test:integration)&lt;br /&gt;  task_name = "rcov:set_proper_output_directory_for_#{test_task.gsub(/(test:)/,'')}".to_sym&lt;br /&gt;  task task_name do |t, args|&lt;br /&gt;    t.name =~ (/set_proper_output_directory_for_(.*)/); test_type=$1&lt;br /&gt;    RcovTestSettings.output_dir = File.expand_path("./coverage/#{test_type}")&lt;br /&gt;  end&lt;br /&gt;  task test_task.to_sym =&gt; task_name &lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;który uruchamia się przed każdym testem i ustawia poprawny katalog gdzie rcov ma zapisywać.&lt;/div&gt;&lt;div&gt;Inne rozwiazanie znalazłem na blogu ale nie udało mi się go uruchomić(nie bawiłem sie nad tym): &lt;/div&gt;&lt;div&gt;&lt;a href="http://programmers-blog.com/2009/06/05/rconv-rails-rake-task-test-test-rcov-overwrites-its-output"&gt;http://programmers-blog.com/2009/06/05/rconv-rails-rake-task-test-test-rcov-overwrites-its-output&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2691963304184624077-6487253620962139033?l=przemyslawwroblewski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemyslawwroblewski.blogspot.com/feeds/6487253620962139033/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemyslawwroblewski.blogspot.com/2009/06/rcov-plugin-overwrites-its-results.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default/6487253620962139033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default/6487253620962139033'/><link rel='alternate' type='text/html' href='http://przemyslawwroblewski.blogspot.com/2009/06/rcov-plugin-overwrites-its-results.html' title='rcov plugin overwrites its results'/><author><name>Przemysław Wróblewski</name><uri>http://www.blogger.com/profile/00315640642865740907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_VR-gtLX0f2c/Sh6KouL1sNI/AAAAAAAACq4/qlAk17nfMBg/S220/smea.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2691963304184624077.post-4538643719481847923</id><published>2009-05-31T04:09:00.000-07:00</published><updated>2009-05-31T04:35:16.444-07:00</updated><title type='text'>Multiple database connections in Rails with tests and fixtures</title><content type='html'>Kolejnym problemem okazało sie wykorzystanie fixturek w testach które miały by działać na różnych bazach.&lt;br /&gt;&lt;br /&gt;Same fixturki można ładnie rozrzucić po różnych katalogach:&lt;br /&gt;&lt;blockquote&gt;fixtures/&lt;br /&gt; import/&lt;br /&gt;&lt;/blockquote&gt;i ładować je przez&lt;br /&gt;&lt;blockquote&gt;fixtures :"import/fixture_name"&lt;/blockquote&gt;jednak domyślnie klasa Fixturek korzysta z ActiveRecord::Base.connection więc cały plan legnie w gruzach.&lt;br /&gt;W tym miejscu na ratunek wychodzi kolejny plugin: use_db&lt;br /&gt;&lt;blockquote&gt;script/plugin install  git://github.com/remi/use_db.git&lt;/blockquote&gt;W modelach zamiast estabilish_connection dajemy:&lt;br /&gt;&lt;blockquote&gt;use_db :prefix =&gt; "import_", :rails_env =&gt; RAILS_ENV.split('_').last&lt;br /&gt;self.abstract_class = true&lt;br /&gt;&lt;/blockquote&gt;Plugin ten nadpisuje domyślne ładowanie fixturek i jeśli znajdzie pasujący model do fixturki który korzysta z use_db to wykorzysta Model.connection zamiast AR::Base.connection do operacji ładowania danych.&lt;br /&gt;&lt;br /&gt;Co do wypełnienia bazy schemą to wykorzystałem loopy_multiple_databases:&lt;br /&gt;&lt;blockquote&gt;RAILS_ENV=import_development rake db:test:load&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;niestety w samych testach nie działa odwoływanie się do fixturek przez&lt;br /&gt;&lt;blockquote&gt;fixture_name(:rekord)&lt;br /&gt;&lt;/blockquote&gt;więc trzeba rekordy wczytywać ręcznie, ale jeszcze nad tym będę pracował.&lt;br /&gt;&lt;br /&gt;Linki:&lt;br /&gt;&lt;a href="http://www.elctech.com/tutorials/using-and-testing-rails-with-multiple-databases"&gt;use_db blog entry&lt;/a&gt;&lt;br /&gt;&lt;a href="http://github.com/remi/use_db/tree/master"&gt;use_db fixed git clone&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2691963304184624077-4538643719481847923?l=przemyslawwroblewski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemyslawwroblewski.blogspot.com/feeds/4538643719481847923/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemyslawwroblewski.blogspot.com/2009/05/multiple-database-connections-in-rails_31.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default/4538643719481847923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default/4538643719481847923'/><link rel='alternate' type='text/html' href='http://przemyslawwroblewski.blogspot.com/2009/05/multiple-database-connections-in-rails_31.html' title='Multiple database connections in Rails with tests and fixtures'/><author><name>Przemysław Wróblewski</name><uri>http://www.blogger.com/profile/00315640642865740907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_VR-gtLX0f2c/Sh6KouL1sNI/AAAAAAAACq4/qlAk17nfMBg/S220/smea.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2691963304184624077.post-1751708783071005339</id><published>2009-05-28T03:39:00.000-07:00</published><updated>2009-05-28T05:53:34.951-07:00</updated><title type='text'>Multiple database connections in Rails</title><content type='html'>w obecnym projekcie wykorzystuje naraz 3 różne bazy danych, dodatkowo ostatni typ jest shardowany - czyli występuje na wielu maszynach.&lt;br /&gt;&lt;br /&gt;O ile dostęp do wielu baz naraz można uzyskać przez definicje w stylu&lt;br /&gt;&lt;blockquote&gt;development:&lt;br /&gt;  &lt;&lt;: *dev_basics&lt;br /&gt;  database: import_sharded&lt;br /&gt;  host: 127.0.0.1&lt;br /&gt;&lt;br /&gt;import_development:&lt;br /&gt;  &lt;&lt;: *dev_basics&lt;br /&gt;  database: import&lt;br /&gt;  host: 127.0.0.1&lt;br /&gt;&lt;/blockquote&gt;a następnie przez stworzenie modeli Proxy:&lt;br /&gt;&lt;blockquote&gt;class ImportProxy &lt; ActiveRecord::Base&lt;br /&gt;  establish_connection "import_#{RAILS_ENV.split('_').last}"&lt;br /&gt;end&lt;/blockquote&gt;o tyle problem pojawia się w migracjach - jak zapewnić aby migracje działały na różnych bazach ?&lt;br /&gt;&lt;br /&gt;Sprawa okazała się trywialna:&lt;br /&gt;&lt;blockquote&gt;class CreateImportOffers &lt; ActiveRecord::Migration&lt;br /&gt;  def self.connection&lt;br /&gt;    ImportProxy.connection&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  def self.up&lt;br /&gt;    create_table :offers do |t|&lt;br /&gt;&lt;/blockquote&gt;wystarczyło nadpisać metode connection.&lt;br /&gt;&lt;br /&gt;Tu jednak sprawa sie nie kończy bo jak pisałem na wstępie mamy to do czynienia z bazami shardowanymi a informacje o przeprowadzponych migracjach są trzymane tylko w 1 miejscu,&lt;br /&gt;czyli jesli serwer S1 wykonal wszystkie migracje - czesc globalnych a czesc lokalnie na swojej bazie , zakładam że główne połączenie jest do bazy wspólnej to serwer S2 już nic nam nie będzie chciał zrobić a jego baza lokalna pozostanie pusta. Odwracając sytuacje gdzie główne połączenie jest na bazie lokalnej to wystąpi konflikt przy migracjach na bazie wspólnej - 1 z serwerów nie będzie wiedział że migracje już zostały wykonane.&lt;br /&gt;&lt;br /&gt;Rozwiązanie ? Może 2 osobne projekty - 1 działający na maszynach shardowanych a 2gi działający na maszynie wspólnej ?&lt;br /&gt;&lt;br /&gt;Taki też był pierwszy pomysł, ale w rzeczywistosci oba projekty różniły by się jedynie katalogiem migracji i plikiem databases.yml - wszystko inne było by w jakiś sposób linkowane.&lt;br /&gt;Bez sensu.&lt;br /&gt;&lt;br /&gt;Naszczescie znalazlem gotowe rozwiązanie tego problemu - plugin &lt;a href="http://playtype.net/past/2008/3/27/multiple_databases_in_rails_without/"&gt;loopy_multiple_databases&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Co to mi dało ?&lt;br /&gt;&lt;br /&gt;Teraz mam możliwosc spearacji migracji per środowisko - osobne podkatalogi w db/migrate, w zależniości od sposobu uruchamiania wykonuje się inny zestaw migracji:&lt;br /&gt;&lt;blockquote&gt;RAILS_ENV=import_development rake db:migrate:up VERSION=20090520143515&lt;br /&gt;RAILS_ENV=development rake db:migrate:up VERSION=20090520113821&lt;/blockquote&gt;domyślne zadanie rake db:migrate zostało nadpisane i powoduje wykonanie migracji na wszystkich zdefiniowanych środowiskach poprzez uruchomienie:&lt;br /&gt;&lt;blockquote&gt;RAILS_ENV=srodowisko rake db:migrate_without_other_databases&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2691963304184624077-1751708783071005339?l=przemyslawwroblewski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemyslawwroblewski.blogspot.com/feeds/1751708783071005339/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemyslawwroblewski.blogspot.com/2009/05/multiple-database-connections-in-rails.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default/1751708783071005339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default/1751708783071005339'/><link rel='alternate' type='text/html' href='http://przemyslawwroblewski.blogspot.com/2009/05/multiple-database-connections-in-rails.html' title='Multiple database connections in Rails'/><author><name>Przemysław Wróblewski</name><uri>http://www.blogger.com/profile/00315640642865740907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_VR-gtLX0f2c/Sh6KouL1sNI/AAAAAAAACq4/qlAk17nfMBg/S220/smea.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2691963304184624077.post-4257810460343192113</id><published>2009-05-19T14:05:00.000-07:00</published><updated>2009-05-28T05:56:36.601-07:00</updated><title type='text'>Rake - multiple task execution / invocation</title><content type='html'>standardowo taski Rake dają się uruchomić tylko raz, ponowne ich wywołanie nic nie daje.&lt;br /&gt;Problem z którym się spotkałem polagał na tym aby móc uruchomić pojedyńczy task z konsoli jak i wykonać serie pojedyńczych tasków z innego zadania rake. Poniższy przykład wszystko wyjaśni:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;task :start do&lt;br /&gt;$queue = Queue.new&lt;br /&gt;$queue &lt;&lt; start_jobs =""&gt; [:working1, :working2] do&lt;br /&gt;puts "start_jobs END"&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;task :working1 do&lt;br /&gt;process_shop(1)&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;task :working2 do&lt;br /&gt;process_shop(2)&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;def process_shop(worker_id)&lt;br /&gt;while true do&lt;br /&gt;  shop_id = $queue.pop(false)&lt;br /&gt;  puts "[#{worker_id}]processing shop: #{shop_id}"&lt;br /&gt;  t = Rake::Task['shop_job']&lt;br /&gt;  t.reenable&lt;br /&gt;  t.invoke(shop_id, worker_id)&lt;br /&gt;  sleep 1&lt;br /&gt;end&lt;br /&gt;rescue&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;task :shop_job, [:shop_id, :worker_id] do &lt;code class="moz-txt-verticalline"&gt;&lt;span class="moz-txt-tag"&gt;|&lt;/span&gt;t, args&lt;span class="moz-txt-tag"&gt;|&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;puts " [#{args.worker_id}]hello from shop_job #{args.shop_id}"&lt;br /&gt;end&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/2691963304184624077-4257810460343192113?l=przemyslawwroblewski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemyslawwroblewski.blogspot.com/feeds/4257810460343192113/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemyslawwroblewski.blogspot.com/2009/05/rake-wielokrotne-uruchamianie-taska-w.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default/4257810460343192113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2691963304184624077/posts/default/4257810460343192113'/><link rel='alternate' type='text/html' href='http://przemyslawwroblewski.blogspot.com/2009/05/rake-wielokrotne-uruchamianie-taska-w.html' title='Rake - multiple task execution / invocation'/><author><name>Przemysław Wróblewski</name><uri>http://www.blogger.com/profile/00315640642865740907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_VR-gtLX0f2c/Sh6KouL1sNI/AAAAAAAACq4/qlAk17nfMBg/S220/smea.jpg'/></author><thr:total>0</thr:total></entry></feed>
