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:

środa, 24 czerwca 2015

8 filmików o high frequency trading

Jestem po lekturach o HFT i jestem zdania, że bardzo trudno jest rozpocząć swoją przygodę z budowaniem infrastruktury do 'walki' na giełdzie. Co jednak nie zmienia mojego głodu na poszerzenie tej wiedzy i zdobycia doświadczenia w tym zakresie :)

Poniżej przedstawiam Ci najciekawsze filmiki o HFT.
























I filmik, który mówi o HFT od strony kuchni:



piątek, 29 maja 2015

Rozdzielanie argumentów cmd w PS

Jak pracowałeś z aplikacjami konsolowymi z gigantyczną liczba argumentów to za pewne dostawałeś oczopląsu - ja tak miałem. Mam mały skrypcik do rozwiązania tego problemu:
function Split-Args
{
    param(
    [ValidatenotNullOrEmpty()]
    [string]$argStr
    )
    [hashtable]$arg =@{}

    [regex]::Matches($argStr, '-.+') | %{
        [string]$value = $_.Groups[0].Value
        [string]$first, $second = $value.Split([char[]]@(' ','=',':'),2)
        $first = $first.Replace('-','')
        $arg[$first] = $second
    }

    return $arg.GetEnumerator() | sort  Name
}
Wywołanie jest następujące:
Split-Args "-unzip=true -zippedFile zipfile1.ZIP -unzipFolder .\unzips.temp\ --date sysdate -year:2014 ​"
Przyjemniej szuka się parametrów posortowanych po kluczu w kilku linijkach niż w jednej lini:



środa, 27 maja 2015

A\B U B\A

Dlaczego taki dziwny tytuł - dla ćwiczeń chciałem sobie napisać zapytanie wyświetlające różnicę między tabelą A i B.

Dajmy na to, że mamy tabele A z liczbami parzystymi:
 SELECT  LEVEL * 2  AS n  
            FROM DUAL
            CONNECT BY LEVEL <= 100

oraz tabele B z liczbami podzielnymi przez 3:
SELECT  LEVEL * 3  AS n  
            FROM DUAL
            CONNECT BY LEVEL <= 100

Teraz spróbujemy wyciągnąć różnice między tablą A i B. Całe zapytanie wygląda następująco:
WITH 
A AS
    (
         SELECT  LEVEL * 2  AS n  
            FROM DUAL
            CONNECT BY LEVEL <= 100
       
    ),  
B AS
     (
         SELECT  LEVEL * 3  AS n  
            FROM DUAL
            CONNECT BY LEVEL <= 100
       )
    

(SELECT 'a' tab ,n FROM A
MINUS
SELECT 'a' tab ,n FROM B)
UNION ALL
(SELECT 'b' tab ,n FROM B
MINUS
SELECT 'b' tab ,n FROM A)
ORDER by n 
;

Wynik takiego zapytania jest przedstawiony poniżej:

środa, 20 maja 2015

Autosys JILs i notepad++

Troszkę mam do czynienia z autosysem i bardzo nie lubię pracować z JILami. JILe (Job Information Language) to taki język, który opisuje proces lub paczkę procesów (Box). Przykład jak wygląda jil to można zobaczyć tutaj pod 8-m punkcie
lub tutaj.
Dodałem repo. z podświetleniem dla JILów. Repo jest tutaj. Dla takiego jila mamy takie podświetlenie:




Instrukcja jak zainstalować language file jest tutaj.
Uruchamiasz Notepad++ i w zakładce View idziesz na User Defined Language

Podświetlenie powinno być już zainstalowane. Możesz sprawdzić czy jest wpis z rozszerzeniem jil w pliku %APPDATA%\Notepad++\userDefineLang.xml​. W zakładkach języków powinieneś widzieć zmianę ( jak nie to uruchom jeszcze raz notepadd++).

Lista dostępnych podświetleń dla notepad++ możesz znaleźć pod tym linkiem.
Projekt pochodził z tego repozytorium.
Dzisiaj mam bardzo dużo 'tutaj' :)

sobota, 9 maja 2015

For loop dla msbuild

Jak będziesz chciał uruchomić kilka razy dany proces to możesz wykorzystać polecenia for. Ja tak muszę z budowaniem projektów w .NETcie. Musze 2 razy uruchomić msbuild'a. Niektóre projekty nie maja referencji do innych projektów w solucji, ale do zbudowanych bibliotek w specjalnym folderze. Problem też może być jak jedno budowanie projektu potrzebuje dużo czasu (dajmy na to 25 minut) i w każdym momencie może wystąpić błąd.

Polecenie do dwukrotnego budowania jest poniżej:
for /L %n in (1,1,2) do ( msbuild myProject.sln /m )​

Takie proste, a tak upraszcza życie :)

poniedziałek, 4 maja 2015

Kontrolowanie uwagi

Dzisiaj obejrzałem filmik o kontrolowaniu uwagi przez złodzieja.Wcześniej pisałem o sztuczce z kolorami, która również nawiązuje do kontrolowania uwagi.
Troszkę mnie to przeraża jak łatwo jest oszukać nasz umysł.


Zapraszam do obejrzenia.