środa, 23 grudnia 2009

Jak zmieniać wartość ColumnSpan w kontrolce GridView

Potrzebowałem przerobić grida tak aby wyświetlał co drugi wiersz z inną ilością kolumn.

Na początek podpinamy się dometody GridView1_RowDataBound

Jeśli kolumna z której pobieramy wartości jest visible to nie ma problemu, dane pobieramy przez:


int index = int.Parse(e.Row.Cells[GridView1.Columns.Count - 1].Text);





Niestety, jeżeli kolumna jest ustawiona jako unvisible musimy kod zmienić na:


int index = int.Parse(((System.Data.DataRowView)e.Row.DataItem).Row.ItemArray.GetValue(67).ToString());





Następnie łatwo ustawiamy ColumnSpan


e.Row.Cells[2].ColumnSpan = 4;





A tutaj widać wynik jaki udało się osiągnąć:



wtorek, 22 grudnia 2009

Linq - notatki

Mam podciągnięta listę obiektów zdefuniowanego typu które posiadają min takie właściwości:


        [SqlHelper.DynamicBinding()]


        public string DealerName { get; set; }


 


        [SqlHelper.DynamicBinding()]


        public Guid DealerId { get; set; }





Chciałem je pogrupować w linq , tak więc wyszedł mały kawałek kodu.





            _list = SurveyReportRecordDA.Get();


 


            var result = from o in _list


                         group o by new { o.DealerId, o.DealerName } into g


                         select new { g.Key.DealerId, g.Key.DealerName};




Przykład trywialny, ale widać jak składać zapytanie grupowania.




kolejny przykład to prosty select na liście przy uzyciu Linq, a następnie wrzucenie wyniku do Listy


                var query = from o in _dataForReport


                            where o.DealerId == _dealerList[i].DealerId


                            select o;


 


                List<SurveyReportRecord> _dealerRecord = query.ToList<SurveyReportRecord>();


czwartek, 17 grudnia 2009

ASSEMBLY MS SQL 2005 - notatki

Będe zamieszczał w tym poście notatki z moich prac związanych z ASSEMBLY na MS SQL 2005



--Włączanie obsługi assembly na serwerze ms sql
use master
go
sp_configure 'clr enabled', 1
go
reconfigure
go



--sprawdzanie konfiguracji
sp_configure 'clr enabled'


--ładowanie assembly
USE ASM --This is our test database.
GO
CREATE ASSEMBLY [test_call] FROM 'C:\work\ASM - CP\TEST\TEST\bin\Debug\test.dll'



bledy:

en:
The requested operation requires a Sql Server execution thread. The current thread was started by user code or other non-Sql Server engine code.
pl:
Żądana operacja wymaga kontekstu SqlClr, który jest dostępny tylko podczas uruchamiania procesu programu SQL Server.

solution:
http://www.sqlclr.net/Articles/tabid/54/articleType/ArticleView/articleId/34/Default.aspx




Metoda do instalowanie Assembly na serwerze

///
///
///

///
/// sciezka gdzie znajduje sie biblioteka
/// nazwa pod jaka ma zostac utworzone assmebly w bazie
/// Nazwa klasy dla danej assmbly
/// pelna nazwa biblioteki np test.dll
/// nazwa bazy na jakiej ma zostac postawiona assembly
public static void InstallMe(string connectionString, string path, string assemblyName, string className, string assemblyDLL
, string databaseName)
{
try
{
string directory = Path.GetDirectoryName(path);


string sql = @"USE {0} ";

//skasowanie procedur(y) uzywjacych assembly
sql += "IF EXISTS ( select 1 from sysobjects WHERE xtype = 'PC' AND name = '{1}') BEGIN ";
sql += "DROP PROCEDURE {1} END ";

//skasowanie assembly
sql += "IF EXISTS (SELECT 1 FROM [sys].[assemblies] AS asmbl WHERE asmbl.[name] = '{1}') BEGIN ";
sql += "DROP ASSEMBLY {1} END ";

//dodaje assembly
sql += "CREATE ASSEMBLY [{1}] FROM '{2}{3}' ";



string sqlM1 = "CREATE PROCEDURE asm_AssemblyCCPForMSSQL ";
sqlM1 += "@ConnectionString [nvarchar](100), ";
sqlM1 += "@XMLFileLocation[nvarchar](100) ";
sqlM1 += "WITH EXECUTE AS CALLER ";
sqlM1 += "AS ";
sqlM1 += "EXTERNAL NAME [{1}].[{4}].[ImportXMLToDB] ";





sql = string.Format(sql, databaseName, assemblyName, path, assemblyDLL, className);
sqlM1 = string.Format(sqlM1, databaseName, assemblyName, path, assemblyDLL, className);


//zapis sql do pliku
FileStream file = File.Create(path + "create_script.sql");
file.Close();
System.IO.StreamWriter sw = new StreamWriter(path + "create_script.sql", true);
sw.WriteLine(sql);
sw.WriteLine("/*################################*/");
sw.WriteLine(sqlM1);
sw.Close();




using (SqlConnection conn = new SqlConnection(connectionString))
{
SqlCommand InsertCurrencyCommand = new SqlCommand();
InsertCurrencyCommand.CommandText = sql;
InsertCurrencyCommand.Connection = conn;

SqlCommand InsertCurrencyCommand2 = new SqlCommand();
InsertCurrencyCommand2.CommandText = sqlM1;
InsertCurrencyCommand2.Connection = conn;

conn.Open();
InsertCurrencyCommand.ExecuteNonQuery();
InsertCurrencyCommand2.ExecuteNonQuery();
conn.Close();
}
}
catch (Exception exc)
{
Console.WriteLine(exc.Message);
}


}


Oraz jej przykładowe wywołanie:

MSSQLASM.InstallMe("Data Source=APE\\SQLEXPRESS;Initial Catalog=ASM;Integrated Security=True"
, "C:\\work\\ASM - CP\\Assembly_CPP_C+\\Assembly_CPP_C+\\AssemblyCCP\\AssemblyCCPForMSSQL\\bin\\Debug\\"
, "asm_AssemblyCCPForMSSQL"
, "AssemblyCCPForMSSQL"
, "AssemblyCCPForMSSQL.dll"
, "ASM");

Ładowanie excela przez OleDbConnection

Jak go podłączyć ? Poniżej prezentuje jak podpiąć sięprzy użyciu silnika do pliku i załadować jego arkusz do tabeli, oczywiście mapując nazwy kolumn.

Należy pamiętać o using System.Data.OleDb;

string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + src + @";Persist Security Info=False;Extended Properties=""Excel 12.0;HDR=YES;""";


OleDbConnection excelConnection = new OleDbConnection(connectionString);


excelConnection.Open();


 


DataTable dt = excelConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);


List<string> excelSheets = new List<string>(dt.Rows.Count);


 


int i = 0;


foreach (DataRow row in dt.Rows)


{


    string strSheetTableName = row["TABLE_NAME"].ToString();


    excelSheets.Add(strSheetTableName.Substring(0, strSheetTableName.Length - 1));


    i++;


}


 


string strSQL = "SELECT * FROM [" + excelSheets[excelSheets.Count - 1] + "$]";


OleDbCommand dbCommand = new OleDbCommand(strSQL, excelConnection);


OleDbDataAdapter dataAdapter = new OleDbDataAdapter(dbCommand);


DataTable dTable = new DataTable();


dataAdapter.Fill(dTable);


 


dTable.Dispose();


dataAdapter.Dispose();


dbCommand.Dispose();


excelConnection.Close();


excelConnection.Dispose();


 


 


for (int c = 0; c < dTable.Columns.Count; c++)


{


    dTable.Columns[c].ColumnName = GetColumnNameWithoutSpecialCharacters(dTable.Columns[c].ColumnName);


}









Użyłem tutaj metody GetColumnNameWithoutSpecialCharacters, bo kasuje wszystkie polskie znaczki , to ułatwia później prace na obiektach na które mapuje rekordy.

string GetColumnNameWithoutSpecialCharacters(string col)
{
col = col.ToUpper();
col = col.Replace("Ę", "E");
col = col.Replace("Ó", "O");
col = col.Replace("Ą", "A");
col = col.Replace("Ś", "S");
col = col.Replace("Ł", "L");
col = col.Replace("Ż", "Z");
col = col.Replace("Ź", "Z");
col = col.Replace("Ń", "M");
col = col.Replace("Ć", "C");
return col;
}

Finito!

Parsowanie rekordów Excel'a na zdefiniowane obiekty

Spędziłem ostatnio troche czasu nad importem plików excela. Mozolna praca, zwłaszcza kiedy należy jeszcze przeanalizować zawartość wierszy w kodzie.

Postanowiłem troche uprościć życie, napisałem kilka lini kodu, które automatycznie parsują wiersze excela na obiekty wczesniej przez nas zdefiniowane.

Na poczatke zobaczmy jak budujemy obiekt do reprezentacji wiersza:

Bo stworzeniu klasy dodajemy do niej tyle właściwości ile mamy kolumn do zmapowania z excela i tak dla przykładu:

[MuchSoft.BLL.SqlHelper.DynamicBindingExcelColumn("imie klienta")]
public string ImieKlienta { get; set; }

Definicja atrybutu ktorego uzylem znajduje sie tutaj:

[AttributeUsage(AttributeTargets.Property, AllowMultiple = true)]
public class DynamicBindingExcelColumnAttribute : System.Attribute
{
public string column_name { get; set; }
public bool required_field { get; set; }


public DynamicBindingExcelColumnAttribute()
{
}

public DynamicBindingExcelColumnAttribute(string columnName)
{
column_name = columnName;
required_field = true;
}

public DynamicBindingExcelColumnAttribute(string columnName, bool required)
{
column_name = columnName;
required_field = required;

}
}


Jako parametr atrybutu podajemy nazwe kolumny ktora mamy w excelu do zmapowania w tym przypadku "imie klienta"


W konstruktorze obiektu ktory utworzylismy na potrzeby mapowania rekordow odpalamy metode parsujaca:
MuchSoft.BLL.SqlHelper.DynamicBindingDataManager.BindPropertiesFromExcel(this, dr, "");

Tutaj wchodza nam trzy parametry this - reprezentuje obiekt ktory mapujemy, dr to wiersz z excela

Teraz slow kilka o samej metodzie parsujacej

Deklaracja
static public object BindPropertiesFromExcel(object o, DataRow reader, string columnList)


Podciagniecie wlasciwosci oraz zbudowanie listy kolumn
PropertyInfo[] pri = o.GetType().GetProperties();

List _columns = new List();

foreach (string s in columnList.Split(','))
{
if (s.Length > 0)
_columns.Add(s);
}


Przeglad wlasciwosci i podpiecie do nich wartosci
foreach (PropertyInfo p in pri)
{
try
{
object[] attributes = p.GetCustomAttributes(false);

if (attributes.Length > 0 && attributes.GetValue(0).GetType().Name == "DynamicBindingExcelColumnAttribute")
{
Type t = o.GetType();
PropertyInfo pi = t.GetProperty(p.Name);
DynamicBindingExcelColumnAttribute atr = (DynamicBindingExcelColumnAttribute)attributes.GetValue(0);
string columnName = atr.column_name == null ? p.Name : atr.column_name;


if ((_columns.Count > 0 && _columns.Contains(columnName)) || _columns.Count == 0)
{
if (pi.PropertyType.FullName == typeof(int).FullName)
pi.SetValue(o, int.Parse(reader[columnName].ToString()), null);
else if (pi.PropertyType.FullName == typeof(string).FullName)
pi.SetValue(o, reader[columnName].ToString().Trim(), null);
else if (pi.PropertyType.FullName == typeof(decimal).FullName)
pi.SetValue(o, decimal.Parse(reader[columnName].ToString()), null);
}
}
}
catch (Exception e)
{
return e;
}
}

return o;


I finito.

środa, 16 grudnia 2009

Troubleshooting permissions problems

Komunikat w polskiej wersji językowej:
Aparat bazy danych programu Microsoft Office Access nie może otworzyć pliku ... lub zapisać do niego. Plik jest już otwarty do wyłącznego użytku przez innego użytkownika lub potrzebne jest uprawnienie do przeglądania i zapisywania jego danych.


Ten sam komunikat w wersji angielskiej:
The Microsoft database engine cannot open the file ...
It is already opened exclusively by another
user, or you need permission to view its data.

Jak łatwo się domyśleć z wersją angielską, można odnaleźć rozwiązanie dużo szybciej niż mając tylko polską wersje błedu. Niestety posiadając polskiego windowsa na stacji roboczej dostajemy komunikaty w wersji polskiej.

Poniżej lista wskazówek czgo moze dotyczyć błąd:
http://www.xlinesoft.com/asprunnerpro/docs/error_the_microsoft_jet_database_engine_cannot%20open%20the%20file%20%28unknown%29.htm

Oraz rozwiązanie przypadku z uprawnieniami:
http://livedocs.adobe.com/dreamweaver/mx2004/using/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Using_Dreamweaver&file=31_trou3.htm

piątek, 4 grudnia 2009

jak małe dziecko

jesli klamiesz, robisz to najpiekniej jak to mozliwe
kiedy mysle, mysle o Tobie
jesli jestes diablem, przybrales idealna forme
gdybym o Tobie wiedzial wczesniej, spalbym do dnia kiedy Cie poznalem
obłęd, dzika namiętność, szaleństwo, zwolnione wodze fantazji
to wszystko jest jak jeden wyraz, w opowiadaniu o Tobie
pragne Cie slyszec, widziec , dotykac
dla M.

wtorek, 1 grudnia 2009

Kiedy wazon rozsypie się na kawałki

na kawałki życia, zobaczysz czym jest życie

życie jest łzą na widok przyjaciela przed ołtarzem
odgłosem kamienia w wodzie, rzuconego przez zakochanych
jest zwykłym "cześć" od koleżanki, która kocha swojego faceta
kroplą wody, która popłynie po awari wodociągu
słowem "jeść" od nieznajomej osoby na chodniku
usmiechem matki, kiedy masz szczęście stanąć przed nią
radością Dziadka, który widzi wnuka
głosem Ojca, ucieszonego telefonem dziecka
jest myślą o szczęśliwej siostrze
telefonem od brata, który nie myśli jak Ty

o tym pomyślisz odchodząc

poniedziałek, 30 listopada 2009

Pomniki mojego świata

Od kiedy pamiętam za każdym razem kiedy tylko podróżowałem, irytował mnie widok wszechobecnych śmieci. Turlających się kolorowych butelek, latających woreczków, tak jak liści unoszonych przez wiatr, z ta różnicą , że te nasze liście unosić się będą wiele lat nim zamienią się w to z czego powstały.

Za każdym razem krytykowałem ludzi którzy wyrzucają te śmieci, mówiłem ja nie śmiecę, ja zawsze wyrzucam do śmietnika, jak oni tak mogą postępować ?

I tak to kiedy byłem nad Ohrydzkim jeziorem, w parku Unesco, zauważyłem kolejną stertę śmieci. Tym razem zatrzymałem się na dłużej, byłem ciekaw skąd biorą się te śmieci w miejscu gdzie ludzie żyją tak skromnie , tak delikatnie dotykają przyrody, piorąc (tylko wodą) w wodzie z jeziora, i paląc drzewem z lasu, no skąd ?

I tak do mojej głowy wleciał podmuch wiatru i zapytał, a gdzie są Twoje śmieci, gdzie Twoje opakowania po serkach wiejskich, gdzie butelki po mineralnej , co robisz z opakowaniami po proszkach , gdzie wylewasz wodę z pralki, i gdzie spuszczasz wodę z sedesu po użyciu chemii do czyszczenia ?


hmmm....


Gdyby tak Macedończyk przyjechał nad Wisłe, nabrał z niej wody do czajnika i zrobił sobie herbatę to zamiast zwiedzać twierdze ,Modlin, szukałby dobrego dermatologa. Gdyby potem wybrał się zwiedzać okolice warszawy, z pewnością odnalazłby w okolicach Kampinosu górę, górę mojej hipokryzji, wszystkich opakowań, butelek i tego wszystkiego co....znikło z moich oczu za odpowiednią opłatą, najzwyczajniej w świecie nie wyrzuciłem tego do lasu , tylko zapłaciłem za to by w kolorowym worku (KOLEJNY ABSURD) wynieść śmieci do białego pomieszczenia, skąd ciężarówka wywiezie ten syf z moich oczu.


Może zamiast mówić ja nie śmiecę na ulicy, zadać sobie należy pytanie czy mam świadomość, że każdy punkt na moim paragonie ze sklepu to kolejne warstwy pomnika naszego świata, świata śmieci.

Zamiast rozwodzić się o zbiornikach na kolorowe butelki, na papier itp, warto by było zrobić pokaz zdjęć na starówce tego co nas otacza, tego czego udajemy, że nie ma. Może innym tak jak mi , trzeba pokazać coś by sobie uświadomić ogrom problemu, dziś małego, ale czym jest dziś... dziś jest jak jeden krok, kiedy idziesz złą drogą ku przepasći nocą

poniedziałek, 23 listopada 2009

Białe światełko w tunelu....

...siedział sobie mały wróbel w gnieździe i obserwował piekny świat, w koło było słychać śpiew ptaków, słuchał ich opowieści. Pewien stary jastrząb , który zawsze polował na wróble, a dziś jest ich kolegą mawia, że żyć nalezy dobrze, niewolno zabijać. Kiedy sowa pytała go dlaczego tak myśli skąd ta przemiana, powiedział, że kiedyś trafił go śrut z broni, stracił kawałek skrzydła, upadł na ziemie. I wtedy zobaczył, piękny las, w środku lasu było piękne gniazdo, a w nim siedział kruk, który powiedział mu daruje Ci zycie, ale nie zabijaj więcej wróbli, albo zamiast do mego lasu trafisz po śmierci na wysypisko śmieci, jastrząb wziąl to sobie do serca, ocknął się i od tamtej pory nie zabija.



Kiedy młody wróbel pierwszy raz wyskoczył z gniazda, nie udało mu się odpowiednio ułożyć skrzydeł i z impetem udeżył w ziemie. Kiedy się ocknął opowiedział o tym że widział ten las i kruka siedzącego w gnieździe.


Mineły lata, wróbel latał po świecie, był dobrym ptakiem, kiedy ktos go pytał skąd tyle w nim optymizmu opowiadał jak to widzial las i kruka. Obserwował, uczył się, poznawał inne ptaki. Pewnego dnia spotkał jaskółkę, która opowiadała mu jak to we śnie widziała właśnie taki las jak on, tego samego kruka, a kruk jej powiedział "pięknie spiewasz, nie marnuj swego talentu" wiec spiewala.


I wtedy wrobel pomyslal, czy to ja snilem kiedy upadlem, czy jastrzab snil kiedy umieral czy to jaskolka umierala kiedy spala ?


Pieknie jest umierac i nie wiedziec ze sie sni.


sobota, 14 listopada 2009

wycinki chwil

Przemokniete buty nie sa dowodem na to ze pada deszcz, bardziej wskazuja na to ze jest ciemno.

Kiedy zgasnie Ci lampa w ciemna samotna noc, ta ktora zawsze starannie chowales przed wilgocia i pilnowales by jej nie zgubic, uswiadomisz sobie jedynie jak wielkim glupcem byles ze nie nosiles w jej miejsce tabliczki czekolady








niedziela, 8 listopada 2009

Twarz kobiety z 18 wieku

"...przepraszam Panią, czy może Pani na to zerknąć, wydaje mi się, że na tym grobie z tyłu, widnieje jakaś twarz, czy dostrzega ją Pani ?"

Staruszka, przez chwile patrzy , mówi, że faktycznie na grobie z tyłu coś widać, to twarz kobiety, w ubraniu z 18 wiwku...ja sam co prawda widzę twarz Jezusa, ale to pewnie przez sugestie Daniela któremu pokazałem niecodzienny obraz i tak on go opisał.

Kiedy na początku szedłem tą alejką, słyszałem taką ładną pieśń jaką lubiłem słuchać kiedy chodziłem do kościoła, powiedziałem , że ta pieśn chwyta mnie za serce, Daniel się zaśmiał, kilka kroków dalej, zobaczyłem to co widać na zdjęciu.

Grób widoczny w tle, jest odwrócony tyłem do mnie, osobiście nigdy w życiu nie widziałem, aby na tylnej ścianie były malowidła. Podszedłem bliżej, dotknąłem, to było zwyczajnie mokre, nie było tam żadnej farby.

Krople przypadkowo , zasugerowały nam , że widzimy twarz.






Pozostałe zdjęcia z tego spaceru











niedziela, 1 listopada 2009

Strach

Kiedy pakowałem się na ten wypad do lasu, a robiłem do już na 4 dni przed wyjazdem, jak kamenie pod nogi przychodziły problemy. Uszkodzona latarka, która przestała świecić, a jak wiadomo w lesie światło nocą jest niezbędne. Później problem z mapami, które chciałem wydrukować na 2h przed wyjazdem i okazało się, że drukarka odmawia posłuszeństwa, brak śledzi do namiotu, które zaginęły podczas ostatniej dzikiej wyprawy.

Jak to mówią, nie ma przypadków są tylko znaki, no więc co te znaki chciały mi powiedzieć.

W piątek po pracy, pakuje finalnie plecak, Klawy oczywiscie spiewa swoj ulubiona piosenke czyli piszczac stara sie mi przekazac "Nie zapomnij mnie zabrac pajacu, bo jak to zrobisz to rozszarpie Ci Twoje nowe książki!".

Miejska dżungla, czyli tramwaj 26, dworzec wileński, bilet i w drogę. To co działo się w pociagu z Wileńskiego, pozostawie bez komaentarza, ostrzegam tylko wszystkich, żeby uważali w nim na siebie czy to w dzien czy w nocy. Jeździłem nim do pracy w 2002-2003, i nic się tam nie zmieniło, niebiezpiecznie jak było tak jest.

Stacja Urle, startujemy, Klawy po spuszczeniu ze smyczy zachowuje się jak po spuszczeniu ze smyczy, pokazuje jak potrafi znikać w jednym miejscu i pojawiać się za skunde w innym.

Pada deszcz, ale to było w planie, ubieram wojskowe poncho i przed siebie. Kupiona w media markt latarka Varty okazuje sie byc dopra jesli chcesz zeby Cie zobaczono, natomiast jesli Ty chcesz cos zobaczyc, mozesz zapomniec :) Juz czuje jaka bedzie zabawa.

Pierwsze 2h to bładzenie w tereni, jakieś lasy, małe rzeczki, szukam drogi, kiedy ją znajduje, przemarsz okazuje się być dużo przyjemniejszy. Wszechobecne błyszczące oczy w lesie, któe świecą odbijając światło mojej latarki znikają w ułamku sekundy chwile po tym kiedy rzucam hasło "Kaczki" na które mój pies reaguje jak byg na płachte.

To mój pierwszy samotny wypad tego typu, ja las i ślepia. Po ok 4h dochodzę do miejsca , gdzie chchiałem dojść, czyli las w okolicach miejscowości Łazy. Tu rozbijam namiot.

Idzie mi nieźle, zważywszy na padający deszcz, słabe światło latarki, głód i lekkie zmęcznie, bo plecak waży swoje. W jednej chwili robi mi się zimno, jak bym wpadł do lodowatej wody, ten poziom strachu jest konkretny, przyznam, że wystarszyłem się jak cholera. To odgłos pękającej grubeej gałęzi na którą musiało stanąć jakieś zwierze, spore zwierze, odgłos dobiegający z za moich pleców, w jednej chwili się odwracam i szperam latarką, ale poszperać to ja sobie nią mogę... Robie hałas, bo nic innego mi nie pozostało, wołam psa, i krzycze głośno "Kaczki". Klawy stoji obok, wlos ma zjezony , tak jak i ja, nasluchujemy i nic cisza. Wyciagam noz i klade go obok, rozkladam namiot. Ludzka fantazja nie zna granic, zwlaszcza kiedy w srodku ciemnego lasu o 2 w nocy rozkladajac namiot znajduje sie dziecieca łopatke do kopania w piasku, "ja pier....". Oddalem dziwne myśli i rozkłądam namiot, z wielką ulgą pakuje się no śdrodka i układam sie do snu. Klawy dostaje ciepłe posłanie obok mnie, ale wcale nie chce spać, węszy i warczy, chce wyjść. Nie moge mu na to pozwolić, bo i tak jest już mokry a na zewnatrz pada deszcz. Gasze swiatlo, chce zasnac. Budzi mnie warczenie psa, uciszam go, i wtedy slysze jak cos podchodzi do nas, pekaja patyki na zewnatrz, krople deszczu bija o namiot, i moje serce, mam pełne gacie, nie ma co ukrywać, czuje że to jest to czego się bałem w tej wyprawie, i teraz jest ten moment, poczuj to i zastanów się czego tu się bać. Siegam po nóż, przygotowałem go , jest otwarty w kieszonce namiotu nad głową, mam go w ręku. Słysze węszenie, to może być sarna, a może być dzik. Odchodzi, Klawy się sadzi, ale trszymam go mocno. Jeszcze jakiś cza, nasłuchuje, nóż wraca na swoje miejsce, zasypiam...


Po drodze spotykam straszego Pana , który podpowiada mi jak iść, pyta gdzie ide, śmieje się ze mnie jak mówie gdzie, mówi "Ale w końcu każdy ma tam jakieś 'swoje', i nie można mu zabraniać".


Klawy zaginął... Pobiegł w pole i nie wrócił, wchodze w las , myśląc, że się znajdzie, w końcu nie raz oddalał sie i wracal.

Rozpalam ognisko, rozstawiam namiot, czekam na niego. Psa nie ma.

Zaczyna się robić nieciekawie, ok 17 zaczyna padać, robi się też ciemno, a Klawego nie ma.

Dalsze chwile wyprawy, to przemyślenia. Leżałem tam i zastanawiałem się nad wyciętym lasem , który mijałem, nad tym gdzie jest Klawy, nad tym dlaczego w pociągu spotkałem mężczyzne któy mówił mi że stracił juz w życiu kilka psów i nie chce więcej żadnego, bo człowiek kocha i się przyzwyczaja.




Mamy mało czasu. Bardzo mało. Kiedy chcesz zoabaczyć rzeke, musisz przejśc czasem w deszczu dużo kilometrów, zmoknąć, wystarszyć się, w końcu może tam dotrzesz. Po drodze spotkasz ludzi i chwile, które będą Ci sprzyjać, których nikt inny w tym czasie nie spotka, nikt ich nie poczuje. To jest Twój czas. Kiedy stałem na polanie i widziałem wycięte drzewa, czułem sie winny, bo przecież drukuje, czytam książki, zamawiam pizze w papierowym opakowaniu. Te drzewa, wycięte leżały martwe. Na łące stała tylko para młodych drzew, i czekały na śmierć, pewnie za kilka dni przyjedzie mechaniczny potwór i podetnie im nogi, i padną obok tych z którymi rosły.



Czy strach przed zwierzęciem leżąc w namiocie ma sens ? Nie, to tylko brak zrozumienia, brak świadomośći i spojrzenia na sytuacje z boku. Bać się powinienem w pociągu z Wileńskiego, kiedy młodzi ludzie (dresiarze , ale to nie ich wina że nimi są), zachowywali się agresywnie , nie zważając na nic ani na nikogo, szukali zaczepki i mało brakowało, mogło by być nieciekawie. Bać się można ludzi, to my zabijamy, to my mordujemy i torturujemy, psychicznie fizycznie.
















środa, 28 października 2009

Podróż

widzę siebie, z daleka przez mgłe
jak mnie prowadzisz, odprowadzasz wzrokiem
i widze wszystkie chwile, i dobre i złe
czas zamarł, jak moje myśli, na wieczne chwile
moja dusza, spokojnie przez łąki już idzie
w kierunku wschodzącego słońca, przez trawy
z plecakiem myśli i wspomnień
a w pamięci każde z serc, jakie tu mnie pokochało
ta wyprawa dobiega końca, czas gasić ognisko
słońce powoli przykrywają chmury myśli
przez te dni, było wiele chmur, i burz
lecz w pamięci tylko te słoneczne, chwile
gdybyś kiedyś chciał mnie spotkać w krainie
w której nasze myśli się zbiegły
usiądź jak ja, w ciszy, zdala od wszystkiego
i posłuchaj wiatru, w nim są myśli
kiedy o mnie pomyślisz, pojawie się obok
wiatr dmuchnie w Twoje ognisko, ogrzeje Cie
bo każdy z nas pozostanie tu na zawsze
w tym miejscu, tam gdzie spotkały sie nasze myśli
i nie czas, nie miejsce, lecz miłość nas zatrzyma

czwartek, 15 października 2009

to co jest tutaj

gwiazdy nas nie oślepiają do czasu
...kiedy sie w nie zapatrzymy
kwiaty nie pachna, do czasu...
kiedy sie nad nimi nie nachylimy
tesknota za matka, jest nieznana
...do czasu, az zniknie na niebie
bol jest tylko slowem z reklamy
do czasu....kiedy poczujesz zeba


a wystarczy tylko.....

patrzec uwaznie, i dziekowac zyciu za oczy
czuc sercem, dlonmi, sluchem i cieszyc sie z tego
matke zamienic na najukochansza mame
i dziekowac nocy, ze otula bezbolesny dzien

poniedziałek, 12 października 2009

Back to the future

Być może już jest, a być może dopiero będzie platforma napisana np przez google, która udostępni programistom portal developerski, na którym to będą mogli pisać swój własny kod, nie potrzebując do tego żadnego środowiska na swoim komputerze, potem nacisnął kompilcja, serwer skompiluje i zwróci gotowy pakiet, jedyne co będzie potrzebne to internet.

Taka poranna wizja przy kawie.

poniedziałek, 5 października 2009

Problem podręczników szkolnych...

...skupia się na tym, że co roku są nowe, co roku inne, i co roku drogie.

Tak sobie nad tym myślałem i przyszło mi do głowy, że rozwiązaniem będzie wyeliminowanie tych problemów,jak ?

no właśnie może tak:

Zbudować portal internetowy www.darmowaedukacja.pl na ktorym kazdy moze pobrac podrecznik za darmo, a nastepnie wydrukowac go. Taki podrecznik zostanie napisany przez osoby ktore potrafia to zrobic i posiadaja odpowiednie uprawnienia. Za co ? Może za pieniadze z dofinansowania UE.

Na takiej stronie, osoby zainteresowane przylaczeniem sie do pracy nad podrecznikami mogly by dodawac swoje teksty, opracowania. Moze nawet nie cale ksiazki, ale pewne fragmenty, dzialy, np ktos opisze przebieg 2 wojny swiatowej, a ktos inny czasy Mieszka, a nauczyciel nie bedzie musial wtedy mowic rodzicom na zebraniu potrzebujemy tych 3 podrecznikow tylko zarejestruje sie w serwisie, wybierze odpowiedni dzialy i zapisze to jako wzor do pobrania dla swoich uczniow, dzieki czemu ich rodzice nie bede musieli wydawac tylu pieniedzy na ksiazki, dzieci nie beda dzwigac ton ksiazek do szkoly, a drukarnia nie wydrukuje 100k egzemplarzy z ktorych 20% kazdego z nich nigdy nie zostanie uzyte.

To roziwazanie moze spotkac sie z duzym sprzeciwem, pewnie dlatego ze eleminiuje tutaj wydawcow, prace drukarni, dostawcow, ksiegarni itd. Ale czy nie jest najwazniejsze to aby ludzie nie musieli placic za wiedze, a jesli wciaz musza to aby placicli za nia jak najmniej ?

Podreczniki przed publikacja w sieci, powinny byc przedstawione do odpowiednich osrodkow w celu otrzymania akceptacji przez MEN.

Ten pomysł jest pewnie bardzo uproszczony, jednak to tylko ogólny zarys tego co można zrobić w tym kierunku. Może ktoś kto ma czas i możliwości zastanowi się nad tym bardziej i zrealizuje ten lub podobny pomysł.

wtorek, 29 września 2009

Microsoft SQL Server Setup

Podczas instalacji serwera otrzymywałem następujący kod błędu:

None of the selected features can be installed or upgraded. Setup cannot proceed since no effective change is being made to the machine. To continue, click Back and then select features to install. To exit SQL Server Setup, click Cancel.


Rozwiązaniem jest uruchomienie instalacji z wiersza poleceń komendą:

start /wait setup.exe SKUUPGRADE=1

Czyszczenie struktury tabel i procedur w bazie danych MS SQL

Problem:
Posiadam na bazie testowej zainstalowany pakiet tabel i procedur, jest ich ponad 30, między nimi występują relacje. Chciałbym je skasować, jednak między tabelami występują relacje, co uniemożliwia szybkie wykonanie tej operacji.

Cel:
Przygotowanie procedury kasujące wszystkie tabele i procedury rozpoczynające się od konkretnego przedrostka.

Rozwiązanie:
Przygotowana poniżej procedura czyście wszystkie tabele i procedury rozpoczynające się od danego prefixu.

CREATE TABLE #TEMP (id INT IDENTITY(1,1), sql NVARCHAR(200) )
DECLARE @NAME NVARCHAR(50)
DECLARE @PREFIX VARCHAR(20)

SET @PREFIX = 'Nop_'

INSERT INTO #TEMP(SQL)
select 'DROP TABLE ' + NAME from sysobjects WHERE xtype = 'U' AND LEFT(name,LEN(@PREFIX)) = @PREFIX ORDER BY NAME

INSERT INTO #TEMP(SQL)
select 'DROP PROCEDURE ' + NAME from sysobjects WHERE xtype = 'P' AND LEFT(name,LEN(@PREFIX)) = @PREFIX ORDER BY NAME

DECLARE @INDEX INT
DECLARE @SQL NVARCHAR(100)
SET @INDEX = 1

