Przez proxy z konsoli

Czasem zachodzi potrzeba połączenia się ze stroną internetową z poziomu konsoli windows (np. przy aktualizacji gemów w Ruby). Co zrobić, jeśli jesteśmy zmuszeni korzystać z proxy? Sposobów jest kilka, najprostszy chyba ten: ustawić zmienną środowiskową http_proxy:

set http_proxy=http://user:haslo@adres.serwera.proxy:port

Wyłącza się to poprzez

set http_proxy=

Można też rozbić wpis na kilka:

set http_proxy=http://adres.serwera.proxy:port
set http_proxy_user=user
set http_proxy_pass=haslo

Dodaj komentarz

And i &&

W przejętej do utrzymania aplikacji napisanej w PHP zauważyłem, że podczas testowania warunków if() zamiast używania operatorów && i || stosowano and i or. Ponieważ ja zawsze używałem tych pierwszych postanowiłem sprawdzić czym to się różni. Po lekturze dokumentacji i sieci można powiedzieć, że sprawa kręci się wokół dwóch rzeczy: kolejność operatorów (operator precedence) i short-circuit evaluation. To drugie nie wiem jak ładnie przetłumaczyć, ale chodzi o jak najszybsze zakończenie sprawdzania warunków true/false – to znaczy kiedy silnik PHP uzna, że zna już odpowiedź, to nie sprawdza pozostałych warunków.

Ma to miejsce kiedy:

  • pierwsza część warunku and zwraca false – bo od razu wiadomo, że cały warunek zwróci false
  • pierwsza część warunku or zwraca wartość true – bo od razu wiadomo, że cały warunek zwróci true

Czytaj resztę wpisu »

Dodaj komentarz

Otwieranie załączników

Zdarza się, że podczas ściągania dokumentów z sieci (doc, xls, csv, …) lub np. otwierania załączników w Outlooku niechcący odznaczymy pole “Zawsze pytaj przed otwarciem pliku tego typu”. I szlag potem nas trafia, bo nie możemy znaleźć jak to przywrócić.

Przekopanie całych menu opcji, ustawień i preferencji zazwyczaj nic nie daje. Najlepiej od razu iść do miejsca, gdzie i tak jakaś opcja by grzebała.

Otwórz okno Eksploratora Windows, jeśli nie masz jakiegoś na wierzchu. Z menu wybierz Narzędzia -> Opcje folderów… a potem zakładkę “Typy plików”.

W oknie “Zarejestrowane typy plików” wybierz interesujące Cię rozszerzenie. Ja mam najczęściej problem przy plikach Excela, to szukam XLS. Po podświetleniu rozszerzenia powinien pokazać się przycisk “Zaawansowane”. Klik. Zaznacz pole “Potwierdź otwarcie po pobraniu” i pozamykaj okna klikając wszystkie “OK”.

Voila.

Dodaj komentarz

Case sensitive REPLACE

Kolejne pytanie: jak wykonać REPLACE w SQL Serverze, ale tak żeby zamieniało będąc wrażliwym na wielkość znaków? Czyli coś w stylu:

REPLACE(kolumna, ‘mars’, ‘Snickers’) – źle
REPLACE(kolumna, ‘Mars’, ‘Snickers’) – dobrze

Funkcja REPLACE dokonuje porównania stringów na podstawie parametru COLLATION bazy danych lub kolumny. Aby zmienić to zachowanie najprościej lokalnie wykorzystać COLLATE.
Czytaj resztę wpisu »

Dodaj komentarz

Dopełnianie zerami

Kolejne zadanie bojowe: do liczby z jakiejś kolumny dodać np. zera – ale albo na początku, albo na końcu. I żeby jeszcze była stała długość tak powstałej wartości, czyli np. dla liczby 12 dopełniać trzema zerami, ale dla 142 już tylko dwoma. Poniżej przykład dla zadanego ciągu 10 znaków.

Na szybko można rozwiązać to tak:
- dla dopełnienia ciągu z lewej strony
SELECT RIGHT(‘0000000000′+ CAST(kolumna AS VARCHAR(10)), 10)

Doklejamy na początek 10 zer, po czym bierzemy dziesięć ostatnich znaków.

- dla dopełnienia ciągu z prawej strony
SELECT LEFT(CAST(kolumna AS VARCHAR(10)) + ‘0000000000′, 10)

Tak samo – doklejamy 10 zer, tyle że na końcu i bierzemy pierwsze dziesięć znaków.

Dodaj komentarz

Połącz wiersze w jeden

