poniedziałek, 23 stycznia 2012

OSX Lion, apache bench "Connection reset by peer"

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->JRUBY. Naturalnym dla mnie narzędziem do takich testów jest ab z pakietu apache utils.

Jakie było moje zdziwienie kiedy zamiast czasu otrzymałem błąd:

$ ab.old -n100 -c40 http://localhost:3000/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)...Send request failed!
Send request failed!
Send request failed!
apr_socket_recv: Connection reset by peer (54)
Total of 3 requests completed


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 odpowiedz na superuser. Czemu wcześniej na to nie trafiłem? A kto by podejrzewał ab...

Okazało się że ab dostarczany z osx ma ten błąd i należy przekompliować ab z źródeł. no comment

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

poniedziałek, 19 września 2011

vimdiff on directories

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.
Do teraz, bo właśnie znalazłem plugin DirDiff:

http://www.vim.org/scripts/script.php?script_id=102

wystarczy wpisać:

:DirDiff katalog1 katalog2

a oto efekt:

niedziela, 24 lipca 2011

XBMC match movie title based on filename

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"
Z poziomu interfejsu XBMC znalezienie takich nieprawidłowości było niemożliwe.

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.

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:


require 'rubygems'
require 'sqlite3'

STOPWORDS = [ "the", "ii", "iii", "iv", "v", "vi", "3d"]
WHITELIST = YAML.load_file(ENV['HOME'] + '/bin/xbmc-verify.yml')

def detect_movie(title, path)
words = title.downcase.gsub(/[^a-z0-9]+/, " ").gsub(/ +/, " ").split(" ")
words.delete_if { |w| STOPWORDS.include? w }
dir = path.downcase
included = words.collect { |w| dir.include?(w) ? true : nil }.compact
included.length == words.length
end

db = SQLite3::Database.new ENV['HOME'] + "/.xbmc/userdata/Database/MyVideos34.db"

db.execute("select c00, c16, strPath from movieview" ) do |row|
next if WHITELIST.include? File.basename(row[2])
unless detect_movie(row[0], row[2]) or detect_movie(row[1], row[2])
movie_title = row[1]
movie_title << " (#{row[0]})" if row[0] != row[1]
puts "!!! #{movie_title} - #{row[2]}"
end
end

sobota, 28 maja 2011

Windows 7

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.

Korzystając z opisu Kevina 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...

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ąć.

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.
A więc standardowa akceptacja regulaminu, czy robie upgrade czy instaluje od nowa etc.
Wybrałem nową instalację i moim oczom ukazała się następująca plansza:



Gwoli wyjaśnienia, mam w komputerze 9 dysków - system uruchamiam z WD Raptora 74GB,
na którym mam ubuntu i windowsa viste - domyśliłem się że to dysk 4.

Pytanie która partycja to Vista a która Ubuntu?

"Drogi" microsofcie - czy tak trudno było w polu nazwa dać nazwę producenta i model, a w typie wyświetlić typ partycji (ntfs, linux, etc) ?

Cóż - zagadka pozostanie niewyjaśniona bo szkoda mi stracić swoje dane, ja mam już dosyć, eksperymentował dalej będę na dostarczonych pctach.

niedziela, 15 maja 2011

ubuntu 11.04 so which tab is active?


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:

lowang@lowang-laptop:~$ cat .gtkrc-2.0 
style "gnome_terminal_notebook"
{
fg[NORMAL] = "#00ff00"
}

widget "*TerminalWindow.*.GtkNotebook*" style "gnome_terminal_notebook"


po tym tylko restart aplikacji i zmiana powinna być widoczna.

na podstawie:

http://askubuntu.com/questions/40332/how-to-make-selected-tab-in-terminal-more-prominent

Ubuntu 11.04 Natty Narwhal

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.

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ę.
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 Alt-F2 i compiz --replace rozwiązują chwilowo problem ale trzeba pamiętac aby raz na dzień to zrobić.

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.

piątek, 24 września 2010

Blueconnect Huawei E122 w Ubuntu 10.04

Po podłączeniu modemu gsm zazwyczaj wystarczy zrobic eject /dev/sr1
niestety huawei jest na to odporny :(

Aby go odpalic wystarczy:

$ sudo apt-get install usb-modeswitch usb-modeswitch-data
$ sudo usb_modeswitch -v 12d1 -p 1001 -H 1

teraz networkmanager juz widzi modem, w dmesgu otrzymamy potwierdzenie tego faktu:

[6020235.400753] usb 2-3: USB disconnect, address 28
[6020239.730122] usb 2-3: new high speed USB device using ehci_hcd and address 29
[6020239.881162] usb 2-3: config 1 interface 1 altsetting 0 bulk endpoint 0x85 has invalid maxpacket 256
[6020239.881174] usb 2-3: config 1 interface 1 altsetting 0 bulk endpoint 0x5 has invalid maxpacket 256
[6020239.881183] usb 2-3: config 1 interface 2 altsetting 0 bulk endpoint 0x86 has invalid maxpacket 256
[6020239.881191] usb 2-3: config 1 interface 2 altsetting 0 bulk endpoint 0x6 has invalid maxpacket 256
[6020239.883626] option 2-3:1.0: GSM modem (1-port) converter detected
[6020239.883820] usb 2-3: GSM modem (1-port) converter now attached to ttyUSB0
[6020239.884534] option 2-3:1.1: GSM modem (1-port) converter detected
[6020239.884700] usb 2-3: GSM modem (1-port) converter now attached to ttyUSB1
[6020239.885937] option 2-3:1.2: GSM modem (1-port) converter detected
[6020239.886088] usb 2-3: GSM modem (1-port) converter now attached to ttyUSB2
[6020239.887020] scsi69 : usb-storage 2-3:1.3
[6020239.887960] scsi70 : usb-storage 2-3:1.4
[6020240.883984] scsi 69:0:0:0: CD-ROM HUAWEI Mass Storage 2.31 PQ: 0 ANSI: 2
[6020240.883995] scsi 70:0:0:0: Direct-Access HUAWEI SD Storage 2.31 PQ: 0 ANSI: 2
[6020240.885180] sd 70:0:0:0: Attached scsi generic sg2 type 0
[6020240.903658] sd 70:0:0:0: [sdb] Attached SCSI removable disk
[6020240.904152] sr1: scsi-1 drive
[6020240.904317] sr 69:0:0:0: Attached scsi CD-ROM sr1
[6020240.904421] sr 69:0:0:0: Attached scsi generic sg3 type 5
[6020251.580164] sr1: CDROM (ioctl) error, command: Xpwrite, Read disk info 51 00 00 00 00 00 00 00 02 00
[6020251.580193] sr: Sense Key : Hardware Error [current]
[6020251.580203] sr: Add. Sense: No additional sense information