function Compare-Repo {
Param(
[string] $firstlocation = "C:\sourcecodes\ProjectX_ver1",
[string] $secondLocation = "C:\sourcecodes\ProjectX_ver2",
[int] $takeFileNumber =10
)
$fileExtension = @(".cs", ".sln", ".user")
$appToCompare = "C:\Programs\KDiff3\kdiff3.exe"
#
$itemsFirstlocation = gci -recurse -Path $firstlocation |
where { ! $_.PSIsContainer -and $fileExtension -contains $_.Extension.ToLower()}
$itemsFirstlocation = $itemsFirstlocation |
select -first $takeFileNumber
$itemsFirstlocation | foreach {
$fileEnding = $_.FullName.Replace($firstlocation,"");
$firstItem = $_.FullName;
$secondItem = $secondLocation + $fileEnding ;
if(Test-Path($secondItem))
{
Write-Host "Comparing file $firstItem with $secondItem";
& $appToCompare $firstItem $secondItem
#Run compare app
}
}
}
Więcej o KDiff3 można poczytać w obszernej dokumentacji.
sobota, 5 stycznia 2013
Porównanie 2 repozytoriów
Czy natrafiłeś na taka sytuacje, ze musiałeś porównać 2 repozytoria??
Mi parę razy się tak zdarzyło, a dokładnie musiałem porównać 2 wersje tego samego projektu. Przygotowałem skrypt, który pobiera z pierwszego repozytorium wszystkie pliki .cs, .sln i .user i porównuje je z plikiem w drugim repozytorium. Jako aplikacja do porównania plików wybrałem KDiff3. Poniżej przedstawiam skrypt w PowerShell:
niedziela, 30 grudnia 2012
Konwersja z bmp na jpeg w PowerShell
Kiedy masz dużo plików graficznych w bmp, warto jest zastanowić się nad zmiana formatu na jpeg. Pliki mają mniejszy rozmiar, a nie tracą tak bardzo na kompresji. Napisałem skrypt do konwertowania plików z jednego formatu na drugi. Wystarczy w kodzie wyselekcjonować pliki, które są bmp i w potoku wpisać nazwę funkcji:
gci -filter *.bmp | Convert-JpegPoniżej cała implementacja funkcji zamieniająca bmp na jpeg:
[Reflection.Assembly]::LoadWithPartialName("System.Drawing") | Out-Null
function Convert-Jpeg {
[CmdletBinding()]
Param(
[Parameter(Mandatory=$True,ValueFromPipeline=$True,ValueFromPipelinebyPropertyName=$True)]
[System.io.FileInfo] $filepath
)
BEGIN {
Write-Host "Converting Bitmaps to Jpegs"
$fileConvertedCounter= 0
}
PROCESS{
$filePathFullName = $filepath.FullName
if( Test-Path $filePathFullName)
{
$image = [System.Drawing.Image]::FromFile($filepath.FullName)
$bitmap = new-object System.Drawing.Bitmap($image)
$newFileName = ($filePathFullName -replace '([^.]).bmp','$1') + ".jpg"
$bitmap.Save($newFileName, ([system.drawing.imaging.imageformat]::jpeg))
$fileConvertedCounter++
Write-Host "Converted $filePathFullName into $newFileName"
$bitmap.Dispose()
$image.Dispose()
}else {
Write-Host "Path not found."
}
}
END{
Write-Host "It was $fileConvertedCounter converted files"
}
}
Ugly strings
Mam super pomysł jak ograniczyć pisanie kodu z duża ilością rozrzuconych tekstów. Wystarczy ustawić kolor czcionki w tekst edytorze na string tak, aby od razu tekst rzucał się w oczy :)
Efekt takiej zmiany wygląda okropnie :)
Taka czcionka wymusza na użytkowniku tworzenie regionów ze stałymi stringami w jednym miejscu albo wydzielenie tego tekstu do osobnego zasobu (klasy albo resourca).
Efekt takiej zmiany wygląda okropnie :)
Taka czcionka wymusza na użytkowniku tworzenie regionów ze stałymi stringami w jednym miejscu albo wydzielenie tego tekstu do osobnego zasobu (klasy albo resourca).
sobota, 29 grudnia 2012
Kopiowania kodu bez svn
Jeżeli masz kod źródłowy, który jest podpięty pod system kontroli wersji (svn) to ciężko jest skopiować tylko sam kod bez plików do kontroli wersji. Za pomocą PowerShell można to osiągnąć znacznie szybciej niż ręcznie wykonując kopiowanie .
Wywołanie kopiowania plików wygląda następująco:
function Copy-File-Exclude-Svn {
Param(
[string] $sourceLocation=".",
[string] $destinationClocation=".\No_SVN"
)
$files = gci -force -exclude *.svn-base,".svn",".gitignore" $sourceLocation | ? { $_.PSIsContainer -and $_.Length -lt 230 } | gci -recurse
$files | foreach {
$fileEnding = $_.FullName.Replace($sourceLocation, "");
$firstItem = $_.FullName;
$secondItem = $destinationClocation + $fileEnding ;
Write-Host "Copy from $firstItem to $secondItem";
Copy-Item $firstItem $secondItem;
}
}
Wywołanie kopiowania plików wygląda następująco:
Copy-File-Exclude-Svn -sourceLocation "C:\Source\Project1" -destinationClocation ""C:\Source\Project1_without_svn"
niedziela, 16 grudnia 2012
Dokument w prezentacji
--Co się stanie jak połączysz dokument tekstowy ze slajdem w swojej prezentacji??
--Powstanie SlideUment :D
Taki suchar.
Zapewne zapytasz co to takiego. Pozwól, że przybliżę ci ten problem. Siedzisz na prezentacji w ostatnim rzędzie. Prowadzący zaczyna mówić ciekawie, więc jesteś zainteresowany prezentacją. Wszystko jest ok, aż w pewnym momencie prezenter przełącza na nowy slajd, a w twoich oczach pojawia się 'wielki' dokument mówiący o wszystkich najważniejszych rzeczach, ale kompletnie nieczytelnie dla ciebie. Mnie w takich momentach ogarnia frustracja i więcej nie chce uczestniczyć w takich prezentacji.
Poniżej przedstawiam 3 przykładowe slideumenty:
Słowo Slideument oznacza dokument przedstawiony w formie slidu w prezentacji (postać hybrydy). Pojęcie to zostało opisane przez Garr Reynolds na stronie Presentation Zen. Dokument i prezentacja mają inne cele, dlatego powinny one być inaczej przedstawione.
Nie jestem specjalistą od dekompozycji prezentacji, ale jeżeli mógłbym ci doradzić w uniknięciu slideumentu to po prostu przedstaw najważniejsze kwestie i zamieść odnośnik do dokumentu na końcu prezentacji. Oprócz tego możesz też rozdzielić cały slideument na klika lepiej przedstawionych slidów.
--Powstanie SlideUment :D
Taki suchar.
Zapewne zapytasz co to takiego. Pozwól, że przybliżę ci ten problem. Siedzisz na prezentacji w ostatnim rzędzie. Prowadzący zaczyna mówić ciekawie, więc jesteś zainteresowany prezentacją. Wszystko jest ok, aż w pewnym momencie prezenter przełącza na nowy slajd, a w twoich oczach pojawia się 'wielki' dokument mówiący o wszystkich najważniejszych rzeczach, ale kompletnie nieczytelnie dla ciebie. Mnie w takich momentach ogarnia frustracja i więcej nie chce uczestniczyć w takich prezentacji.
Poniżej przedstawiam 3 przykładowe slideumenty:
Słowo Slideument oznacza dokument przedstawiony w formie slidu w prezentacji (postać hybrydy). Pojęcie to zostało opisane przez Garr Reynolds na stronie Presentation Zen. Dokument i prezentacja mają inne cele, dlatego powinny one być inaczej przedstawione.
Nie jestem specjalistą od dekompozycji prezentacji, ale jeżeli mógłbym ci doradzić w uniknięciu slideumentu to po prostu przedstaw najważniejsze kwestie i zamieść odnośnik do dokumentu na końcu prezentacji. Oprócz tego możesz też rozdzielić cały slideument na klika lepiej przedstawionych slidów.
piątek, 14 grudnia 2012
Dobre filmy
Czy kiedykolwiek zdarzyło ci się, że oglądałeś film w kinie, na który polecił ci kolega lub trailer był fajny i po parunastu minutach (nie liczę czasu z reklamami przed filmem) okazało się, że jest to kompletny badziew. Ja wtedy siedzę spokojnie i mówię do sobie, że „już zapłaciłem i poświeciłem czas na dojazd do kino, to jeszcze tą godzinę wytrzymam”. Jeżeli miałeś taką sytuacje jak ja, to może ci pomóc mechanizmu zaimplementowany na portalu filmweb. Teraz oglądam te dobre filmy, wygenerowane z rekomendacji.
Ale jakie są dobre, a jakie słabe filmy? Każda osoba ma swój własny gust filmów. Mechanizmem do wyliczania scoringu filmu nazywa się Gustomierz. Korzysta z wielu zmiennych, takich jak gatunek, głosy innych użytkowników czy twórcy filmu. Model do wyliczenia najlepszych filmów działa na bazie algorytmu K-najbliższych sąsiadów.
I pamiętaj. Szanuj swój czas jaki poświęcasz na oglądanie filmów.
Ale jakie są dobre, a jakie słabe filmy? Każda osoba ma swój własny gust filmów. Mechanizmem do wyliczania scoringu filmu nazywa się Gustomierz. Korzysta z wielu zmiennych, takich jak gatunek, głosy innych użytkowników czy twórcy filmu. Model do wyliczenia najlepszych filmów działa na bazie algorytmu K-najbliższych sąsiadów.
I pamiętaj. Szanuj swój czas jaki poświęcasz na oglądanie filmów.
czwartek, 13 grudnia 2012
Achievements w Visual Studio
Gry, aby były bardziej atrakcyjniejsze dla gracza, wprowadziło się termin achievementy, czyli osiągnięcia. Za każdą wykonaną specjalną rzecz, odblokowuje się pewne osiągnięcie. Później taki gracz może pochwalić się takim osiągnięciem przed kolegami czy na Facebooku. Osiągnięcia mają już minecraft, WoW czy Team Fortress (razem ze statystyką osiągnięć ). Możesz też zdobywać osiągnięcia na XBox360.
Mimo tego, że kilka lat temu każdy potępiał ten pomysł, dziś dla większości graczy stanowią nieodłączną część zabawy. Do tego stopnia, że niektórzy z nich katują godzinami tytuły, na które nigdy by nawet nie spojrzeli, a wszystko po to, aby być na wyższym poziomie w rankingu.
Takie osiągnięcia są też dla Visual Studio. Powstał specjalny plugin do VS. Tak jak w grach komputerowych, za wykonaną czynność dostajemy osiągnięcie. VS Achievements nie tylko bawi, ale również uczy. Wykonując pewne osiągnięcia, możesz się nauczyć pewnych narzędzi, technologii czy sposobów pisania kodu. Jest tez ranking użytkowników VS.
Achievementy w grach wprowadzono po to, aby w prosty sposób mogły wydłużyć spędzanie czasu wolnego przed grą i zwiększyły więzi między graczem a grą. To samo dzieje się z VS. Dodatek do VS2012 można pobrać tutaj.
Nie mam wielkich osiągnięć, ale raz na jakiś czas będę się starał, aby wykonać jakieś 'głupie' osiągnięcie. Poniżej jest moja statystyka.
Takie osiągnięcia są też dla Visual Studio. Powstał specjalny plugin do VS. Tak jak w grach komputerowych, za wykonaną czynność dostajemy osiągnięcie. VS Achievements nie tylko bawi, ale również uczy. Wykonując pewne osiągnięcia, możesz się nauczyć pewnych narzędzi, technologii czy sposobów pisania kodu. Jest tez ranking użytkowników VS.
Achievementy w grach wprowadzono po to, aby w prosty sposób mogły wydłużyć spędzanie czasu wolnego przed grą i zwiększyły więzi między graczem a grą. To samo dzieje się z VS. Dodatek do VS2012 można pobrać tutaj.
Nie mam wielkich osiągnięć, ale raz na jakiś czas będę się starał, aby wykonać jakieś 'głupie' osiągnięcie. Poniżej jest moja statystyka.
Subskrybuj:
Posty (Atom)






