Dilema veche si COMPASIUNEA si FILANTROPIA

Se pare ca suntem popor care a avut probleme dintotdeauna cu ciinii .

Lucian Mindruta incearca sa traduca, in De ce nu iubim copiii? , injuratura “Eu te-am făcut, eu te omor” Mie nu mi-a iesit…

Mi-a placut articolul despre “fursecul mecanic” si as vrea si eu, daca nu fursecuri, macar adresa magazinului …

Despre cersetori, in ”Prinţ şi cerşetor”

Culmea este ca citeam dilema in tramvaiul 41 si tocmai se urcasera 2 pusti mici, ce se asezau in genunchi in fata ta. Nu imi place sa dau de pomana la cersetorii insistenti … Dar ma gindeam ca pustii oricum nimeni nu face nimic …

 

Dilema veche si VIATA CULTURALA IN PROVINCIE

M-am recunoscut partial in cel ce eram inainte de 89 in Note pentru o tipologie a lecturii

“O primă specie de cititor este bulimicul. Pentru el, cartea nu e decît materia unui consum nediferenţiat, lacom, asemănător consumului de droguri”

Iar definitia intelectualului este superba :

“A fi “intelectual” nu înseamnă strict a ţine tot timpul în mînă o carte. Un intelectual se defineşte mai ales prin ceea ce face cînd nu citeşte: cînd reflectează, cînd stă de vorbă, cînd tace, cînd rîde, cînd se roagă. În rest, aproape totul este permis, dacă dozajul e corect. În materie de lectură, e bună şi niţică gurmandiză, şi ceva amor deştept pentru literatură, şi un pic de antrenament de specialitate, şi oarecare zel sistematic şi, mai ales, focalizarea tenace asupra unui set de întrebări.”

Despre relatia dintre proprietate privata si impresia publica o traducere de Mircea Vasilescu in Voluntarul danez şi imobiliaristul român

“Deci, traduc pe înţelesul concetăţenilor noştri care au descoperit brusc sentimentul proprietăţii private din 1990 încoace: danezii din Ribe, proprietari fiind, sînt obligaţi de municipalitate să-şi menţină casele într-o anumită stare şi sînt împiedicaţi să facă ce le dă prin cap”

Despre viata celor care intretin paradisul puteti citi in Știri nebăgate în seamă

Si mi-a placut calculul descris de Luca Niculescu in Jurnaliştii, cîte divizii?

“Numărul victimelor pare însă exagerat, consideră unii jurnalişti care au mers prin spitalele din regiune. Ei au făcut un calcul cinic, dar de multe ori just: numărul răniţilor este, în general, mai mare decît al morţilor. În spitale ar fi trebuit să existe mii de răniţi, or ei au numărat doar cîteva sute.”

Si recomand tuturor Costul ascuns al banilor

Change Data Tracking(kind of) in C#

Sa zicem ca suntem in C#,avem SQL 2005 si o tabela( de ex., utilizatori) pe care trebuie sa implementam un (fel de ) mecanism de CDC – automat.

 

Creeam o noua tabela, utilizatori_history,identica cu precedenta, la care adaugam 3 cimpuri ( de_la_data, la_data, si stare : insert, update, delete)

Ne jucam cu Linq 2 SQL (pentru ca e foarte rapid) – si am vrea ca sa se faca (relativ) automat – adica sa nu lasam la latitudinea celor care folosesc clasa utilizatori daca sa inregistreze sau nu istoricul.

Nici o problema – in DataContext, pentru fiecare tabela, exista un eveniment de <insert-update-delete> de tipul partial
void <Metoda><NumeTabela>(<tabela> nume), in
cazul nostru
partial
void InsertUtilizatori(Utilizatori instance)

Super – e suficient sa interceptam evenimentul si sa scriem datele intr-o noua instanta de utilizatori_history , o adaugam la this.Utilizatori_history si facem submitchanges impreuna cu this.ExecuteDynamicInsert(instance); pentru a salva utilizatorii noi.

