Uruchamianie aplikacji .NET jako 32-bitowej w 64-bitowym systemie

Kolejna zabawna sytuacja - pewna aplikacja dotNET’owa działała dziwnie na 64-bitowym systemie, a tymczasem na 32-bitowej maszynie ta sama aplikacja działała bez problemów. Jedyna różnica to inne wersje klientów ODBC na tych systemach, które po kilku testach okazały się być przyczyną całego zła. Pojawił się pomysł by odpalić aplikacje na 64 bitowym systemie ale w trybie 32 bit - poniżej krótkie HOWTO jak to osiągnąć: potrzebujemy narzędzia corflags.exe które pozwoli oznaczyć nam binarkę jako 32-bitową, do pobrania tutaj  external link a instrukcja jej użycia tutaj  external link . Instalujemy Windows SDK i zaznaczamy wyłącznie .NET Development Tools w kategorii Developer Tools / Windows Development Tools Odpalamy CMD i w nim CorFlags z lokalizacji: C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin (przynajmniej u mnie): cd C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\ CorFlags.exe c:\sciezka\do\pliku.exe /32BIT+ Tyle - aplikacja uruchomiła się bez problemu jako 32 bitowa i korzystała z 32 bitowego ODBC. ...

2013-10-29 · 1 min · timor

Certyfikaty nazwaSSL na własnym serwerze

Od jakiegoś czasu można kupić w NetArcie certyfikaty SSL, a niedawno zrobili na nie promocję - 15zł za pierwszy rok (za certyfikat na jedną stronkę). Tzw. tanie i dobre. Po wyrobieniu certyfikatu i zapisaniu z panelu klienta mam pliczki: stonka.crt i netart_rootca.crt, które wrzucamy do Apachego, powiedzmy tak: SSLCertificateFile /etc/ssl/certs/stonka.crt SSLCertificateKeyFile /etc/ssl/private/priv.key SSLCACertificateFile /etc/ssl/certs/netart_rootca.crt Certyfikat działa w Chromie ale nie weryfikuje się w Firefoxie i Internet Explorerze. FF wyświetla błąd: sec_error_unknown_issuer - co oznacza brak certyfikatu wystawcy gdzieś w łańcuchu certyfikatów. W FAQ zero jak chodzi o konfigurację certyfikatów na serwerze poza NetArt’em… ...

2013-10-22 · 2 min · timor

Postfix: ciekawy problem z smtpd_delay_reject i permit_sasl_authenticated

Trafił mi się ostatnio ciekawy problem - otóż standardowo przed końcem roku poprawiałem filtry antyspamowe i optymalizowałem konfigurację Postfix’a. Chciałem zmienić domyślną wartość smtpd_delay_reject=yes na smtpd_delay_reject=no by odrzucać spamerów najwcześniej jak to możliwe. I ciekawe kuku, które sobie zrobiłem polegało na tym że sam nie mogłem wysyłać poczty po logowaniu SSL’em… Dostawałem przy tym bardzo wymowną odpowiedź: Oct 8 16:30:39 tyr postfix/smtpd[21039]: NOQUEUE: reject: CONNECT from unknown[67.x.x.x]: 554 5.7.1 <unknown [67.x.x.x]>: Client host rejected: Access denied; proto=SMTP</unknown> Więc wrzuciłem debug_peer_list = 67.x.x.x do main.cf by zobaczyć dokładniej o co biega: ...

2013-10-08 · 2 min · timor

Sprawdzanie zainstalowanej wersji Django

Ten one liner załatwia sprawę: python -c 'import django; print ".".join([str(s) for s in django.VERSION]);'

2013-09-16 · 1 min · timor

Raspberry Pi: pierwsze kroki

Wyprzeć się nie mogę że gadżety działające na Linuksie po prostu mnie kręcą, więc tylko kwestią czasu było aż Pi zawita na moim biurku. Zakupiłem więc model B w drugiej wersji  external link , obudowę z możliwością mocowania VESA  external link , kabelek HDMI  external link , ładowarka z mojej myszy pasowała idealnie (5.05V i 1A) i na początek karta SD klasa 10 4GB. ...

2013-09-13 · 2 min · timor

tor: generowanie milszej nazwy dla hidden service