Zadanie bojowe: w T-SQLu połączyć wynik kilku wierszy w jeden. Najprościej odpowiada na ten temat np. ASP FAQ, a rozszerza go przywoływany tam post z grupy dyskusyjnej microsoft.public.sqlserver.programming.

Krótko:
- tworzysz długą zmienną (n)varchar
- robisz SELECT z tą zmienną
Czytaj resztę wpisu »

Dodaj komentarz

data URI

Przeglądając kod plugina Scienta ZF Debug Bar trafiłem na nieznany mi wcześniej sposób osadzania grafik w kodzie HTML. Ikony są tworzone w locie na podstawie zakodowanego przy użyciu base64 ciągu znaków, np.:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEYSURBVBgZBcHPio5hGAfg6/2+R980k6wmJgsJ5U/ZOAqbSc2GnXOwUg7BESgLUeIQ1GSjLFnMwsKGGg1qxJRmPM97/1zXFAAAAEADdlfZzr26miup2svnelq7d2aYgt3rebl585wN6+K3I1/9fJe7O/uIePP2SypJkiRJ0vMhr55FLCA3zgIAOK9uQ4MS361ZOSX+OrTvkgINSjS/HIvhjxNNFGgQsbSmabohKDNoUGLohsls6BaiQIMSs2FYmnXdUsygQYmumy3Nhi6igwalDEOJEjPKP7CA2aFNK8Bkyy3fdNCg7r9/fW3jgpVJbDmy5+PB2IYp4MXFelQ7izPrhkPHB+P5/PjhD5gCgCenx+VR/dODEwD+A3T7nqbxwf1HAAAAAElFTkSuQmCC

Obrazek można zobaczyć wklejając powyższy kod do paska adresu np. w Firefoksie czy Operze

Jak to działa?
Czytaj resztę wpisu »

Komentarze (1)

Znajdź ostatnie n znaków

Żona zadała mi pytanie w związku z rozwijanym w firmie systemem pisanym w C# i opartym o SQL Server: jakimi sposobami z ciągu znaków np. “kkk/384/d3/a/332″ można wyciągnąć liczby po ostatnim znaku “/”?

Do głowy przychodzą mi dwa rozwiązania:

  • wyszukać ostatnie pojawienie się znaku “/” i odpowiednio wyciąć string
  • zastosować wyrażenie regularne do znalezienia cyfr na końcu ciągu

W przypadku SQL Servera nie ma wbudowanych bibliotek do wyrażeń regularnych. Można napisać własne funkcje wykorzystujące SQLCLR (dla wersji 2005 i 2008) lub OLE (dla wersji 2000) lub skorzystać z istniejących zewnętrznych bibliotek dll (np. xp_pcre). W tym konkretnym przypadku można jednak osiągnąć zamierzony wynik żonglując standardowymi funkcjami T-SQL. Czytaj resztę wpisu »

Dodaj komentarz

IE + getElementById

W spadku po odchodzącym pracowniku dostałem do utrzymania aplikację WWW jego autorstwa. Trafił do mnie nierozwiązany przez niego problem działania jednego formularza. Pod Firefoxem działało bez zarzutu, pod IE nie chciało – podczas zapisu do bazy zamiast przesyłanej wartości wrzucane było ‘undefined’. Samo ustalanie wartości pola odbywało się przez taki kawałek kodu:

function $(id) {
return document.getElementById(id);
}
(...)
<input type="text" id="login" name="login" />

przesyłane parametry przez AJAX:

{login: $('login').value, imie: $('imie').value, nazwisko: $('nazwisko').value}

Problem pojawiał się przy polu login. Na szybko wystarczyło zmienić atrybuty name i id, ale skąd się wziął problem? Czytaj resztę wpisu »

Dodaj komentarz

Zaokrąglanie

Po ostatnich poprawkach w kodzie procedur wyliczających ile kasy należy komu wypłacić odbiorca zwrócił uwagę, że w jego przypadku wychodzą inne wyniki przy zaokrąglaniu do uzgodnionej liczby miejsc po przecinku. Testowanie wyników odbywało się poprzez Accessa i procedury w VBA, co powodowało rozjazd z danymi SQL Servera. Cóż, zaokrąglenia mogą być różne, nie tylko znane wszem i wobec arytmetyczne. Źle tylko, że tak samo nazywająca się funkcja ma różne implementacje w różnych językach – trzeba sprawdzać która z nich akurat jest przyjęta. Czytaj resztę wpisu »

Komentarze (2)

Starsze wpisy »