Din pacate, ne trage in piept … si anume o eroare ca nu avem voie sa facem acest lucru in metoda…Si are (partial) dreptate.

Asa incit solutia alternativa (nu foarte buna, dar merge) este sa creeam un nou data context de la 0:

        MyDataContext my=new
MyDataContext(this.Connection);     //pastram aceeasi conexiune

my.Transaction =this.Transaction;                  //si tranzactie

my. Utilizatori_history.InsertOnSubmit(history);

my.SubmitChanges();

 

Cam asta ar fi … Ma rog, daca vrem si informatii aditionale( de ex., ce user a fost, etc) le putem adauga in history la creearea obiectului istoric.

Ce ar mai fi de facut, daca nu ar fi fost facut in SQL2008:

    Adaugat prin Code generat , pentru fiecare tabela din DataContext, una de history – si suprascris fiecare eveniment…

 

 

Linq Data Source , Object Data Source si GridView

 

In sfirsit am avut ocazia sa ma joc cu LINQ de adevaratelea(cam tirziu, avind in vedere ca a aparut Visual Studio 2008 SP1 si The .NET Framework 3.5 SP1
cu DataEntity si Astoria). Si prima chestie mare pe care a trebuit sa o fac a fost un gridview cu paginare, sortare si filtrare.

Imi generasem clasele Linq intr-un dll – si am zis ca pun un LinqDataSource. Cind citesc documentatia , gasesc TableName – si mi-am zis: “UPS… nu vreau sa ma conectez la tabela, ci la datele mele”

Asa incit imi zic – ObjectDataSource e ceea ce vreau.

Il configurez – punindu-i metodele pe care le vroia – cea cu selectcount si cea cu paginare – si mergea OK. In SQL Server Profiler aparea Ok… Si acum filtrarea pe server . Aici au inceput problemele: Nu mai voia sa afiseze paginile (1, 2 ,etc), desi selectcount-ul il facea pe server…

Ca solutie intermediara am zis sa aduca toate datele daca face filtrare… Dar nu mi-a placut prea mult…si in plus nu mai genera evenimente de rowcommand…

Asa ca intreb si eu ca incepatorul pe Ronua si am noroc :sirocco imi raspunde ca TableName e de fapt numele clasei … Chiar asa este!Merge paginarea si sortarea rapid si fara probleme…

Iar la filtrare e suficient sa puneti un parametru la WhereParameters si sa puneti clauza Where cum trebuie .

Ma rog, am mai dat de o problema : Am filtrat dupa stringuri – merge NumeProprietate.Contains(@numeparametru).

Problema este ca ,daca nume parametru este gol, va da eroarea

No applicable method ‘Contains’ exists in type ‘String’

Nu va speriati – eroare spune o prostie … puneti la parametru ConvertEmptyStringToNull=”false”

 

 

Dilema veche si ROMANI IN STRAINATATE

 

Citat miraculos:

“Nu-mi place să mă simt acasă în străinătate.” GEORGE BERNARD SHAW

Sa accentuez acest “Nu-mi place” ?

Andrei Plesu isi revine in Mică antologie a patriotismului amărît – neaparat de citit.

Despre noua generatie Din generaţia frunzelor lipseşte pădurea:

“Re-editată azi, povestea Meşterului Manole ar suna cam aşa: biserica ar fi construită cu bani spălaţi în operaţiuni bancare dubioase, meşterii tineri ar fi toţi obosiţi în fiecare dimineaţă după discotecă şi oricum nici unul n-ar fi de meserie, iar Ana, care trebuie prinsă în zid ca să reziste biserica, e la un shooting pentru o revistă mondenă şi a lăsat vorbă că vine mai tîrziu.”

Magdalena Boiangiu e realista si spune pe nume in Comparaţii

“Conducătorii ruşi n-au nici un motiv să dea dovadă de reţinere. Pe vremuri, ei vegheau la construcţia comunismului. Acum veghează la integritatea conductelor de petrol şi se asigură că traseul lor nu-i favorizează pe concurenţi. Armata rusă acceptă economia de piaţă, vede avantajele, dar face tot posibilul ca pe piaţă să rămînă doar un singur jucător.”

Alin Fumurescu scrie despre doctoratul in America Vechea lume nouă a Academiei – cu trimiteri la antichitatea greaca…

Dilema veche si DOCUMENTUL ŞI ISTORIA

Postul acesta trebuia sa fie luni, dar site-ul www.dilemaveche.ro nu a mers citeva zile – si mi-a fost lene sa scriu…

Despre Soljenitin in Andrei PLEŞU – Soljeniţîn

“Soljeniţîn a avut vocaţia de a fi, în mai toate etapele vieţii sale, prost plasat. Şi de a cîştiga tot ce se putea cîştiga de pe urma acestui amplasament oblic.”

si Magdalena BOIANGIU | Un om singur

“Un om singur care a demonstrat cît de puternic poate fi adevărul în lupta lui inegală cu un sistem mincinos.”

Sever Voinescu despre judecati globale România vs Ucraina

“După cum se ştie, cele două ţări nu s-au înţeles cu privire la trasarea frontierei maritime dintre ele, existînd o suprafaţă de aproximativ 12.000 km2 de mare aflată în dispută. Mai exact, cele două ţări au pretenţii concurente asupra acestui bazin maritim. Miza este de natură economică, în primul rînd, dat fiind că explorări anterioare au identificat o anumită rezervă de gaze aflată acolo.”

 

O lapalisada despre securitate, in O problemă de bună-credinţă

“Se poate dovedi că un erou al luptei anticomuniste a colaborat cu Securitatea, dar nu se poate afla cine a luat salariu de la Securitate ca să bată, să înfometeze şi să tortureze.”

Si am zimbit la cu ochii-n 3,14

“* Una dintre cele mai nostime glume ale vremurilor glumeţe pe care le trăim: Partidul Comunist din Sankt Petersburg a cerut Bisericii Ortodoxe Ruse canonizarea lui Stalin. (C. P.-B. )”

 

Master page si erori

Incercasem sa interceptez erorile din Master page – si nu intelegeam de ce nu merge. Pina mi-am adus aminte ca Master deriva din control – si ca, de fapt, este un control instantiat de pagina, nu invers…

Totusi, o functionalitate buna a Master este cea de afisare de erori la nivel central ( ca si cum ai avea un control de afisare erori).
In App_Code se adauga un fisier .cs de forma

 
 

public
class
ErrorAdd : IValidator

{

 
 

    public ErrorAdd(string Message)

    {

        ErrorMessage = Message;

    }

 
 

 
 

    public
string ErrorMessage { get; set; }

 
 

 
 

    public
bool IsValid

    {

        get

        {

            return
false;

        }

        set

        {

 
 

        }

    }

 
 

    public
void Validate()

    {

 
 

    }

 
 

}

 

 (clar invalid…)

Apoi in Master adaugam un control ValidationSummary si urmatorul cod :

 public
void AddTheError(string Message)

    {

        ErrorAdd e = new
ErrorAdd(Message);

        this.Page.Validators.Add(e);

 
 

    }

 
 

Cam de atit e nevoie … La orice cod de pe pagina – de pilda, pe evenimente, scrieti

  try

        {//cod

  }

        catch (Exception ex)

        {

            this.Master. AddTheError(ex.Message);

        }

 Singura problema pe care o vad este sa folosesti acelasi master pentru mai multe functionalitati …Nu vrei un God Object, nu-i asa?

Newslinks pentru iulie 2008

 

Din nou despre timpenia patentelor din SUA in http://yro.slashdot.org/article.pl?sid=08/07/22/1913223&from=rss . De aceasta data este vorba despre wishlist …

 

Despre alte premii Nobel, in Wikipedia – “first make people laugh, and then make them think.”

http://en.wikipedia.org/wiki/List_of_Ig_Nobel_Prize_winners

Mi-au placut destule, intre care:

“Lal Bihari overcame the handicap of being dead, and managed to obtain a passport from the Indian government so that he could travel to Harvard to accept his Prize. However, the U.S. government refused to allow him into the country.”

 

Despre CV-uri, in 150 Funniest Resume Mistakes, Bloopers and Blunders Ever

http://jobmob.co.il/blog/funniest-resume-mistakes/

“Skills: Strong Work Ethic, Attention to Detail, Team Player, Self Motivated, Attention to Detail”

 

Despre cum poti sa nu fi in siguranta la Google

http://www.internetnews.com/security/article.php/3757511/Hard+Lesson+in+Google+Data+Breach.htm

 

Linq si testare

 

Ma tot joc cu LINQ 2 SQL de citva timp– si sunt impresionat de cit de repede te poti misca in el (chit ca viitorii programatori nu trebuie sa invete sql cu el … e suficient sa scrii sintaxa in VB.NET /C# de Where si ti-o converteste el … impresionant)

Oricum pentru testarea obiectelor ma gindisem la Linq 2 Objects – ca sa nu tot dau in Baza de date( sindromul NIH) . Din pacate, nu am reusit sa  fac ceva  – asa ca a doua solutie, google, a fost cu success.

De la adresa http://andrewtokeley.net/Images/andrewtokeley_net/Downloads/LinqToSQL.zip

gasiti un proiect de testare, bazat tot pe Linq2Objects  – mai exact, pe List<>.

 
 

Ca sa il folositi faceti asa:

            Adaugati fisierele din folder-ul Interfaces , precum si cele din Mocks ( fara ExampleMockDatabase.cs)

            Adaugati DataContextWrapper.cs

 
 

Adaugati, dupa exemplul ExampleMockDatabase.cs , BD a  dvoastra( sa zicem MockAndreiMemoryDatabase ) si scrieti codul pentru CreateTables si PopulateTables

Trimiteti catre programul principal prin Inversion of control un IQueryable pentru tabela TabelaMea  proprietatea TabelaMea  din urmatorul cod:

 
 

   public
class
AndreiFind

    {

        MockDataContextWrapper d = new
MockDataContextWrapper(new MockAndreiMemoryDatabase());

        public
IQueryable<Tabela> TabelaMea

        {

            get

            {

                return d.Table< TabelaMea>().AsQueryable<TabelaMea >();

            }

        }

       
 

    }

Descrierea autorului aici http://andrewtokeley.net/archive/2008/07/06/mocking-linq-to-sql-datacontext.aspx

Dilema veche si NOUL INDIVIDUALISM

Din pacate/fericire, nimeni nu e o insula: “Cine trăieşte numai pentru el, pentru ceilalţi este ca şi mort” PUBLIUS SYRUS

In “Stil gazetăresc” :” P.S. Dacă vi se pare că acest articol nu mai e valabil astăzi, protestaţi la redacţie.”

Protestez impotriva faptului de a copia articole mai vechi. Sunt de acord ca sunt de actualitate – si probabil ca vor fi si peste 5 ani- dar as vrea o forma noua la idei vechi

Despre raportul de tara in “România şi Italia, două ţări cu probleme europene

“Or, raportul conţinea mult mai multe lucruri, unele dintre ele mai importante pentru funcţionarea sistemului judiciar decît faptul în sine de a vedea doi-trei miniştri în zeghe. De exemplu, raportul constata că nu s-a întreprins nimic pentru combaterea corupţiei în Educaţie şi Sănătate (adică două domenii care fac parte din viaţa cotidiană a cetăţeanului). Raportul conţinea şi destule referiri la procesele “de rînd”, care se desfăşoară greoi, cu soluţii neunitare şi adesea contradictorii, astfel încît omul obişnuit ajuns în faţa instanţei nu poate avea încredere că legea se aplică în mod corect.”

Din ţinerea de minte

“De aceea nu sînt permise umilirea oamenilor în numele preamăririi lor, răspîndirea otrăvii fricii în numele virtuţii şi revoluţiei morale, comercializarea drogului suspiciunii în numele adevărului şi purificării. De aceea nu trebuie uitat că Dumnezeu nu i-a dat nici unui om puterea asupra altui om, că nici un om nu poate renunţa la grija pentru propria mîntuire în favoarea grijii pentru o mîntuire străină, că la credinţă nu poate fi silit nimeni prin forţă sau şantaj, iar crucea este semnul suferinţei Domnului şi nu o bîtă de baseball pentru lovirea adversarilor.”
(Adam Michnik, “Ultraradicalii revoluţiei morale” din volumul În căutarea sensului pierdut, în Lettre Internationale, ediţia de vară 2008, traducere de Sabra Daici)”

 

Mi-a placut citatul din Motesquieu in Gînduri la masa de dezbateri

“Piedicile pe care adeseori le întîmpinăm în conversaţii sînt ştiute de toată lumea. Voi spune doar că trebuie să ne intre bine în cap trei lucruri. Cel dintîi, că vorbim în faţa unor oameni care, întocmai ca şi noi, sînt vanitoşi şi că vanitatea lor suferă pe măsură ce a noastră se satură. Al doilea, că prea sînt puţine adevărurile de dragul cărora face să umileşti pe cineva şi să-l dojeneşti că nu le-a cunoscut. Al treilea, cel care pune stăpînire pe toate conversaţiile este un nătărău sau un om fericit de a fi nătărău”.

si cele ale lui Carlo Ricci in Produsele tradiţionale

“Omul este un omnivor care se hrăneşte cu carne, vegetale şi imaginar”

“Vorba aceluiaşi Ricci, tradiţia este o invenţie reuşită”

 

Despre atunci si acum merita citit tot articolul lui Mircea KIVU ,Capital social, înainte şi după, dar mai ales sfirsitul:

“Înainte de ’89, oamenii erau uniţi într-o rezistenţă comună faţă de un sistem frustrant pentru toţi. Obiectivele personale fiind în general lipsite de sens, competiţia era ca şi inexistentă.

Azi, fiecare avem obiective personale, pe termen scurt sau lung. Mai ales pe termen scurt. Ele ne mănîncă timp şi, mai ales, energie. În aşa măsură încît nu mai avem cînd să ne gîndim că fericirea s-ar afla dincolo de carieră şi acumularea de bunuri. Comunicarea e mai eficientă (avem telefoane mobile, Internet), dar redusă la aspectul funcţional.

Înainte, deţineam (deşi încă nu-l citisem pe Fukuyama, pentru că nici el nu-şi scrisese cărţile) un imens capital social. Era însă un capital negativ – adică acumulat prin reacţie la sistem. Relaţiile sociale erau intense, dar determinate mai ales de constrîngeri externe. Odată aceste constrîngeri dispărute, au dispărut şi mijloacele pe care le inventasem pentru a ne proteja. Sistemul în care trăim azi, asemănător cu societatea de consum criticată în Occident acum 40 de ani, este şi el generator de frustrări. El şi-a rafinat mecanismele prin care şi le exercită. Noi încă nu ne-am fabricat mijloacele de reacţie.”

Mi-au placut si mesajele in “”O religie nu este nimic mai mult decît un lucru”

“Şi anume faptul că europenii percep din ce în ce mai greu mesajele transmise de către restul lumii. Africa, prin sărăcia şi bucuria ei de a trăi, le spune că bogăţia nu aduce bucurie; Japonia de ieri, apoi China de azi le spun că dacă muncim mai puţin, nu ne putem conserva nivelul de trai; Statele Unite le spun că istoria nu s-a încheiat şi că Occidentul încă mai are duşmani.” Oare RO ce transmite?

Ma indoiesc ca televziunea digitala respecta ce spuneIoana Avadani in Multe semne de întrebare

“deşi telecomanda ar trebui să se bucure de privilegiul intimităţii inviolabile, precum corespondenţa”

O experienta terifianta in Doctorul poet şi domnul criminal. Nu stiu daca as fi rezistat….