Chcąc pobawić się tor’em postanowiłem udostępnić jedna z moich stron z wykorzystaniem mechanizmu hidden service. Nie spodobał mi się jedynie sposób generowania nazw, które były mało opisowe - ale najwidoczniej nie mnie jednemu, bo szybko namierzyłem Shallot  external link , który generuje kolejne nazwy aż trafi na pasującą do zadanego regexp’a.

2013-09-09 · 1 min · timor

DFS - sprawdzanie statusu replikacji

Ostatnio zbyt dużo grzebię przy “windach” - ale cóż, czasem trzeba. Ostatnio ustawiałem DFS’a z replikacją dla dwóch sporych zasobów i jedna z rzeczy, o którą się rozbiłem to brak jakiegokolwiek podglądu tej synchronizacji z GUI. Ale znalazłem jedno polecenie, które działa w shellu (choć to się chyba batch tutaj nazywa) od Windows Server 2008 R2: dfsrdiag ReplicationState /member:nazwaservera Polecenie co prawda nie podaje postępu procentowego ale można zobaczyć “czy coś jeszcze się synchronizuje” i czy nie ma żadnych błędów. Jeżeli to polecenie to za mało to można spróbować bardziej gadatliwej wersji: ...

2013-09-04 · 1 min · timor

logrotate: kompresja logów xz

Narzędzia xz-utils dostępne w nowszych systemach korzystają z mocniejszych algorytmów kompresji (jakaś odmiana LZMA, coś w stylu 7zip’a) przy zachowaniu kompatybilności składni poleceń z gzip’em/bzip’em - da się je zatem łatwo zintegrować w obecnych systemach. Ja chciałem wykorzystać xz do kompresji logów, które bywają przydatne ale przez większość czasy tylko zajmują miejsce :simple_smile: W /etc/logrotate.conf dopisujemy: compresscmd /usr/bin/xz uncompresscmd /usr/bin/unxz compressext .xz compressoptions -9T2 compressoptions można nie ustawiać bo domyślnie ma wartość -9 (czyli kompresuj na maxa), mój dodatek (czyli -T2) użyje dwóch wątków procesora gdy już ten mechanizm zostanie zimplementowany (bo na razie nie jest) :simple_smile: ...

2013-07-29 · 1 min · timor

Bezstratna konwersja MKV z DTS do AC3 lub AAC

Na jednym z urządzeń miałem problem z odtworzeniem plików (głównie MKV) z dźwiękiem zakodowanym w DTS. Pomijając że np. na tablecie 6-cio kanały DTS jest mi “niezbędny inaczej” to konwertując go do AAC stereo plik jest po prostu sporo mniejszy. Oczywiście nie zamierzam transkodować ścieżki video i na moje potrzeby mogłem sobie odpuścić zmianę częstotliwości próbkowania. Najprościej wykorzystać pakiet ffmpeg (po nowemu avconv) lub mencoder (choć ten miewał niegdyś problem z poprawnym zapisywaniem wynikowych plików mkv, więc potrzebny jest dodatkowo mkvmerge z pakietu mkvtoolnix). mencoder transkoduje szybciej wykorzystując więcej rdzeniu CPU, ale później potrzebny był drugi przebieg z mkvmerge. ffmpeg jechał na jednym procku nawet z opcją threads ale za to wszystko mogę zrobić jednym poleceniem. ...

2013-07-17 · 1 min · timor

Dodawanie urządzeń SCSI/FC bez restartu serwera

Raz na jakiś czas gdy grzebię przy maciorach muszę “odkryć” nowy volumen FC (lub rzadziej SCSI), który właśnie utworzyłem a restart serwera nie wchodzi w rachubę (zresztą na części systemów nic on nie da). By to zrobić są dwie możliwości: Ręczne wydanie poleceń odkrywających volumeny (na jajkach od 2.6.x) Sprawdzamy jakie mamy karty: ls /sys/class/fc_host/ (wypisze się coś w stylu: host1, host2) Wydajemy do wybranej przez nas karty żądanie wykonania LIP (to się chyba tłumaczy jako loopback initialization) co skutkuje przeskanowaniem szyny FC: ...

2013-07-17 · 1 min · timor