Nie mogę w to uwierzyć, ale stało się. PowerShell jest na MAC'a.
Instalkę i src można naleźć na github'ie.
Jak widać, nowa wersja PS 6.0.0 wprowadza rewolucje w świecie Linux'a.
Wpisując Get-Command można porać wszystkie komendy jakie są dostępne, a jest ich na prawdę sporo:
Przez jakiś czas nie pisałem bo urodziła mi się fantastyczna córka, a oprócz tego większość czasu spędzałem na MAC'u. Teraz kiedy PS jest na OSX'a to może pobawię się :)
arek on software
sobota, 20 sierpnia 2016
czwartek, 3 marca 2016
Szablon do sql kursora
Pewne rzeczy nie można przeskoczyć - takie jak kursor w sql server. Często szukam przykładów z użyciem kursora, więc postanowiłem zamieścić szablon.
DECLARE @v_name NVARCHAR(MAX) DECLARE v_cursor CURSOR LOCAL STATIC FORWARD_ONLY READ_ONLY FOR select * from .... OPEN v_cursor WHILE 1=1 BEGIN FETCH NEXT FROM v_cursor INTO @v_name IF @@fetch_status = 0 BEGIN Begin TRY ..... End TRY Begin CATCH PRINT Error_Message() BREAK End CATCH END ELSE BREAK End CLOSE v_cursor DEALLOCATE v_cursorW SSMS przydałby się edytor snippetów. Może kiedyś będzie Resharper dla t-SQL'a :)
czwartek, 4 lutego 2016
IT w filmach
Dzisiaj oglądałem prezentację o tym jak informatyka jest przedstawiana w filmach.
A tutaj przegląd filmów:
Moją ulubioną sceną z CSI jest, gdy Pani detektyw na szybko stworzy interfejs GUI w VB do śledzenia adresu IP należącego do zabójcy:
Mój przyjaciel opowiadał mi, że jak dzwoni do niego HRowiec to używa wszystkich znanych mu słów związanych z programowaniem i zarządzaniem projektem ( nawet tych, których znaczenia nie zna), aby wyjść na bardzo dobrego specjalistę i bardzo często to działa :)
A tutaj przegląd filmów:
Moją ulubioną sceną z CSI jest, gdy Pani detektyw na szybko stworzy interfejs GUI w VB do śledzenia adresu IP należącego do zabójcy:
Mój przyjaciel opowiadał mi, że jak dzwoni do niego HRowiec to używa wszystkich znanych mu słów związanych z programowaniem i zarządzaniem projektem ( nawet tych, których znaczenia nie zna), aby wyjść na bardzo dobrego specjalistę i bardzo często to działa :)
piątek, 29 stycznia 2016
Liczenie w SQL Server za pomocą CTE i ROW_NUMBER
Czasami proste rzeczy są lepsze, ale żeby te proste rzeczy znaleźć to potrzeba czasu.
Aby policzyć od 1 do 10000 to będziemy mogli wykorzystać pseudorekurencja, która opisałem wcześniej na blogu.
Aby policzyć od 1 do 10000 to będziemy mogli wykorzystać pseudorekurencja, która opisałem wcześniej na blogu.
with cte (row) as ( SELECT 1 UNION all SELECT c.row+1 FROM cte c where c.row < 10000 ) select * from cte OPTION (MAXRECURSION 10000)Ale wykorzystanie funkcji ROW_NUMBER jest dużo lepszym sposobem:
SELECT TOP (10000) ROW_NUMBER() OVER (ORDER BY s1.[object_id]) as row FROM sys.all_objects AS s1 CROSS JOIN sys.all_objects AS s2
środa, 27 stycznia 2016
Aliasy w GIT
Aliasy w GIT to fantastyczne narzędzie upraszczające pracę.
Parę aliasów stworzyłem i chciałbym się z Tobą nimi podzielić.
Kod z aliasami jest zamieszczony na github'ie.
Żeby skorzystać z tych aliasów to będziesz musiał zmodyfikować configurację.
Jeżeli chcesz, żeby w czasie otwartego programu atom można było pisać w konsoli to usuń parametr wait.
Na Windowsie mam inny tool. Edytor zawsze możemy zmienić przez modyfikację pliku
Możesz sciągnąć kod źródłowy aliasów za pomocą gita uruchamiająć w katalogu PathToRepos taką komendę:
Jak zapiszesz ten plik to możesz zobaczyć jakie aliasy są zdefiniowane poprzez komendę aliasesd:
Poniżej zamieszczam krótki opis niektórych komend. Poniższe komendy będę przedstawiał na sklonowanym repo z github.com/fsharp/fsharp.
Szybkie dodanie i spuszowanie zmian. ACP to skrót od Add, Commit i Push.
Wyświetl ścieżkę w której repo. zostało stworzone.
Mam nadzieję, że aliasy się przydadzą. Ja najczęściej korzystam z acp.
Parę aliasów stworzyłem i chciałbym się z Tobą nimi podzielić.
Kod z aliasami jest zamieszczony na github'ie.
Żeby skorzystać z tych aliasów to będziesz musiał zmodyfikować configurację.
git config --global --editDobrze jest zmienić edytor w git. Ja korzystam z atoma. Jak też masz atoma to możesz go używać pisząc taką komendę:
git config --global core.editor "atom --wait"Przykład pobrany stąd.
Jeżeli chcesz, żeby w czasie otwartego programu atom można było pisać w konsoli to usuń parametr wait.
Na Windowsie mam inny tool. Edytor zawsze możemy zmienić przez modyfikację pliku
[core] editor = \"c:/program files (x86)/Notepad++/notepad++.exe\" -multiInst -nosessionW pliku gitconfig dodaj ścieżkę do pliku z aliasami.
[include] path = /PathToRepos/git_config/gitaliasJeżeli chcesz sprawdzić czy ścieżka jest skonfigurowana to napisz w konsoli:
git config --global include.pathPod ścieżką /PathToRepos/git_config/ masz plik gitalias, który zawiera wszystkie aliasy.
Możesz sciągnąć kod źródłowy aliasów za pomocą gita uruchamiająć w katalogu PathToRepos taką komendę:
git clone https://github.com/arekbee/git_config
Jak zapiszesz ten plik to możesz zobaczyć jakie aliasy są zdefiniowane poprzez komendę aliasesd:
git aliasesAby zobaczyć definicje aliasów wystarczy dopisać literkę d do poprzedniego wywołania
git aliasesd
Poniżej zamieszczam krótki opis niektórych komend. Poniższe komendy będę przedstawiał na sklonowanym repo z github.com/fsharp/fsharp.
Szybkie dodanie i spuszowanie zmian. ACP to skrót od Add, Commit i Push.
git acp "message"Ściągnięcie kodu źródłowego, ale bez folderu .git
git download https://github.com/arekbee/git_config.gitPobranie autorów kodu z informacjami o liczbie commitów:
git authors | head -10Kiedy będziesz refaktoryzował kod i nie będziesz wiedział od czego zacząć to może powinieneś poszukać najczęściej modyfikowane pliki.
git churnJeżeli chcesz usunąć wszystkie niezatwierdzone zmiany i niewersjonowane pliki to napisz:
git clean-allSzukanie nazwy plików, które zawierają dany ciąg znaków
git find-file ".exe"Wyświetla historię commitów
git histJeżeli napiszesz git histd to uzyskasz historię commitów z wiadomościami.
Wyświetl ścieżkę w której repo. zostało stworzone.
git rootJeżeli chcesz wyświetlić jakieś poliki, które nie zostaną dodane do repo (bo wzorzec w .gitignore jest spełniony) to wywołaj poniższą komendę:
git ls-ignoreDodać submodule (git externalne repo.)
git siurPokaż wszystkie branche które nie zostały zmergowane:
git unmerged-branchesStwórz plik z grafem commitów
git graphviz -n10 > graph.dot graphviz\dot.exe -Tpng graph.dot -o graph.pngTutaj jeszcze będę musiał popracować. Jak na razie wygląda to tak:
Mam nadzieję, że aliasy się przydadzą. Ja najczęściej korzystam z acp.
piątek, 18 grudnia 2015
Benchmarki z webowych frameworków
Miesiąc temu wyszła 11 runda porównań frameworków webowych pod względem szybkości działania. Teraz już wiem dlaczego (dla celów wydajnościowych) wybiera się java nad c# oraz dlaczego niektóre projekty mają w back-end jvm, a od strony klienckiej jest .NET.
Wyselekcjonowałem tylko te frameworki, które zostały napisane w java i c#.
Wyniki są następujące:
Możesz sam wyselekcjonować te informacje jakie Cię interesują wchodząc na ten link.
Zastanawia się dlaczego Microsoft nie ma na celu zrobienia oddzielnej super szybkiej wersji aspnet'a dla celów komercyjnych. Pewnie wyrzuci się masę funkcjonalności związanymi z bezpieczeństwem, ale trudno.
Zawsze mi mówiono, że najlepsze frameworki powstają w środowiskach otwartych, tam gdzie za daną technologią stoją wielkie firmy - np. java i Oracle, go i google, c++ i producenci gier, objective-c i Apple, php i wikipedia, js i wszystkie strony :)
Wyselekcjonowałem tylko te frameworki, które zostały napisane w java i c#.
Wyniki są następujące:
Możesz sam wyselekcjonować te informacje jakie Cię interesują wchodząc na ten link.
Zastanawia się dlaczego Microsoft nie ma na celu zrobienia oddzielnej super szybkiej wersji aspnet'a dla celów komercyjnych. Pewnie wyrzuci się masę funkcjonalności związanymi z bezpieczeństwem, ale trudno.
Zawsze mi mówiono, że najlepsze frameworki powstają w środowiskach otwartych, tam gdzie za daną technologią stoją wielkie firmy - np. java i Oracle, go i google, c++ i producenci gier, objective-c i Apple, php i wikipedia, js i wszystkie strony :)
środa, 16 grudnia 2015
Dekompozycja projektu w R
Robiłem prezentacje i zastanawiałem się jak można zapisać cały projekt. Szukałem po sieci jakiś dobrych praktyk do dekompozycji plików. Ja wykombinowałem podział całego projektu na kilka plików:
Co w tych plikach jest? Zaczynając od początku:
Install.r - instalacja pakietów (ten skrypt wykonujemy tylko raz, aby pobrać paczki)
Functions.r - wszystkie funkcje
Load.r - ładowanie pakietów oraz przygotowywanie danych do prezentacji
Presentation.rpres - warstwa prezentacji, równie dobrze możne być to plik w Rmd czy z użyciem shiny (powód istnienia tego pliku jest TYLKO wyświetlanie tych danych jakie chcemy przedstawić, nie ma logiki biznesowej).
custom.css - customizacja warstwy prezentacji, czyli overridowane i dodatkowe css'y
I na końcu w folderze figures mam wszystkie zdjęcia.
Prezentacja o najpopularniejszych kryzysach ekonomicznych nie jest skończona. Jeszcze dużo chciałoby się dodać. Zaletą rpres jest to, że za każdym razem możemy mieć aktualne dane na prezentacji.
Poniżej rezultat wygenerowanej prezentacji:
Co w tych plikach jest? Zaczynając od początku:
Install.r - instalacja pakietów (ten skrypt wykonujemy tylko raz, aby pobrać paczki)
Functions.r - wszystkie funkcje
Load.r - ładowanie pakietów oraz przygotowywanie danych do prezentacji
Presentation.rpres - warstwa prezentacji, równie dobrze możne być to plik w Rmd czy z użyciem shiny (powód istnienia tego pliku jest TYLKO wyświetlanie tych danych jakie chcemy przedstawić, nie ma logiki biznesowej).
custom.css - customizacja warstwy prezentacji, czyli overridowane i dodatkowe css'y
I na końcu w folderze figures mam wszystkie zdjęcia.
Prezentacja o najpopularniejszych kryzysach ekonomicznych nie jest skończona. Jeszcze dużo chciałoby się dodać. Zaletą rpres jest to, że za każdym razem możemy mieć aktualne dane na prezentacji.
Poniżej rezultat wygenerowanej prezentacji:
Subskrybuj:
Posty (Atom)