Pokazywanie postów oznaczonych etykietą data. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą data. Pokaż wszystkie posty

środa, 30 września 2015

Culture w PS

Ostatnio w projekcie jakieś cyrki pojawiały się. Postanowiłem troszkę porozglądać się po kulturze (formatowaniu dat) i napisałem skrypcik do wyświetlania daty dla wszystkich kultur.
Na początku potrzebujemy funkcję zwracającą listę kultur:
function Get-Culture
{
 [System.Globalization.CultureInfo]::GetCultures([System.Globalization.CultureTypes]::AllCultures) | %{ 
    try{
        [System.Globalization.CultureInfo]::CreateSpecificCulture($_.Name)
    }catch {}
}
}

Wywołąnie jest następujące:
$dt = Get-Date

Get-Culture 
| %{  New-Object PSObject -Property  @{Str = $dt.ToString($_); Name = $_.Name; DisplayName = $_.DisplayName}  } 
|  sort -Property Name
Teraz to można wyeksportować do pliku taki wynik. Poniżej zdjęcie jak wygląda rezultat wywołania w konsoli:



Przykłady jak będzie wyglądał LongDate, LongTime i ShortDate, ShortTime można sprawdzić pod tym linkiem

środa, 5 sierpnia 2015

Tworzenie backup'u za pomocą scripter'a w PS

Ostatnio musiałem tworzyć skrypty do tworzenia bazy danych (od zera) w sql server. Kod zamieszczony jest na github'ie i projekt nazywa się BackupSqlServerPS. Projekt nazwałem backupem bo oprócz generowania t-sql skryptów do bazy danych to są tworzone skrypty do sql server jobów, zapisywane są logi z bazy i jobów, zapisywane są dane z tabel w formacie csv oraz tworzone są skrypty z danymi w zapytaniami "insert into values". Projekt jest w budowie. Jeszcze chciałbym dodać export użytkowników, execution planów, diagramów i assemblies oraz tworzenie bak'ów. Jeszcze dużo przede mną :)

Najważniejszą funkcją do backupów jest tworzenie scryptera. Z mechanizmu skryptera pewnie już korzystałeś
Za każdym razem jak w Sql Server Management Studio przez menu kontekstowe tworzysz zapytanie 'select ...', create, drop lub podobne to, to zapytanie jest tworzone przez scryptera.

Tak na prawdę skrypter to obiekt klasy Microsoft.SqlServer.Management.SMO.Scripter z pakietu Sqlserver Management Objects. Najwięcej problemów było przy ustawianiu opcji scriptera. Poniżej zamieściłem, krótki przykład tworzenia skryptów do tworzenia tabel w bazie danych. Oczywiście napisałem to w PS.
Na początku musisz załadować SMO:
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.ConnectionInfo") 
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO") 

Tworzymy obiekt reprezentujący server:
$srvConn = new-object Microsoft.SqlServer.Management.Common.ServerConnection
$srvConn.ServerInstance = 'localhost'
$srvConn.Login = 'user'
$srvConn.Password = 'passwd'
$srv = New-Object Microsoft.SqlServer.Management.SMO.Server($srvConn)

Tworzymy obiekt grający pierwsze skrzypce:
$scripter   = New-Object Microsoft.SqlServer.Management.SMO.Scripter($srv)

$scripter.Options.IncludeDatabaseContext = $false
$scripter.Options.WithDependencies       = $false 
$scripter.Options.AllowSystemObjects     = $false
$scripter.Options.NoCommandTerminator    = $false
$scripter.Options.ScriptSchema           = $true 
$scripter.Options.SchemaQualify          = $true
$scripter.Options.DriAll                 = $true

Teraz wyciągamy wszystkie obiekty z bazy danych
$db = $srv.Databases['database']
$tbl = $db.tables | ? {-not $_.IsSystemObject }
foreach ($o in $tbl) {  
{
   $scripter.Options.FileName = $o.Name + ".sql"
   $scripter.Script($o) 
}
Jeżeli będziemy tworzyć inserty z danymi to zamiast $scripter.Script($o) powinniśmy wywołać $scripter.EnumScript($o)

Skrypt główny, który robi wszystko ('śpiewa i tańczy') nazywa się backup-sqlserver.ps1

Oprócz tabel to tworzymy skrypty do Stored Procedures, widoków, user-defined functions oraz typów.
Po uruchomieniu skryptu będziemy mieli foldery w którym będą skrypty do tworzenia obiektów.

sobota, 18 kwietnia 2015

Jesteśmy producentami danych

Wcześniej pisałem o danych zbieranych przez firmy telekomunikacyjne oraz dyrektywie z 2006 roku, a tym razem filmik dokumentalny o światowych firmach, które zbierają dane.



Co ciekawe ten filmik był wcześniej pod innym linkiem - może youtube (czyli google) zablokowało ten filmik :)


O danych zbieranych przez firmy zaczęło się głośniej mówić, gdy Edward Snowden opublikował informację o 'tajemniczej umowie' między wielkimi korporacjami o rządem USA.

Poniżej filmik przedstawiający problem w przyjemny sposób i "dick-pics program":


Wydaje mi się, o bezpieczeństwie powinno się mówić w kontekście "dick-pics program". Czy rząd i NSA mogą go widzieć i komu będą to udostępniać.

A tutaj jeden z pierwszych wywiadów z Snowdenem: