• Bimbam de klokken! Ik zal

    Bimbam de klokken! Ik zal niet meer locked out geraken! Het was een onverlaat die op sql32gent1 een SQL Server Agent automatisch liet opstarten, en die onder mijnnaam en een oud paswoord liet draaien. Elke ochtend van 7u10 tot ’s avond 23u35 of zo. Dat ding ging dus om de zoveel tijd proberen inloggen. Het zal wel afhankelijk geweest zijn van veranderingen in databases, of misschien van de load of iets in die zin, zodat het niet echt regelmatig was.

    Wat er ook van weze: het is opgelost! Ik ben weer een volwaardig lid van het domain!

  • Tussen de goeie tv-programma’s door

    Tussen de goeie tv-programma’s door (een Best Of van Top Gear, Ray Mears en straks 24) ben ik mij zorgen aan het maken over de lay-out van mijn boekenapplicatie.

    De Microsoft Accessapplicatie doet alles wat er redelijkerwijs van verwacht kan worden, het Delphi-ding deed ongeveer alles wat ik nu al heb in C#, maar nu wordt het decision time. Voor de lay-out toch.

    Dat blauw veld voor de titel is een erfenis van Access, waar dat misschien al tien jaar zo staat. Ik ben helemaal bereid om het te veranderen, maar ik heb niet echt een precies idee van hoe ik de rest nog zal doen. Er moet zó veel op dat form, en het kan gewoon niet anders dan met tabs, maar ik moet er echt nog op zoeken.

    Dat is in mijn ervaring trouwens de beste manier om in slaap te geraken: nadenken over programmeren en interfaces en dingen.

  • De mens van Everything Burns

    De mens van Everything Burns was redelijk kwaad op Google:

    Great. Google sold my email address to spammers. I know this because I am in the habit of using unique email addresses if I give out an address on the web. Today I got a spam addressed to jimfl+google, the address I used to sign up for downloading the Google API.

    Da’s wat ik ook doe, met die adressen. Bijzonder handig, maar ik heb zo nog geen abuse-achtige dingen meeemaakt, spijtig. Enfin, die mens stuurt een boze mail naar de mannen van Google, en krijgt daarop het volgende antwoord:

    Mr. Flanagan,

    Please allow us to apologize for any inconvenience due to our, admittedly, questionabe business practices. You can be assured that your email address, as long as it doesn’t change, will not be included in any further transactions of this sort.

    By way of apology, the top result for the search term “Jim Flanagan” will return your site for the next year. You will also receive a check for $1000, and a pair of “I’m Feeling Lucky Boxer Shorts” (We will require your mailing address, and underwear size for this).

    Regards,
    Sergey Brin

    Bah. Gelukzak.

  • ’t Was gezellig bij Els

    ’t Was gezellig bij Els en Wim, we zouden dat meer moeten doen.

  • ’t Is eigenlijk schaamtelijk. Ik

    ’t Is eigenlijk schaamtelijk. Ik zit hier bij Els, en de enige die ik ken zijn Els en Wim en Sandra natuurlijk. En voor de rest zijn het allemaal mensen die elkaar al honderd jaar kennen en al sinds de kleuterschool beste vrienden zijn.

    Dan maar uit armoe de computer bovengehaald. En nog wat databindings gelegd op allerlei dingen.

  • Hehe. “TV outlet”, daar zullen

    Hehe. “TV outlet”, daar zullen ze bij VTM content mee zijn 🙂

    Arabiya TV hires Arnett

    Reporter Peter Arnett has not been short of job offers after he was fired from NBC. He has since been hired by British tabloid The Mirror and the Belgian TV outlet VTM. Now he is hired by the Dubai-based Arabic TV channel Al Arabiya, one of the competitors of the more famous al Jazeera.

    This is a quite interesting case of fact copying fiction. Here’s a comic strip predicting that Arnett would seek a job opening with al Jazeera (dated 4/1/03). That’s about as close as it gets. [Secular Blasphemy]

  • Juit terug van de Taaiberg.

    Juit terug van de Taaiberg. De Ronde van Vlaanderen. Serieus de moeite waard.

  • Voilà. Ik ga gaan slapen.

    Voilà. Ik ga gaan slapen. Ik ben geradbraakt.

  • Bob Monkhouse’s favoriete boek is

    Bob Monkhouse’s favoriete boek is His Dark Materials van Philip Pullman. Nog zo’n achtingstijger.

  • Aaaargh! Case sensitivity in databases!

    Aaaargh! Case sensitivity in databases! Hoe is dat in godsnaam mogelijk?!

    We zijn juist terug van bij mijn moeder (mijn vader zat weer ergens ginderachter, Ljubjana deze keer, tsss), en ik dacht, I’ll give this datab binding lark another go.

    En what do you know? Het is onnoemelijk onnoemelijk veel gemakkelijker dan ik dacht. Gegeven een combobox cbPublisher voor een lijst uitgevers, een datatable tblBook waarin het huidige boek zit en een datatable tblPublishers met alle uitgevers:

    //de combobox een datasource geven
    cbPublisher.DataSource=tblPublishers;

    //displaymember van een combobox met datasource is wat getoond wordt
    cbPublisher.DisplayMember=”publisher_name”;

    //daarmee overeenkomend: valuemember, ’t zelfde als value in een (html-)<option>
    cbPublisher.ValueMember=”publisher_ID”;

    //hey presto! selectedvalue verbinden met book_publisher_id uit tblBook
    cbPublisher.DataBindings.Add(“SelectedValue”, tblBook, “book_publisher_ID”);

    En dat is het. Dat is àlles! Werkt direkt van de eerste keer, werkt perfect, doet wat het moet doen, prachtig. Sweet Jesus!

    Enfin ja, alles, een groot woord. Ik heb dan nog een goeie drie kwartier zitten zoeken waarom het niet wou werken als ik er een tweede combobox aan toe wou voegen:

    cbCover.DataSource=tblCovers;
    cbCover.DisplayMember=”cover_type”;
    cbCover.ValueMember=”cover_ID”;
    cbCover.DataBindings.Add(“SelectedValue”, tblBooks, “book_cover_ID”);

    Zucht, driedubbel zucht. Vieze fouten, in de zin van “Could not bind to the new value member”, en dan misleidende dingen over het internet verspreid vinden, bah.

    Die brol is verdomme case sensitive!! Nu ja, figures eigenlijk wel: die dataset (eum, DataSet eigenlijk dus 🙂 is geen database maar een XML-dinges, en XML is nu eenmaal case sensitive. Het was dus gewoon dat cover_ID moest vervangen worden door cover_id. En nu werkt het gelijk een lierken:

    Morgen doe ik de rest van die databound controls.

  • Laurence Llewellyn-Bowen’s favoriete boek is Frankenstein, de man stijgt in mijn achting.

  • Waar een beetje rust en

    Waar een beetje rust en een klaar hoofd allemaal niet goed voor zijn: die DataSet-historie met meer tabellen, ’t is eigenlijk toch niet zo ingewikkeld.

    OleDbDataAdapter da;
    DataSet dsBook=
    new DataSet(“Book”);

    da=
    new OleDbDataAdapter(“select * from tblBooks where book_id=”+ID.ToString(),cnnBooks);
    da.Fill(dsBook,”tblBooks”);
    da=
    new
    OleDbDataAdapter(“select * from tblPublishers”,cnnBooks);
    da.Fill(dsBook,”tblPublishers”);
    richTextBox2.Text=””;
    foreach (DataTable dt in
    dsBook.Tables)
    {
       richTextBox2.Text+=”table: “+dt.TableName+”\n”;
       foreach (DataColumn dc in
    dt.Columns) 
       {
          richTextBox2.Text+=”\tcolumn: “+dc.ColumnName+”\n”;
       }
    }

    En dat geeft een proper lijste van tabellen en velden:

    table: tblBooks
        column: book_ID
        column: book_title
        column: book_genre_id
        column: book_pages
        column: book_cover_ID
        column: book_year
        column: book_publisher_ID
        column: book_price
    […]
    table: tblPublishers
        column: publisher_id
        column: publisher_name

    En dan is ’t nog een kwestie van daar een relatie aan toe te voegen:

    dsBook.Relations.Add(“BookPublisher”,
        dsBook.Tables[“tblBooks”].Columns[“book_publisher_ID”],
        dsBook.Tables[“tblPublishers”].Columns[“publisher_id”],
        false);

    En dat geeft proper schoon het volgende schema:

    <?xml version=”1.0″ encoding=”utf-16″?>
    <xs:schema id=”Book” xmlns=”” xmlns:xs=”http://www.w3.org/2001/XMLSchema” xmlns:msdata=”urn:schemas-microsoft-com:xml-msdata”>
       <xs:element name=”Book” msdata:IsDataSet=”true” msdata:Locale=”nl-BE”>
          <xs:complexType>
             <xs:choice maxOccurs=”unbounded”>
                <xs:element name=”tblBooks”>
                   <xs:complexType>
                      <xs:sequence>
                         <xs:element name=”book_ID” type=”xs:int” minOccurs=”0″ />
                         <xs:element name=”book_title” type=”xs:string” minOccurs=”0″ />
                         <xs:element name=”book_genre_id” type=”xs:int” minOccurs=”0″ />
                         <xs:element name=”book_pages” type=”xs:int” minOccurs=”0″ />
                         <xs:element name=”book_cover_ID” type=”xs:int” minOccurs=”0″ />
                         <xs:element name=”book_year” type=”xs:int” minOccurs=”0″ />
                         <xs:element name=”book_publisher_ID” type=”xs:int” minOccurs=”0″ />
                         <xs:element name=”book_price” type=”xs:double” minOccurs=”0″ />
                         […]
                      </xs:sequence>
                   </xs:complexType>
                </xs:element>
                <xs:element name=”tblPublishers”>
                   <xs:complexType>
                      <xs:sequence>
                         <xs:element name=”publisher_id” type=”xs:int” minOccurs=”0″ />
                         <xs:element name=”publisher_name” type=”xs:string” minOccurs=”0″ />
                      </xs:sequence>
                   </xs:complexType>
                </xs:element>
             </xs:choice>
          </xs:complexType>
       </xs:element>
       <xs:annotation>
          <xs:appinfo>
             <msdata:Relationship name=”BookPublisher” msdata:parent=”tblBooks” 
                   msdata:child=”tblPublishers” msdata:parentkey=”book_publisher_ID”
                   msdata:childkey=”publisher_id” />
          </xs:appinfo>
       </xs:annotation>
    </xs:schema>

    Wijs! Enfin, nu zijn de kinderen terug van het zwembad. Na het eten ga ik nog eens verder kijken om die zooi in controls te krijgen en te wijzigen.

  • Leve Astor Piazzolla!

    Leve Astor Piazzolla!

  • Een oudje maar een goedje:

    Een oudje maar een goedje:

    L’histoire suivante est véridique (ceux qui veulent vérifier peuvent s’adresser aux affaires maritimes canadiennes, l’incident s’est passé en Octobre 1995). 

    Transcription d’une communication radio entre un bateau de la US Navy et les autorités canadiennes au large de Newfoundland. 

    -Américains: Veuillez vous dérouter de 15 degrés Nord pour éviter une collision. A vous. 

    -Canadiens: Veuillez plutôt vous dérouter de 15 degrés Sud pour éviter une collision. A vous. 

    -Américains: Ici le capitaine d’un navire des forces navales américaines. Je répète : Veuillez modifier votre course. A vous. 

    -Canadiens: Non, veuillez dérouter, je vous prie. A vous. 

    -Américains: ICI C’EST LE PORTE AVIONS USS LINCOLN, LE SECOND NAVIRE EN IMPORTANCE DE LA FLOTTE NAVALE DES ETATS- UNIS D’AMERIQUE. NOUS SOMMES ACCOMPAGNE PAR 3 DESTROYERS, 3 CROISEURS ET UN NOMBRE IMPORTANT DE NAVIRES D’ESCORTE. JE VOUS DEMANDE DE DEVIER DE VOTRE ROUTE DE 15 DEGRES NORD OU DES MESURES CONTRAIGNANTES VONT ETRE PRISES POUR ASSURER LA SECURITE DE NOTRE NAVIRE. A VOUS. 

    -Canadiens: Ici, c’est un phare. A vous.

    -Américains: silence.

  • Ik zie juist op CNN

    Ik zie juist op CNN dat de Amerikanen zeggen dat “substantial numbers of US troops” in “central BAghdad” zouden zijn, en dat de mensen dat zouden zien “rond de middag”.

    Het is nu 12u27 in Bagdad, en ik hoop van harte dat de Amerikanen gelijk hebben. No way dat ik hoop dat er alsnog guerillatoestanden van komen, gewoon om te bewijzen dat de VS verkeerd waren. Oorlog is vies, en hoe sneller het gedaan is , hoe beter.