WHILE @INDEX <= (SELECT COUNT(*) FROM #TEMP )
BEGIN
SET @SQL = (SELECT SQL FROM #TEMP WHERE ID = @INDEX)
EXECUTE(@SQL)
SET @INDEX = @INDEX + 1

IF ( @INDEX = (SELECT COUNT(*) FROM #TEMP ) )
BEGIN
INSERT INTO #TEMP(SQL)
select 'DROP TABLE ' + NAME from sysobjects WHERE xtype = 'U' AND LEFT(name,LEN(@PREFIX)) = @PREFIX ORDER BY NAME

INSERT INTO #TEMP(SQL)
select 'DROP PROCEDURE ' + NAME from sysobjects WHERE xtype = 'P' AND LEFT(name,LEN(@PREFIX)) = @PREFIX ORDER BY NAME
END

END

DROP TABLE #TEMP

poniedziałek, 28 września 2009

Nie umiem czuć zimna w mroźną noc

Gdybym Cie już nigdy nie spotkał to nie ważne. Jesteś tam gdzie się spotkaliśmy w mojej głowie. Bez znaczenia jest czas, on tylko daje możliwości, nie niscząc tego co było. Gdzieś tam na jednym z perownów stoje ja i stoisz Ty. Bez znaczenia jest co się stało potem. Nie umiem czuć zimna w mroźną noc, jestem wtedy na tej łace i czuje zapach kaczeńców. Wszystko co się stało, było wszystkim co miało się stać. Niczym więcej. Nie pozostały żadne możliwości. Nikt. Nigdzie. Gdyby zerknąć na to z góry, wyglądało to jak toczenie się kropek, które pędziły do siebie z dalekich końców. Jedną z nich byłem ja.

czwartek, 24 września 2009

Kolejna wizja Micha


Mich Albom - "Jeszcze jeden dzień"

Miewasz czasem chwile kiedy mówisz "Chciałbym cofnąć czas..." ja miałem taką chwile jak do tej pory tylko raz, kiedy umarła mi Babcia, a ja nie powiedziałem jej jak bardzo ją kochałem.

To co można przeczytać na drzewach pod postacia kartek to historia kolesia ktory aby dostrzec siebei w lustrze, musi najpierw zginac. Tak zginac, by spotkac kogos komu nie powiedzial jak bardzo go kocha, komu nie poswiecil wystarczjaco duzo czasu, a kiedy sie ocknal bylo juz za pozno. Stal jak ja na cmenatrzu w piekny sloneczny dzien i czul slony smak lez, ktory splywaly odbijajac niebo na ktorym widniala twarz kogos kto odszedl.

Jesli chcesz zobaczyc co mozesz przezyc, co mozesz stracic, to zdecydowanie poswiec dwa wieczory i pomysl nad tym ze wciaz jestes, ze wciaz jestes Ty i ludzie bez ktorych nie bylbys tym samym odbiciem w lustrze.

Zbliżony obraz tego co będzie

Mich Albom - "Pięć osób, które spotykamy w niebie"

To był 2005 rok, tak mi się wydaje. Byłem na dworcu centralnym i czekałem na pociąg do Krakowa, moją uwagę przykuła ta okładka




Jak zawsze siadłem w Warsie, wziąłem piwko, mówie jak zawsze bo w tamtym czasie byłem nieszczęśliwie zakochany w kobiecie która mieszkała w Krakowie i tak sobie jeździłem do niej po pracy i wracałem o 4 rano. Pomylona sytuacja , ale czego to człowiek nie zrobi jak go się dobrze zmanipuluje, nieważne.

Rozsiadłem się wygodnie i zabrałem się do lektury, książka zaczęła się ciekawie, Pan Dziadek umiera w swoje urodziny już na samym początku, a jak by nie było ma być głównym bohaterem :)

Strona za stroną, nabieram poczucia, że tak być może naprawde, że kiedy umre, spotkam tych ludzim których minąłem gdzieś tam w życiu nie zdając sobie sprawy, że np zachodząc przypadkiem komuś droge na ulicy, uratowałem jego życie. To coś jak Efekt Motyla, tylko z dużo mniejszym rozmachem.

Gdybym miał opisać komuś jak ma wyglądać czas po tym jak umre i jak mnie pogrzebią to właśnie tak bym go opisał jak Mich na tych kilku stronach. Zastanawiające jest to, że ta prosta bajeczka może skłonić do bacznego obserowania wszystkiego na swojej drodze, myślę, że to była jedna z pierwszych książek, które poprowadziły moje życie na inne , lepsze tory, już nie do Krakowa czy innego miasta na K, lecz do miasta o którym wtedy nawet nie słyszałem.

Generating user instances in SQL Server is disabled. Use sp_configure 'user instances enabled' to generate user instances.

Podczas odpalania projektu w VS 2008 otrzymywałem błąd

"Generating user instances in SQL Server is disabled. Use sp_configure 'user instances enabled' to generate user instances."

Rozwiązaniem okazała sie zmiana konfiguracji MS SQL serwera.

1. Otwórz SQL Server 2005 Management Studio Express.
2. Połącz się z lokalną instancją serwera (PC-Name\SQLEXPRESS)
3. Otwórz New Query Window, upewniej się że jesteś podłączony do master database
4. Wpisz w query: exec sp_configure 'user instances enabled', 1
5. Wpisz: RECONFIGURE
6. Zrestartuj SQL Server


I ma działać

wtorek, 22 września 2009

Przypadki

Szperałem po wynikach losowania toto lotka.



Wygląda na to, że na blisko pięć tysięcy losowań jakie już były, wylosowane numery nie powtórzyły się w liczbie większej niż cztery.

Tzn, że jeśli idziemy do kolektury i komputer wylosuje nam numery , które już były to marne nasze szanse na to, że trafimy.

Warto by sprawdzić, czy przypadkiem nasze numery już kiedyś nie były wylosowane.

Zdobyłem baze danych wszystkich wylosowanych numerów , poniżej znajduje się link przez który można sprawdzić, czy nasze numery były już kiedyś wylosowane.

Sprawdź czy Twoje numery były już wylosowane

wtorek, 15 września 2009

Czym jest to co widzisz

Jakie piękne zwierzęta sa w tym zoo - powiedział Edmund, to nie pierwszy raz odwiedzał miejsce gdzie można podziwiać zwierzęta. Większość z nich się tu urodziła i nie wie nawet jak żyje się gdzies w dziczy, czują tylko instynkt, który im podpowiada, żeby coś zmienić,żeby uciec, ale lęk i miska z jedzeniem nie pozwalają im uciec, bo gdzie, bo jak ?

Edmund stał i podziwiał zwierzęta, rzucił im troche jedzenia, te które podchodziły bliżej i nie były zagrożeniem głaskał, zwierzęta ucieszone machały ogonem, czasem tylko zerkały mu w oczy, z lekkim strachem , przed kimś kto może tak wiele.

Edmund skończył swój spacer, wychodząc tylko pomyślał - One nawet nie są egzotyczne, wszystkie widziałem na wolności, te różnią się tym, że nie wiedzą nawet czym jest wolność, są inne, są bez życia, a pomimo to zachowują się jakby nie widziały tych krat, krat które dzielą je od życia. Od życia które im się należy.

Westchnąl Edmund nad losem zwierząt i wrócił do swojego auta.

Następnego dnia rano ogolił się, założył koszule, którą uprasowała mu nieznana Pani z pralni chemicznej, zjadł śniadnaie, wsiadł do windy, i zjechal do podziemnego garażu. W pracy zrobił sobie kawe i rozpoczął pracę, dziś wizyta szefa szefów, przyjeżdża główny dyrektor kierujący fabrykami w europie. Muszę dobrze wypaść pomyślał Edmund, czas na moją premię, w końcu polce na upragnione wakacje do Chin i zobacze Mór Chiński, zobacze jak zyja biedni Chinczycy , ktorzy zyja w tak strasznym swiecie.

Kiedy przyleciał szef szefów, zaprosił kilka osób na obiad, miedzy innymi Edmunda, rozmawiali głównie o pracy, szef zapytał o ich wakacje, a oni jego. Rozmowa minęła bardzo przyjemnie, obiad był smaczny. Na koniec szef pogratulował Edmundowi dobrych wyników i obiecał wypłacić premie, podał mu ręke, ten uścisk był dla Edmunda niczym oklaski na sali pełnej publiczności, w końcu to szef szefów. Edmund aż bal się spojrzeć szefowi w oczy, człowiekowi, który lata własnym odrzutowcem, bywa gdzie tylko chce, i ma więcej pieniędzy niż on zarobiłby przez kolejne 8 tysiący lat.

Pożegnali sie, Edmund wrócił na swoje stanowisko pracy, poprawił krawat i pomyślał, jak dobrze byc najlepszym, moge wszystko.



I tylko w jednej z klatek, gdzie zamkniętych było kilka ptaków, które zanim się tu znalazły, ćwierkały gdzieś w tropikach , było inaczej, tylko te ptaki widziały, że przed nimi są kraty, a nie domy podarowane przez dobre istoty,które pozwalają im żyć w tym pięknym zamkniętym świecie.

Czym jest to co widzisz

Jakie piękne zwierzęta sa w tym zoo - powiedział Edmund, to nie pierwszy raz odwiedzał miejsce gdzie można podziwiać zwierzęta. Większość z nich się tu urodziła i nie wie nawet jak żyje się gdzies w dziczy, czują tylko instynkt, który im podpowiada, żeby coś zmienić,żeby uciec, ale lęk i miska z jedzeniem nie pozwalają im uciec, bo gdzie, bo jak ?

Edmund stał i podziwiał zwierzęta, rzucił im troche jedzenia, te które podchodziły bliżej i nie były zagrożeniem głaskał, zwierzęta ucieszone machały ogonem, czasem tylko zerkały mu w oczy, z lekkim strachem , przed kimś kto może tak wiele.

Edmund skończył swój spacer, wychodząc tylko pomyślał - One nawet nie są egzotyczne, wszystkie widziałem na wolności, te różnią się tym, że nie wiedzą nawet czym jest wolność, są inne, są bez życia, a pomimo to zachowują się jakby nie widziały tych krat, krat które dzielą je od życia. Od życia które im się należy.

Westchnąl Edmund nad losem zwierząt i wrócił do swojego auta.

Następnego dnia rano ogolił się, założył koszule, którą uprasowała mu nieznana Pani z pralni chemicznej, zjadł śniadnaie, wsiadł do windy, i zjechal do podziemnego garażu. W pracy zrobił sobie kawe i rozpoczął pracę, dziś wizyta szefa szefów, przyjeżdża główny dyrektor kierujący fabrykami w europie. Muszę dobrze wypaść pomyślał Edmund, czas na moją premię, w końcu polce na upragnione wakacje do Chin i zobacze Mór Chiński, zobacze jak zyja biedni Chinczycy , ktorzy zyja w tak strasznym swiecie.

Kiedy przyleciał szef szefów, zaprosił kilka osób na obiad, miedzy innymi Edmunda, rozmawiali głównie o pracy, szef zapytał o ich wakacje, a oni jego. Rozmowa minęła bardzo przyjemnie, obiad był smaczny. Na koniec szef pogratulował Edmundowi dobrych wyników i obiecał wypłacić premie, podał mu ręke, ten uścisk był dla Edmunda niczym oklaski na sali pełnej publiczności, w końcu to szef szefów. Edmund aż bal się spojrzeć szefowi w oczy, człowiekowi, który lata własnym odrzutowcem, bywa gdzie tylko chce, i ma więcej pieniędzy niż on zarobiłby przez kolejne 8 tysiący lat.

Pożegnali sie, Edmund wrócił na swoje stanowisko pracy, poprawił krawat i pomyślał, jak dobrze byc najlepszym, moge wszystko.



I tylko w jednej z klatek, gdzie zamkniętych było kilka ptaków, które zanim się tu znalazły, ćwierkały gdzieś w tropikach , było inaczej, tylko te ptaki widziały, że przed nimi są kraty, a nie domy podarowane przez dobre istoty,które pozwalają im żyć w tym pięknym zamkniętym świecie.

piątek, 11 września 2009

Inspiracje. Bolesław Uryn - Mongolia, wyprawy w tajgę i step

Smak słodyczy dobrze znany jest mały dzieciom, które wkładając palec do słoika z masłem orzechowym już chwilę przed mają w oczach radość i jeśli robia to po kryjomu obłęd w oczach, żeby Mama nie zobaczyła że podjadam, przynajmniej tak było ze mną, może nie miałem masła orzechowego, ale doskonale wiedziałem gdzie rodzice chowają czekolady.

Trochę urosłem, wiem odrobinę więcej niż wiedziałem, i teraz zamiast zjadać po kryjomu czekolady, wzbudzam obłęd w swoim umyśle książkami takimi jak ta.

Bolesław Uryn w swojej książce wykonuje niezłą projekcje obrazów w moim umyśle, opowiadając o tym jak to rozbił namiot na przełęczy i widził ogromną falę nachodzącej burzy, łamiącej drzewa, zmiatajacej namiot jego kompanow, wzbudza we mnie uczucia , które towarzyszą tylko podczas podróży. Jego przygody, które przeżył w świecie tak bliskim, jak dalekim bo przecież to tylko 10.000 km, czyli kilka godzin lotu, a jednak tak dalekim bo swiecie w którym nie ma nawet prysznica , opowiada w tak przyjemny i malowniczy sposób, że mi trudno było oderwać się od książki. Czytałem ją dojezdzajac ostatniej zimy do pracy, srodkami komunikacji, i kiedy bylo mi zimno i czytalem jak siarczysty mroz wita go kiedy rano wychodziz namiotu, to czulem ze nie ma co sie tak marszczyc przy tych -7 stopniach.

Jesli masz zamiar dowiedziec sie czegos wiecej o tym jak zyja na codzien Mongolowie, o tym jak wyglada ich swiat, to goraco polecam Ci ta ksiazke.





p.s. zdjec z Mongolii nie mam. jeszcze.

Z pola bitwy. Czyli DevExpress i XPO

Nie ma to jak zacząć dzień z rozkminianiem dlaczego to nie działa.

Podczas budowania rozwiązania, korzystałem z XPObject , problem pojawił się podczas uruchamiania kodu.

Na początku powstała prosta klasa w ktorej zdefiniowałem kilka zmiennych tego samego typu:

public ROM_Structure Structure;
public Employee Employee;
public ROM_Structure Firms;
public ROM_Structure Department;
public ROM_Group Group;
public ROM_XPOStructure XPOStructure;
public ROM_Permission Permission;
public ROM_Structure FirmDelagete;
public ROM_Structure DepartmentDelegate;

W trakcie tworzenia obiektu leciał błąd:

Unable to create 'ForeignKey' 'FK_ROM_StructurePermission_Firms'.

Parent: 'ROM_StructurePermission'.

Error: Executing Sql 'alter table "ROM_StructurePermission" add constraint "FK_ROM_StructurePermission_Firms" foreign key ("Firms") references "ROM_Structure"("Oid")' with parameters '' exception 'Npgsql.NpgsqlException:
constraint "FK_ROM_StructurePermission_Firms" for relation "ROM_StructurePermission" already exists
Severity: ERROR
Code: 42710
w Npgsql.NpgsqlConnector.CheckErrors()
w Npgsql.NpgsqlConnector.CheckErrorsAndNotifications()
w Npgsql.NpgsqlCommand.ExecuteCommand()
w Npgsql.NpgsqlCommand.ExecuteNonQuery()
w DevExpress.Xpo.DB.ConnectionProviderSql.ExecSql(Query query)'


No i bądź mądry, kiedy ten framwerok zarządza całą bazą, a Ty jedyne do czego możesz się dotknąć to kod w C#.

Szperając po forum DevExpress znalazłem tem post:
http://community.devexpress.com/forums/t/2124.aspx

To mnie zaniepokoiło jeszcze bardziej, ponieważ ja korzystam z bazy PostgreSQL.

Pytanie brzmi, dlaczego ten framwerok nie chce stworzyć nowego klucza obcego skoro, każdy z obiektów nazywa się inaczej, przecież w bazie nie może istnieć klucz o takiej samej nazwie. W rezultacie okazuje się, że framework stworzył sobie już taki klucz wcześniej, jak ? Podczas wcześnijszych kompilacji zmienna Firms była innego typu, klucz został dodany, ale po mojej zmianie w kodzie framework już nie uwzględnił nowego typu Firms, a co za tym idzie, nie skasował starego klucza zastępując go nowym tylko zwrócił błąd.

Pomimo, że jestem przeciwnikiem tego typu rozwiązań, to jednak trzeba sobie z nimi radzić jeśli zachodzi potrzeba. Pewnie zasadzek będzie więcej...

czwartek, 10 września 2009

Ruch powietrzny na świecie.

Ten krótki filmik prezentuje ruch samolotów nad naszym globem, nie znam źródła, więc trudno uznać czy jest prawdziwy, w każdym razie warto zobaczyć.

środa, 9 września 2009

Pomiar czasu wykonywanej metody w C# .NET

Po 0,3k godzinach pisania kodu, przyszedł czas na testy wydajności, jak zwykle można do tego użyć gotowych narzędzi, albo obrać marchewke i samemu zjeść najlepszy kawałek.

Bardzo prostym rozwiązaniem okazuje się zamieszczony poniżej kawałek kodu. To co robi to nic więcej jak wydruk czasu na konsoli komunikatów dla każdej wywoływanej metody.

Chciałem to zrobic w oparciu o atrybuty i wykonać coś w rodzaju wywołania triggera na każdej z nich, jednak rozwiązanie przerosło mój time limit.

Użycie poniższego kodu jest dziecinnie proste, na początku metody robimy incjalizacje:

/*SUPERTIMER*/
SuperTimer _st = new SuperTimer();

A na końcu metody wykonujemy pomiar:

/*SUPERTIMER*/
_st.End();






finito mi to tito

poniedziałek, 7 września 2009

Jak wpisywać hasło na obcym komputerze ?

Kiedyś dumałem nad tym jak tu wpisać hasło aby oprogramowanie szpiegowskie go nie przechwyciło, a przynajmniej zmniejszyć szanse na jego złamanie.

Może zaczne od mojej metody generowania haseł dla siebie, otóż:

1.Moje haslo to 3 kolejne slowa piosenki, jakiej tego juz nie zdradze, dla przykladu ktos kto lubi kawalek I STILL HAVEN'T FOUND WHAT I'M LOOKING FOR wybiera na haslo kolejne slowa: have run through

2.Teraz jak jes wpisac ?
Na dobry poczatke klikamy myszka w okno gdzie mamy wpisac haslo i wpisujemy drugie slow czyli: run nastepnie klikamy na poczatek pola i wpisujemy have nastepnie na koniec pola i wpisujemy through

W wyniku tego zainstalowany trojan moze wykryc haslo: runhavethrough

Zycze dobrej rozkminki, moze przyjda inne pomysly

czwartek, 3 września 2009

Nakierować na drogę choć jedną parę oczu




Czasem kiedy wstaje rano, zastanwiam się czy to dziś. Często przychodzi mi ta myśl do głowy, i wyobrażam ją sobie, koloryzując obraz, stwarzając sytuacje, które stworzy świat, okoliczności w jakich się wtedy znajdę. I tak potem wsiadam do windy, albo auta i jadę do pracy, myśląc o tym dalej, bez większego strachu.

W moim życiu, było już wiele sytuacji w których stałem gdzieś blisko niej, czy to jako świadek czy to jako obraz w jej oczach.

Kiedy w 2005, w listopadzie, kierowałem się na przejście dla pieszych , późną porą ledwo dostrzegłem dużą kałużę zagradzającą mi wejście na przejście dla pieszych, pamiętam , że słuchałem wtedy tego utworu.





Ponieważ te słowa odsłaniają mi pas startowy z rzeczywistości gdzieś w inny świat , skupiłem wzrok tylko na zielonym świetle dla pieszych i ruszyłem. Była mgła, gesta mgła, przejście na skrzyżowaniu ul Puławskiej i Pileckiego w kierunku KFC, do przejścia zostaje mi około metra, i w tym momencie przejeżdża przed moją twarzą tir. Nie wiem ile brakowało i jak szybko jechał skoro chciał zdąrzyć na zielone i się nie udało.

Łzy płyneły mi ciurkiem, stałem w miejscu, nic nie słyszałem nie było mnie. Jeśli cokolwiek mnie w życiu zaskoczyło i sprawiło bym się zastanowił, to było to małą łzą przy ogromnej ulewie uczuć jak mnie wtedy ogarnęła. Wszystko przestało być ważne, nie było mnie, nie było żadnych zmartwień, pomyślałem, że może już mmnie nie ma, że może wpadłem pod tego tira. Jednak nadal stałem , udało mi się uniknąć śmierci. Pomyślałem wtedy, że nie ma większego szczęścia niż życie, że nic nie jest w stanie być istotne choć w malym stopniu jak fakt że żyjemy.

Przed tym wydarzeniem i po nim, jeszcze wielokrotnie stałem tuż obok niej, i za każdym razem, doznawałem poczucia, że wciąż powinienem dziękować za to, że jestem.





Ja wciąż zastanawiam się jak będzie wyglądał ten mój dzień, kiedy ja zapisze się obrazem w oczach innych, i mam nadzieje, że dam im do myślenie równie dużo ile Ci których jak spotkałem dali mi.


Zapraszam do galerii zdjęć z miejsca, gdzie ludzie wiedzieli, że za chwilę znikną. Udało im się czasem pozostawić mały ślad po sobie.

Rotunda Zamojska