piątek, 31 lipca 2015

Sposób na przeglądanie folderów w powolnej sieci

Jeżeli zdarzyło Ci się, że musiałeś poznać strukturę folderów w sieci, a połączenie było super wolne to, to rozwiązanie spodoba Ci się.
Wpadłem na nie dopiero pod koniec mojego poprzedniego projektu. Potrzebowałem informacji jak wygląda struktura folderów, nie potrzebowałem informacji o plikach, a połączenie było tak powolne, że krew mnie zalewała :)

Z pomocą przyszło do mnie polecenie xcopy:

xcopy /t /e  \\Shared\ c:\toCheck\

To polecenie kopiuje foldery z \\Shared\ do c:\toCheck\.
Działa bardzo szybko bo nie musi przetwarzać plików, a tylko info. o strukturze folderów.

niedziela, 26 lipca 2015

Jednolinijkowiec do czyszczenia projektu

Bierzesz Clean w VS i nie działa?
Nie wszystko usuwasz z binów.
Przyczyn może być wiele,
np. interakcja z inną aplikacją lub jak nasza aplikacja tworzy dodatkowe pliki w folderze bin.
Wtedy musisz usunąć wszystkie pliki w tym folderze.

Tutaj sprawdza się nasz jednolinijkowiec:
$path = "path_to_project"

gci -path $path -Recurse  
 | ? {$_.FullName.Contains("\bin\Debug\") 
   -or $_.FullName.Contains("\bin\Release\") } 
 | Remove-Item​

środa, 22 lipca 2015

Zmapowane dyski sieciowe

Na komputerach zdalnych mam zmapowane dyski sieciowy i czasami muszę przesłać ścieżkę.
Poniższa funkcja w PS zwróci Ci wszystkie zmapowane dyski:

function Get-NetworkDrive([string]$ln = "Z", [switch]$all, [string[]]$computername='.') {
if($all) {
    gwmi  -Class Win32_NetworkConnection  -computername  $computername 
    }
else {
    gwmi  -Class Win32_NetworkConnection  -Filter "LocalName like `'$ln%`'"  -computername $computername 
    }
}

Przykład działania funkcji na komputerze lokalnym wygląda tak:
Get-NetworkDrive P

środa, 15 lipca 2015

ApressOpen

Wydawnictwo Apress udostępniło książki do pobrania w wersji elektronicznej (format PDF, ePub oraz MOBI) za darmo.
Książki można kupić przez ten link:
http://www.apress.com/apressopen
Teraz to trzeba będzie się brać za czytanie :)

wtorek, 14 lipca 2015

Zabijanie zawieszonego serwisu

Zawieszony serwis to zły serwis. Nie można go stopować ani zrestartować.
Jedyne co nam pozostało to ubicie serwisu.

To rozwiązanie znalazłem z tej strony
Właśnie takiego prostego rozwiązania szukałem.

Najpierw wyświetlasz informację o serwisie, który zawiesił się:
sc queryex $service_name$
Zapisujesz identyfikator procesu (PID)

A później wywołujesz komendę do ubijania procesu:
taskkill /f /pid $pid$

niedziela, 12 lipca 2015

Zapytanie w jednej linijce w PS

Mam dla Ciebie szybki trick z PS.
Czasami muszę wysłać zapytanie w SQL w jednej linijce, ale w edytorze mam w wielu linijkach ( dla przejrzystości).
Poniżej jest template jak łatwo można napisać konwerter tekstu wielolinijkowego na tekst jednolinijkowy.

@"
     ...       
                
"@  -replace "`n|`r|\s+", " " | clip 
​

Przykład z SQLem wygląda tak:
@"
   SELECT 
       col1,
       col2,
       col3,
   FROM myTable
   Where 1=1
   Order by col1
                    
                
"@  -replace "`n|`r|\s+", " " | clip 
​

W tajemnicy powiem Ci, że możesz zastosować ten template nie tylko do SQL, ale również do innych języków np. do PowerShella :)

czwartek, 2 lipca 2015

Jestem zachwycony Rką

Zacząłem się uczyć Rkę i jestem zachwycony tym językiem (platformą).
Naprawdę fajne rzeczy można zrobić. Np. do symulowania procesu Wienera

D2_Wiener <- function() {
     dev.new(width = 10, height = 4)
     par(mfrow = c(1, 3), oma = c(0, 0, 2, 0))
     for(i in 1:3) {
         W1 <- cumsum(rnorm(100000))
         W2 <- cumsum(rnorm(100000))
         plot(W1,W2, type= "l", ylab = "", xlab = "")
     }
     mtext("2-dimensional Wiener-processes with no correlation",
     outer = TRUE, cex = 1.5, line = -1)
}​


Kiedy będziemy chcieli dodać skorelowane zmienne to wynik symulacji jest poniżej:
Correlated_Wiener <- function(cor) {
     dev.new(width = 10, height = 4)
     par(mfrow = c(1, 3), oma = c(0, 0, 2, 0))
     for(i in 1:3) {
         W1 <- cumsum(rnorm(100000))
         W2 <- cumsum(rnorm(100000))
         W3 <- cor * W1 + sqrt(1 - cor^2) * W2
         plot(W1, W3, type= "l", ylab = "", xlab = "")
     }
     mtext(paste("2-dimensional Wiener-processes (",cor," correlation)",
     sep = ""), outer = TRUE, cex = 1.5, line = -1)
}




Poniżej zamieszkam ściągi do Rki: