<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3217577255928697209</id><updated>2011-11-27T16:38:21.616-08:00</updated><category term='screenscraping'/><category term='VB.net'/><category term='MCT'/><category term='first post'/><category term='snaplines'/><category term='webbrowser'/><category term='javascript ajax asp.net'/><category term='intro'/><title type='text'>Teaching Minds</title><subtitle type='html'>Het blog voor iedereen die wel eens in .Net wil programmeren.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>38</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-912762163237526286</id><published>2011-01-18T02:37:00.001-08:00</published><updated>2011-01-18T02:37:33.361-08:00</updated><title type='text'>Visual studio layout</title><content type='html'>Jeff atwood's layout. Looks great.&lt;br /&gt;http://dl.dropbox.com/u/8430002/exported-font-and-colors-for-jeff-atwood.vssettings&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-912762163237526286?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/912762163237526286/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=912762163237526286' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/912762163237526286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/912762163237526286'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2011/01/visual-studio-layout.html' title='Visual studio layout'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-621985525737536655</id><published>2010-06-25T06:58:00.000-07:00</published><updated>2010-06-25T07:01:28.212-07:00</updated><title type='text'>Hiding items from designer code</title><content type='html'>UI objects hosted in a panel/form get a lot of designer code added to set properties to 'default' values. Setting those properties to Visibility Hidden or supplying a DefaultValue makes sure the designer code won't call those properties.&lt;br /&gt;&lt;br /&gt;&lt;DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)&gt; &lt;br /&gt;&lt;br /&gt;&lt;DefaultValue(True)&gt;&lt;br /&gt;&lt;br /&gt;Designer code also seems to crash once you do anything 'dangerous' like opening a remoting object or opening a file. Don't do that by checking the IsDesignMode property you can google.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-621985525737536655?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/621985525737536655/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=621985525737536655' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/621985525737536655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/621985525737536655'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2010/06/hiding-items-from-designer-code.html' title='Hiding items from designer code'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-6542653649482878927</id><published>2010-06-25T06:56:00.000-07:00</published><updated>2010-06-25T06:58:28.894-07:00</updated><title type='text'>Devexpress Grid editors force update</title><content type='html'>Sometimes a devexpress grid editor won't update the underlying value because the editor hasn't updated yet.&lt;br /&gt;&lt;br /&gt;Various commands try to force the editor to update the values but the best thing I've found was the following:&lt;br /&gt;&lt;br /&gt;gvwSpotsInFlight.PostEditor() 'Won't work&lt;br /&gt;gvwSpotsInFlight.FocusedRowHandle = 0 'Doesnt seem to work either&lt;br /&gt;' grdSpotsInFlight.RefreshDataSource() 'Not what we're looking for&lt;br /&gt;btnCreateSpVrOwn.Focus() 'Forces the editor to close and workds&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-6542653649482878927?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/6542653649482878927/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=6542653649482878927' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/6542653649482878927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/6542653649482878927'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2010/06/devexpress-grid-editors-force-update.html' title='Devexpress Grid editors force update'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-5666924971932323778</id><published>2009-10-27T03:38:00.000-07:00</published><updated>2009-10-27T03:40:22.713-07:00</updated><title type='text'>Visual studio designer problemen</title><content type='html'>Geregeld komt her voor dat sommige panels niet meer te designen vallen. Dit is een ‘fout’ in visual studio in combinatie met devexpress componenten en multiple inheritance.&lt;br /&gt;Visual studio ‘ziet’ een designer error en zet dan zo’n file op niet designbaar. &lt;br /&gt;&lt;br /&gt;Een oplossing kan zijn:&lt;br /&gt;&lt;br /&gt;*.vbproj file aanpassen en bij de te designen class &lt;SubType&gt;UserControl&lt;/SubType&gt; toe te voegen&lt;br /&gt;&lt;br /&gt;Hier een voorbeeldje van pnlOWSUserControlBase.&lt;br /&gt;&lt;br /&gt; &lt;Compile Include="pnlOWSUserControlBase.Designer.vb"&gt;&lt;br /&gt;      &lt;DependentUpon&gt;pnlOWSUserControlBase.vb&lt;/DependentUpon&gt;&lt;br /&gt;      &lt;SubType&gt;UserControl&lt;/SubType&gt;&lt;br /&gt;    &lt;/Compile&gt;&lt;br /&gt;    &lt;Compile Include="pnlOWSUserControlBase.vb"&gt;&lt;br /&gt;      &lt;SubType&gt;UserControl&lt;/SubType&gt;&lt;br /&gt;    &lt;/Compile&gt;&lt;br /&gt;&lt;br /&gt;Als het goed is toont visual studio meteen open with designer.&lt;br /&gt;(meestal zijn alle classes die van een baseclass afhangen niet te designen. ‘repareer’ dan de baseclass)&lt;br /&gt;&lt;br /&gt;Hopelijk hebben jullie hier iets aan.&lt;br /&gt;&lt;br /&gt;De designer is super gevoelig voor exceptions vang die dan ook altijd af. Desnoods kan je code in designer uitzetten met &lt;br /&gt;&lt;br /&gt;if ( DesignMode ) return;&lt;br /&gt;&lt;br /&gt;De designer voegt ook voor alle properties van objecten automatich initialisatie van alle properties toe. Verstop properties met: &lt;br /&gt;&lt;br /&gt;&lt;DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)&gt; _&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-5666924971932323778?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/5666924971932323778/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=5666924971932323778' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/5666924971932323778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/5666924971932323778'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2009/10/visual-studio-designer-problemen.html' title='Visual studio designer problemen'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-3978685951888726028</id><published>2009-05-06T01:27:00.001-07:00</published><updated>2009-05-06T01:27:52.221-07:00</updated><title type='text'>Een super handige link</title><content type='html'>Het is mogelijk om in ms sql management studio een aantal standaard sql querys aan keyboard shortcuts te hangen. Bijvoorbeeld ctrl + 1.&lt;br /&gt;&lt;br /&gt;http://sqlservercode.blogspot.com/2007/01/increase-your-productivity-with-query.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-3978685951888726028?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/3978685951888726028/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=3978685951888726028' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/3978685951888726028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/3978685951888726028'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2009/05/een-super-handige-link.html' title='Een super handige link'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-4579596871245157101</id><published>2008-10-15T04:59:00.000-07:00</published><updated>2008-10-15T05:14:30.856-07:00</updated><title type='text'>VS.net shortcuts</title><content type='html'>Advanced VS.net keyboard shortcuts&lt;br /&gt;Basic&lt;br /&gt; &lt;br /&gt;Ctrl + shift + B of F6 Save all files and rebuild&lt;br /&gt;Ctrl + s Save current file (*shift voor all files)&lt;br /&gt;F5 Save all rebuild en start with debugging&lt;br /&gt;F4 Open properties (werkt ook op solution files)&lt;br /&gt;F7 Switch designer / code (met shift is terug)&lt;br /&gt;Ctrl + F Search&lt;br /&gt;Ctrl + i Type to search&lt;br /&gt;&lt;br /&gt;Code Opmaak&lt;br /&gt;Ctrl + K , D Auto layout code&lt;br /&gt;Ctrl + K , C Plaats commentaar om geselecteerde regels&lt;br /&gt;Ctrl + K , U Uncomment selection&lt;br /&gt;&lt;br /&gt;Bookmarks   etc  &lt;br /&gt;F12 Go to definition&lt;br /&gt;Ctrl + - Go back (terug van definition of auto bookmark)&lt;br /&gt;Ctrl + shift + - Go Forward (vorige auto bookmark)&lt;br /&gt;Ctrl + B, T Plaats een bookmark&lt;br /&gt;Ctrl + B, P Previous bookmark&lt;br /&gt;Ctrl + B, N Next bookmark&lt;br /&gt;Een autobookmark word aangemaakt als je een korte tijd een regel blijft bekijken.&lt;br /&gt;Intellisense&lt;br /&gt;Ctrl + spatie Forceer intellisense + auto complete bij 1 keuze&lt;br /&gt;Ctrl + . Forceer smart tags menu (using/import etc.)&lt;br /&gt;Door typen met intellisense Incremental search&lt;br /&gt;Pijltje omhoog omlaag met intellisense Loop door opties&lt;br /&gt;Met intellisense drop down open:&lt;br /&gt;tab&lt;br /&gt;spatie&lt;br /&gt;any key &lt;br /&gt;Auto complete zonder spatie&lt;br /&gt;Auto complete met spatie&lt;br /&gt;Auto complete met any key&lt;br /&gt;Refactoring&lt;br /&gt;Ctrl + R, E Encapsulate Field: maak property van private field&lt;br /&gt;Extract Method: Ctrl + R, M &lt;br /&gt;Promote Local Variable: Ctrl + R, P &lt;br /&gt;Remove Parameters: Ctrl + R, V &lt;br /&gt; Rename: Ctrl + R, R &lt;br /&gt;Reorder Parameters: Ctrl + R, O &lt;br /&gt;Surround With dialog: Ctrl + K, S&lt;br /&gt;Debugging&lt;br /&gt; &lt;br /&gt;F5 Save current file rebuild en Start met Debuggen&lt;br /&gt;Shift + F5 Start zonder debuggen&lt;br /&gt;Ctrl + shift + B Save all files and rebuild&lt;br /&gt;F9 Insert breakpoint&lt;br /&gt;F10 Step over&lt;br /&gt;F11 Jump into function&lt;br /&gt;Slepen aan de gele pijl Pas instructie pointer aan naar vorige regel&lt;br /&gt;Code aanpassen bij een breakpoint Pas code aan (edit and continue)&lt;br /&gt;Let hierbij wel op geen functies of try catch statements aan te passen, dat mag niet.&lt;br /&gt;Snippets&lt;br /&gt;Alle snippets werken door het invoeren van twee keer tab&lt;br /&gt;Ctrl+ K , X Open snippets dropdown&lt;br /&gt;Prop +tab tab Maak een nieuwe property met een simpele wizard, switch van veld naar veld met tab en stop de wizard met enter.&lt;br /&gt;ctor&lt;br /&gt;~&lt;br /&gt;svm&lt;br /&gt;Cw Constructor&lt;br /&gt;Destructor&lt;br /&gt;Static void main&lt;br /&gt;Console.writeline&lt;br /&gt;For&lt;br /&gt;Foreach While&lt;br /&gt;If Else&lt;br /&gt;Switch Try&lt;br /&gt;Tryf&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Default&lt;br /&gt;Copy paste, undo redo werken ook in visual studio.&lt;br /&gt;Win + e  -&gt;  windows explorer&lt;br /&gt;Ctrl + shift + escape -&gt; task manager&lt;br /&gt;Win + 1 … -&gt; quick start shortcut starts&lt;br /&gt;&lt;br /&gt;R-alt + enter -&gt; full screen vpc&lt;br /&gt;R-alt + del -&gt; ctrl alt del in vpc&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-4579596871245157101?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/4579596871245157101/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=4579596871245157101' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/4579596871245157101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/4579596871245157101'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2008/10/vsnet-shortcuts.html' title='VS.net shortcuts'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-1885450356665986777</id><published>2008-10-06T01:56:00.000-07:00</published><updated>2008-10-06T05:14:27.861-07:00</updated><title type='text'>Live op de SDC</title><content type='html'>De software development nederland conference is in volle gang. Sessies van Silverlight tot TSQL, van het antieke delphi tot F#.&lt;br /&gt;&lt;br /&gt;Ik ben begonnen met een sessie over annotations in silverlight, een rustige wake up.&lt;br /&gt;Hierna een introductie F#, dat scheelt me weer flink wat onderzoek.&lt;br /&gt;Verder aan de slag met een introduction entity framework&lt;br /&gt;daarna zie ik wel weer wat er verder gebeurd.&lt;br /&gt;&lt;br /&gt;Binennkort zelf maar een sessie regelen over design patterns.&lt;br /&gt;&lt;br /&gt;F#&lt;br /&gt;&lt;br /&gt;Met F# is het mogelijk om grote berekeningen op veel data te verwerken. Het tonen van een formpje met een button ed. is echter een stuk minder praktisch. F# is vooral bedoeld voor academici en statistischi.&lt;br /&gt;&lt;br /&gt;Tijdens de sessie over F# een mooie introductie gehad over functioneel programmeren.&lt;br /&gt;FP is het schrijven van functies met input en output parameters die zo min mogelijk side effects hebben. Door weinig side effects is het makkelijk om de functionele  code parallel uit te voeren. F# is een taal met een compleet andere gedachte goed dan C#. F# heeft een heleboel functionaliteit aan de .Net Common Intermediate Language (CIL) toegevoegd. Technieken zoals generics, lamda expressies en linq zijn compleet aan F# (en andere FP talen) te danken.&lt;br /&gt;&lt;br /&gt;Veel andere FP technieken zoals currying zijn ook in F# aanwezig en alleen met een omweg of bergen code mogelijk in C#.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-1885450356665986777?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/1885450356665986777/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=1885450356665986777' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/1885450356665986777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/1885450356665986777'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2008/10/live-op-de-sdc.html' title='Live op de SDC'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-1439850867496910910</id><published>2008-06-16T06:28:00.000-07:00</published><updated>2008-06-16T06:54:18.857-07:00</updated><title type='text'>MCP'er worden</title><content type='html'>Microsoft Certified Professional ben je zodra je een microsoft examen hebt gehaalt. Maar er zijn nog veel meer termen. De termen MCTS(technology specialist) en MCPD(professional developer) zij de opvolgers van de MCAD.net term (Microsoft Certified Application Developer). De MCAD.net term zal worden gediscontinued vanaf 31 mei 2009.&lt;br /&gt;&lt;br /&gt;Over mijn complete .Net 2.0 certificatie heb ik 11 maanden gedaan. (dit is met tijd van mijn baas, niet alleen in eigen tijd)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Hieronder staat een korte uitleg over de .Net 2.0 certificaten. De drie grote developer groepen zijn:&lt;br /&gt;&lt;br /&gt;Technology Specialist (MCTS)&lt;br /&gt; .Net Framework 2.0: Windows Applications &lt;br /&gt; .Net Framework 2.0: Web Applications  &lt;br /&gt; .Net Framework 2.0: Distributed Applications&lt;br /&gt;&lt;br /&gt;De vervolgen hierop zijn de Pro's&lt;br /&gt;&lt;br /&gt;Professional Developer (MCPD)&lt;br /&gt; Windows Developer &lt;br /&gt; Web Developer &lt;br /&gt; Enterprise Application Developer &lt;br /&gt;&lt;br /&gt;De examens die hierbij horen zijn:&lt;br /&gt;526 TS: Microsoft® .NET Framework 2.0 - Windows®-based Client Development  &lt;br /&gt;528 TS: Microsoft® .NET Framework 2.0 - Web-based Client Development  &lt;br /&gt;529 TS: Microsoft® .NET Framework 2.0 - Distributed Application Development  &lt;br /&gt;536 TS: Microsoft® .NET Framework 2.0 - Application Development Foundation &lt;br /&gt;&lt;br /&gt;549 PRO: Designing and Developing Enterprise Applications &lt;br /&gt;547 PRO: Designing and Developing Web-based Applications &lt;br /&gt;548 PRO: Designing and Developing Windows®-based Applications &lt;br /&gt;&lt;br /&gt;Microsoft is sinds april 2008 bezig met de 3.5 certificatie. Die bestaat uit:&lt;br /&gt;&lt;br /&gt;Technology Specialist (MCTS)&lt;br /&gt;.NET Framework 3.5, Windows Presentation Foundation Applications&lt;br /&gt;.NET Framework 3.5, Windows Communication Foundation Applications&lt;br /&gt;.NET Framework 3.5, Windows Workflow Foundation Applications&lt;br /&gt;.NET Framework 3.5, Windows Forms Applications&lt;br /&gt;.NET Framework 3.5, ASP.NET Applications&lt;br /&gt;.NET Framework 3.5, ADO.NET Applications&lt;br /&gt; &lt;br /&gt;Professional Developer (MCPD)&lt;br /&gt;Windows Developer 3.5&lt;br /&gt;ASP.NET Developer 3.5&lt;br /&gt;&lt;br /&gt;Hier hoort ook weer een flink pakket examens bij:&lt;br /&gt;  Exam 70-502: TS: Microsoft .NET Framework 3.5 - Windows Presentation Foundation &lt;br /&gt;  Exam 70-503: Microsoft .NET Framework 3.5 - Windows Communication Foundation  &lt;br /&gt;  Exam 70-504: TS: Microsoft .NET Framework 3.5 - Windows Workflow Foundation  &lt;br /&gt;  Exam 70-505: TS: .NET Framework 3.5, Windows Forms Application Development  &lt;br /&gt;  Exam 70-561: TS: Microsoft .NET Framework 3.5, ADO.NET Application Development  &lt;br /&gt;  Exam 70-562: TS: Microsoft .NET Framework 3.5, ASP.NET Application Development  &lt;br /&gt;  Exam 70-563: Pro: Designing and Developing Windows Applications Using the Microsoft .NET Framework 3.5   &lt;br /&gt;  Exam 70-564: Pro: Designing and Developing ASP.NET Applications Using the Microsoft .NET Framework 3.5   &lt;br /&gt;&lt;br /&gt;Deze examens hoop ik de komende 11 maanden te halen.&lt;br /&gt;&lt;br /&gt;Naast microsoft zijn er ook nog andere examens waar ik aan werk. Ik ben nu druk bezig met een OMG examen. Het Object Management Group UML specification Foundation en Intermediate examen (www.omg.org) ook wel weer een uitdaging.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-1439850867496910910?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/1439850867496910910/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=1439850867496910910' title='1 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/1439850867496910910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/1439850867496910910'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2008/06/mcper-worden.html' title='MCP&apos;er worden'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-7473533216632364492</id><published>2008-06-04T04:17:00.001-07:00</published><updated>2008-06-04T04:17:39.034-07:00</updated><title type='text'>Hoe haal het meeste uit een training</title><content type='html'>Het volgens van een cursus is zwaar en dagen lang scherp opletten is vermoeidend. Om het maximale uit de inzet te halen hier een aantal tips om het meeste uit een training te halen.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Voor de training:&lt;/span&gt;&lt;br /&gt;Het klinkt als een inkoppertje, maar als je een training gaat volgens is het fijn om te weten waar de training over gaat. Ook verschillende onderwerpen van een training zijn ontzettend interssant. De brug tussen praktijk en theorie leggen voor de cursus zorgt ervoor dat de onderwerpen meer spreken en beter blijven hangen.&lt;br /&gt;&lt;br /&gt;De meeste trainingen worden gevolgd om een bepaald doel te halen. Wat is het doel van de training? Word een training gevolgd om nieuwe technieken te leren, word er een training gevolgd om theorie bij de praktijk te leren of word de training gevolgd om voor de toekomst klaar te zijn. Zorg dat het doel bij iedereen bekend is en ga voor het halen van dat doel.&lt;br /&gt;&lt;br /&gt;Naast het bekijken van de stof is fris uitgeslapen verschijnen altijd een goed punt. Zeker als het op het werk druk is of er een deadline naderd is even uitrusten voor de training een belangrijk punt.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Tijdens de training:&lt;/span&gt;&lt;br /&gt;Bij het begin van de training word er altijd verteld wat de onderwerpen voor de dag zijn. Welke onderdelen spreken je het meest aan en wat zijn de belangrijke onderwerpen, schrijf deze gerust ook op als aantekening. Het notitie blok ligt niet voor niets klaar.&lt;br /&gt;&lt;br /&gt;Worden er nieuwe woorden of technieken besproken maak dan een aantekening. Het is niet zo dat je de aantekening s’avonds of na de cursus nog door moet lezen (dat kan natuurlijk wel). Belangrijk is het voor de hersenen om te weten dat iets belangrijk is en dus onthouden moet worden.&lt;br /&gt;&lt;br /&gt;Legt een docent een onderwerp uit dat belangrijk is, vraag dan gerust verdiepingsvragen aan de docent. De kern van leren en onthouden blijft herhalen en herhalen.&lt;br /&gt;&lt;br /&gt;Neem de pauze’s en gebruik ze om even helemaal iets anders te doen. Een hele dag lang scherp blijven kost veel energie die af en toe bij geladen moet worden.&lt;br /&gt;&lt;br /&gt;Als laatste nog een kleine tip, zorg ervoor dat je in de pauze niet te zwaar eet. Een hamburger, kroket of kaassoufle is soms heel erg lekker maar zorgt er wel voor dat rond een uur of 2-3 de vermoeidheid inzet. Beter is het om een stevig stuk bruinbrood met wat zoet beleg te eten en in de pauze’s nog een gezond hapje (neem gerust in de lunch een appel mee of een plak ontbijtkoek). Hiernaast is het natuurlijk belangrijk om voldoende te drinken zowel koffie thee en een beker water zorgen ervoor dat je makkelijker wakker blijft. &lt;br /&gt;&lt;br /&gt;Er staat trouwens ook achter in het gebouw een cola automaat met goedkope blikjes fris.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Na een traningsdag:&lt;/span&gt;&lt;br /&gt;Het laatste dat iemand leert op een dag blijft het beste bewaard. Een ander trainingsboek lezen na een cursus of urenlang tv kijken zorgt er niet voor dat de cursusstof blijft hangen. Probeer na de training nog iets te sporten, wat tijd voor jezelf te maken en lekker op tijd te gaan slapen.&lt;br /&gt;&lt;br /&gt;Nog even de cursus stof doorlezen of iets uitzoeken is natuurlijk ook een goede manier om zoveel mogelijk te leren.&lt;br /&gt;&lt;br /&gt;Na de training:&lt;br /&gt;Bekijk na de training nog eens welke punten besproken zijn en wat de interessante onderwerpen zijn. Is er een onderwerp in de cursus dat je in het werk gebruikt? Zijn er technieken besproken die goed gebruikt kunnen worden in de praktijk?  lees dan gerust de hoofstukken of de aantekeningen nog eens door en gebruik de opgedane kennis zoveel mogelijk.&lt;br /&gt;&lt;br /&gt;De beste manier om de kennis te blijven onthouden is het uitleggen aan anderen van de geleerde technieken. Zijn er mischien onderwerpen besproken die ook voor collega’s interessant zijn?&lt;br /&gt;&lt;br /&gt;Met deze tips en trucks kan het rendement van een training omhoog schieten.&lt;br /&gt;&lt;br /&gt;Als laatste wil ik u nog veel leerplezier wensen bij de cursussen en/of trainingen die u volgt.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-7473533216632364492?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/7473533216632364492/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=7473533216632364492' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/7473533216632364492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/7473533216632364492'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2008/06/hoe-haal-het-meeste-uit-een-training.html' title='Hoe haal het meeste uit een training'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-8441720966794408486</id><published>2008-05-23T00:26:00.000-07:00</published><updated>2008-05-23T00:36:49.305-07:00</updated><title type='text'>Blog live van de devdays's 2008</title><content type='html'>De devdays dit jaar zijn weer georganiseerd in de RAI. Een groot complex waarin makkelijk valt te verdwalen. Vorig jaar was de opmerking dat de zalen lastig waren te vinden en daarom hebben ze dit jaar de zalen nog beter verstopt.&lt;br /&gt;&lt;br /&gt;Overal word vemeld dat je naar de foyer toe moet terwijl op de RAI borden over zaal 8 word gesproken. De forum zaal heet op de borden FO. Hilariteit gegarandeerd.&lt;br /&gt;&lt;br /&gt;De oplossing van microsoft hierbij is om flink wat mensen/leuke dames neer te zetten die de weg kunnen wijzen. Helaas werkt dat niet ideaal. Verder is er bij de ingang een roltrap omhoog waar s'ochtends in alle drukte een beveiligings meneertje voor staat die niemand doorlaat ook niet als dat 10 minuten in de rij staan voorkomt. Yeah!&lt;br /&gt;&lt;br /&gt;Wat ik zoek is een aantal grote borden waarin staat aangegeven hoe de zaal heet en welke zaal het dichts bijzijnde is. Binnenkort een aantal voorbeelden.&lt;br /&gt;&lt;br /&gt;Er is ook goednieuws, de shows dit jaar zijn goed.&lt;br /&gt;Ik ben naar de volgende shows geweest:&lt;br /&gt;&lt;br /&gt;dag 1&lt;br /&gt;Keynote why software sukcs&lt;br /&gt;David Platt&lt;br /&gt;&lt;br /&gt;Advanced debugging with VS2008&lt;br /&gt;Ingo Rammer&lt;br /&gt;&lt;br /&gt;Understanding Ado.net entity framework&lt;br /&gt;Mike Taulty&lt;br /&gt;&lt;br /&gt;Hierna wilde ik naar: Using WPF for good and not evil van David Platt helaas zat hierbij de zaal overvol. Dus ben ik naar WCF en WF van Ingo Rammer geweest.&lt;br /&gt;&lt;br /&gt;WCF on the WEB: Using REST and JSON with wcf&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;dag 2&lt;br /&gt;Daar zit ik nu nog live in: meer nieuws volgt&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-8441720966794408486?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/8441720966794408486/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=8441720966794408486' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/8441720966794408486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/8441720966794408486'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2008/05/blog-live-van-de-devdayss-2008.html' title='Blog live van de devdays&apos;s 2008'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-7022373979398385618</id><published>2008-05-17T10:22:00.000-07:00</published><updated>2008-05-17T10:25:27.025-07:00</updated><title type='text'>(de)evolutie</title><content type='html'>Distributed applications&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Computers zijn zo’n 50 jaar geleden uitgevonden. Van die grote kasten met een klein schermpje.&lt;br /&gt;&lt;br /&gt;Van deze terminals die een som tegelijk konden doen zijn er niet veel gebouwd. De eerste computers werden veel gebruikt voor complexe berekeningen en de mensen van de invoer via een toetsenbordje/printplaat ingang konden de verwerkings snelheid van computers amper bij houden. Zo’n super snelle computer was het grootste gedeelte van zijn tijd niets aan het doen.&lt;br /&gt;&lt;br /&gt;Om de dure computers effiecienter te kunnen gebruiken waren er trucjes nodig om twee of meer processen tegelijk uit te voeren. De code die daarbij hoorde van toendertijd al ontzettend complex. Zodra de threads waren uitgevonden konden er meerdere processen tegelijk uitgevoerd worden op de mainframes en konder er verschillende invoer stationnen/ terminals gebruikt worden om de computer een groter gedeelte van de tijd aan het werk te houden.&lt;br /&gt;&lt;br /&gt;Omdat computer steeds sneller werden kwamen er ook meer en meer terminals bij en ook steeds complexere software. De complexe software vroeg steeds meer van de mainframes die door de hogere load ook steeds trager ging reageren. Een brief typen met een IO output elke 3 secondes was normaal. (gelukkig hebben we nu 50 jaar later daar nooit last van met pc’s die miljoenen keer sneller zijn)&lt;br /&gt;&lt;br /&gt;Omdat de mainframes steeds goedkoper waren was het mogelijk om meer computers te gebruiken en in de loop van de jaren is de verhouding tussen gebruikers en computers door gegroeid naar 1 op 1. Momenteel is het zelfs niet raar dat mensen meerdere computers voor zich hebben. (eentje thuis, eentje op het werk, in de auto)&lt;br /&gt;&lt;br /&gt;Bedrijfs applicaties zijn minder snel gegroeid. Van centrale mainframes waar alle data op bewaard werd naar centrale servers waar clients hun data naar toe schrijven is de verhouding zo goed als gelijk gebleven. Een centrale computer die al de data bewaards. De clients zijn wel steeds slimmer geworden maar de centrale server is nog steeds de kern in het verhaal.&lt;br /&gt;&lt;br /&gt;Omdat ook bedrijven complexer zijn geworden zijn bedrijfs applicaties zich ook gaan spreiden. Van een server met een losse database server naar complexere omgevingen waar de verschillende blokken data zoals personeels gegevens, salaris administratie en documenten bewaar server losse onderdelen zijn geworden die toch aan een bedrijfs proces werken.&lt;br /&gt;&lt;br /&gt;De losse data servers en applicaties servers zijn los staande brokken functionaliteit. Ze werken regelmatig nog niet samen voor een vloeiend bedrijfsproces. Bij de gemeente zaanstad zijn er momenteel een 17 tal personeels gegevens servers. Denk hierbij aan:&lt;br /&gt;&lt;br /&gt;Bewoners en huizen&lt;br /&gt;Vuilnis&lt;br /&gt;Mensen die mogen stemmen&lt;br /&gt;Parkeer vergunningen&lt;br /&gt;vergunning voor honden en katten&lt;br /&gt;Bedrijven&lt;br /&gt;Belasting systeem gemeente&lt;br /&gt;Belasting systeem overheid Noord-Holland&lt;br /&gt;Belasting systeem overheid nederland&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;En deze servers zijn dus regelmatig niet synchroon. Het synchroniseren van deze 17 systemen is super lastig, niet altijd wenselijk en extreem duur.&lt;br /&gt;&lt;br /&gt;Al deze systemen werken natuurlijk op verschillende manieren, kunnen niet met elkaar communiceren, vallen onder de verantwoordelijkheid van verschillende ‘groepen’ en niet alle systemen werken met real time data updates.&lt;br /&gt;&lt;br /&gt;Hoe kunnen deze problemen opgelost worden, hoe kan een stapel problemen zich wegwerken. Tegen deze problemen word er meestal met de term SOA gegooid.&lt;br /&gt;&lt;br /&gt;Service Oriented Design zou dit woud van services moeten stroom lijnen tot een geheel.&lt;br /&gt;&lt;br /&gt;Vervang de toegang tot een enkel dubbel uitgevoerde server die de berichter zelf verstpreid over het netwerk. Was het maar zomakkelijk gezegd als gedaan.&lt;br /&gt;&lt;br /&gt;Ik kan me sinds kort goed voorstellen waarom het zo lang duurt bij de balie en waarom de medewerkers achter kogelvrij glas zitten.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-7022373979398385618?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/7022373979398385618/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=7022373979398385618' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/7022373979398385618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/7022373979398385618'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2008/05/deevolutie.html' title='(de)evolutie'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-8040797436386918179</id><published>2008-05-09T02:37:00.001-07:00</published><updated>2008-05-09T02:38:06.695-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript ajax asp.net'/><title type='text'>Crash course Javascript programming</title><content type='html'>Hierbij alles dat interessant is in javascript in 5 minuten.&lt;br /&gt;Alleen geschikt voor ervaren programmeurs met java/c++ of c# kennis.&lt;br /&gt;&lt;br /&gt;//JScript File&lt;br /&gt;//call function Object and create a new one from the return value&lt;br /&gt;var temp = new Object();&lt;br /&gt;var book = {}; //zelfde&lt;br /&gt;&lt;br /&gt;book.bladzijden = 500;&lt;br /&gt;book.title = 'a book title';&lt;br /&gt;book['title'] = 'book title changed';&lt;br /&gt;&lt;br /&gt;for(var p in book)&lt;br /&gt;{&lt;br /&gt;    alert('name:' + p + '  value:' + book[p]);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//create a new array&lt;br /&gt;var arr = new Array();&lt;br /&gt;var a = [];&lt;br /&gt;&lt;br /&gt;arr[0] = 'appel';&lt;br /&gt;arr[1] = new Object();&lt;br /&gt;arr.push(42);&lt;br /&gt;Array.enqueue(arr,"indextwee");&lt;br /&gt;Array.addRange(arr,arr);&lt;br /&gt;&lt;br /&gt;function add(a,b)&lt;br /&gt;{&lt;br /&gt;return a+b;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;var calc = {};&lt;br /&gt;calc.add = function(a,b)&lt;br /&gt;{&lt;br /&gt;    return a+b;&lt;br /&gt;}&lt;br /&gt;calc.multiply = function(a,b)&lt;br /&gt;{&lt;br /&gt;    return a*b;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//a closured function&lt;br /&gt;function parent(args)&lt;br /&gt;{&lt;br /&gt;    var test = "a test var";&lt;br /&gt;&lt;br /&gt;    function nested()&lt;br /&gt;    {&lt;br /&gt;        alert(args + test);  &lt;br /&gt;    }&lt;br /&gt;  return nested; //starting parent starts nested function   &lt;br /&gt;}&lt;br /&gt;parent("This is a ");&lt;br /&gt;var dynamic = parent("This is a dynamic ");&lt;br /&gt;dynamic(); //currying / templating&lt;br /&gt;&lt;br /&gt;function Cat()&lt;br /&gt;{&lt;br /&gt;    this._name = '';&lt;br /&gt;    this._age = 0;  &lt;br /&gt;}&lt;br /&gt;Cat.prototype.speak = function(){&lt;br /&gt;    alert(this._name + " says Meeeowww!");&lt;br /&gt;}&lt;br /&gt;Cat.registerClass('Cat'); //only a single cat can exists&lt;br /&gt;//Cat.registerClass('Cat'); //ajax exception&lt;br /&gt;&lt;br /&gt;var cat = new Cat();&lt;br /&gt;cat.speak();&lt;br /&gt;&lt;br /&gt;//quick construction&lt;br /&gt;var p = { firstName: 'John' , lastName:'Doe'} //basis voor JSON&lt;br /&gt;var a = [1,2,3,4,5];&lt;br /&gt;&lt;br /&gt;var group = {&lt;br /&gt;name:'',&lt;br /&gt;members:['jack','smith','andrew'] ,&lt;br /&gt;count:function() { alert('a strange construction'); }&lt;br /&gt;}&lt;br /&gt;//"zestig"&lt;br /&gt;var getal = parseInt('600'); //resolve naar 600 number&lt;br /&gt;for( var i=0;i&lt;10;i++)&lt;br /&gt;{&lt;br /&gt;//dummy for&lt;br /&gt;}&lt;br /&gt;while(false)&lt;br /&gt;{&lt;br /&gt;//dummy while&lt;br /&gt;}&lt;br /&gt;//a recursive function (watch out for infinite loop)&lt;br /&gt;var counter = 0;&lt;br /&gt;function rec()&lt;br /&gt;{&lt;br /&gt;    counter ++;&lt;br /&gt;    alert(counter);&lt;br /&gt;    if(counter &lt; 10)&lt;br /&gt;    {&lt;br /&gt;        setTimeout(rec(),100);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;//asp.net ajax only document.getElementById browser onafhankelijk&lt;br /&gt;//$get("lbl1").innerHTML&lt;br /&gt;//asp.net ajax only manier om dom events toe te voegen en verwijderen&lt;br /&gt;//$addHandler(domobject,eventname,eventfunction);&lt;br /&gt;//$removeHandler(domobject,eventname,eventfunction);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-8040797436386918179?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/8040797436386918179/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=8040797436386918179' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/8040797436386918179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/8040797436386918179'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2008/05/crash-course-javascript-programming.html' title='Crash course Javascript programming'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-39558867068109319</id><published>2008-03-25T05:06:00.000-07:00</published><updated>2008-03-25T05:49:07.321-07:00</updated><title type='text'>een nieuwe andere Taal</title><content type='html'>Een paar maanden geleden heb ik een Ajax .Net cursus gegeven. De javascript omgeving die daar bij hoort is voor mij redelijk nieuw. Het leren van de javascript omgeving was redelijk eenvoudig.&lt;br /&gt;&lt;br /&gt;De afgelopen maand heb ik een cursus Flex gegeven. Een ontwikkel omgeving van Adobe die met gebruik van flash het mogelijk maakt om makkelijk een UI te maken en te gebruiken in de browser omgeving (flex library als componenten flash als runtime en actionscript/javascript als code). Hierover volgt als tijd het toestaat binnenkort nog een blog. Het is best raar om in een managed omgeving te werken zonder daar 'alles' van te weten zoals ik met de .Net omgeving werk.&lt;br /&gt;&lt;br /&gt;Na het oppakken van 2 nieuwe talen was ik wel weer toe aan een nieuwe uitdaging. &lt;br /&gt;Ik speel zelf graag world of warcraft en speel daarin een hunter. Een hunter loopt samen met zijn 'pet' (meestal krijgen ze een naam) door de wereld om daar allerlei avonturen te beleven.&lt;br /&gt;&lt;br /&gt;Het leven van een pet is redelijk eenvoudig, ze zeggen nooit iets en laten alleen af en toe merken dat ze minder blij zijn. Als je ze vervolgens wat te eten geven worden ze weer blijer en doe ze ook meer schade aan monsters om hun heen.&lt;br /&gt;&lt;br /&gt;Om een 'pet' wat meer leven te geven bestaat er een wow-addon. De wow engine draait custom script code die allerlei eenvoudige akties kan uitvoeren (niets 'complex' omdat je dan makkelijk een wow-hack kan maken). Een van de akties die een wow addon mag uitvoeren zijn het vertellen van berichtjes nav een aktie in de wereld.&lt;br /&gt;&lt;br /&gt;Een mede add-on bouwer heeft een addon geschreven die als je je 'Pet' voerd laat merken dat hij blij is met het eten. Zelf heb ik deze addon uitgebreid met functionaliteit om de pet meer te laten zeggen. Als de pet een tegenstander mist laat hij blijken dat hij dat verveldn vind en als ik in gevecht ben wilt mijn pet mij helpen mijn target te vermoorden.&lt;br /&gt;&lt;br /&gt;De taal waar de add-ons in geschreven zijn heet Lua en is een scripting taal. Het herladen van een add-on kan met het commando /reloadui.&lt;br /&gt;&lt;br /&gt;Een voorbeeld stukje Lua:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;bestand PetEmote.lua:&lt;/span&gt;&lt;br /&gt;function PetEmote_OnLoad ()&lt;br /&gt;	this:RegisterEvent("UNIT_HAPPINESS");&lt;br /&gt;	this:RegisterEvent("CHAT_MSG_SPELL_TRADESKILLS");	&lt;br /&gt;	this:RegisterEvent("CHAT_MSG_COMBAT_PET_MISSES");&lt;br /&gt;end&lt;br /&gt;--dit is commentaar&lt;br /&gt;--deze functie word aangeroepen bij elk event&lt;br /&gt;--waarschijnnlijk worden meerdere events in een function call verwerkt dus daarom geen if else&lt;br /&gt;function PetEmote_OnEvent()&lt;br /&gt;	if (event == "UNIT_HAPPINESS") then&lt;br /&gt;		PetEmote_HappinessChanged();&lt;br /&gt;	end&lt;br /&gt;	if (event == "CHAT_MSG_SPELL_TRADESKILLS") then&lt;br /&gt;		MarsMessageParser_ParseMessage("PetEmote", arg1);&lt;br /&gt;	end&lt;br /&gt;	if(event == "") then&lt;br /&gt;	end&lt;br /&gt;	if(event == "CHAT_MSG_COMBAT_PET_MISSES") then&lt;br /&gt;--do not spam messages every event&lt;br /&gt;		if(random(1,5) &gt; 2) then&lt;br /&gt;			if (PetEmote_HasPet()) then&lt;br /&gt;				PetEmote_Miss();&lt;br /&gt;			end&lt;br /&gt;		end&lt;br /&gt;	end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;-this function is called on pet miss&lt;br /&gt;--this function is abused to force random emotes other then misses&lt;br /&gt;function PetEmote_Miss()&lt;br /&gt;		local arandom = random(1, 6);&lt;br /&gt;		--PetEmote_DoEmote(arandom);&lt;br /&gt;		local missEmotes = getn(PetEmote_MissMessages["default"]);&lt;br /&gt;		--PetEmote_DoEmote(missEmotes);&lt;br /&gt;		local randomEmote = random(1 , missEmotes);&lt;br /&gt;		--PetEmote_DoEmote(randomEmote);&lt;br /&gt;&lt;br /&gt;		local pName = UnitName("player");&lt;br /&gt;		local pTarget = UnitName("target");&lt;br /&gt;		local petTarget = UnitName("pettarget");&lt;br /&gt;		&lt;br /&gt;		local emptyMessage = PetEmote_MissMessages["default"][randomEmote];&lt;br /&gt;		local replacedEmote  = "";&lt;br /&gt;		&lt;br /&gt;		--if we dont have any targets&lt;br /&gt;		if( pName ~= nil and pTarget ~= nil and petTarget ~= nil) then&lt;br /&gt;			replacedEmote = gsub(emptyMessage, "$n", pName);&lt;br /&gt;			replacedEmote = gsub(replacedEmote, "$t", pTarget);&lt;br /&gt;			replacedEmote = gsub(replacedEmote, "$x", petTarget);&lt;br /&gt;		end&lt;br /&gt;		if( pName ~= nil and pTarget ~= nil and petTarget ~= nil) then&lt;br /&gt;			PetEmote_DoEmote(replacedEmote);	&lt;br /&gt;		end&lt;br /&gt;end&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;bestand localization.lua&lt;/span&gt;&lt;br /&gt;PetEmote_MissMessages={&lt;br /&gt;	["default"] = {&lt;br /&gt;		"is sad he missed",&lt;br /&gt;		"growls at missing his target",&lt;br /&gt;		"hits the empty air",&lt;br /&gt;		"looks at $n for some help",&lt;br /&gt;		"wants to hit $t very hard",&lt;br /&gt;		"wants to help $n kill $t",&lt;br /&gt;	},&lt;br /&gt;	["Debug"] = {&lt;br /&gt;		"looks at $n for some help",&lt;br /&gt;		"wants to hit $x very hard",&lt;br /&gt;		"wants to help $n kill $t",&lt;br /&gt;	},&lt;br /&gt;	-- ["Bat"] = {},&lt;br /&gt;}&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;addon definitie bestand Petemote.xml&lt;/span&gt;&lt;br /&gt;span style="font-style:italic;"&gt;&lt;Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/&lt;br /&gt;C:\Projects\WoW\Bin\Interface\FrameXML\UI.xsd"&lt;br /&gt;Script file="MarsMessageParser.lua"/&lt;br /&gt;Script file="PetEmote.lua"/&gt;&lt;br /&gt;Frame name="PetEmote" parent="UIParent" hidden="false"&gt;&lt;br /&gt;Scripts&gt;&lt;br /&gt;OnLoad&gt; PetEmote_OnLoad(); &lt;/OnLoad&gt;&lt;br /&gt;OnEvent&gt; PetEmote_OnEvent(); &lt;/OnEvent&gt;&lt;br /&gt;/Scripts&gt;&lt;br /&gt;/Frame&gt;&lt;br /&gt;/Ui&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Het leuke aan deze taal is dat er een VS.2005 plug in voor is met syntax highlighting auto complete en een gedeeltelijke intellisense.&lt;br /&gt;www.codeplex.com/WarcraftAddOnStudio&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-39558867068109319?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/39558867068109319/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=39558867068109319' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/39558867068109319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/39558867068109319'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2008/03/een-nieuwe-andere-taal.html' title='een nieuwe andere Taal'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-9148389224407753526</id><published>2008-01-24T11:24:00.001-08:00</published><updated>2008-01-24T11:36:41.827-08:00</updated><title type='text'>Eigen fout</title><content type='html'>Iedereen maakt wel eens fouten, opzich geen probleem maar ik maak ook wel eens fouten.&lt;br /&gt;&lt;br /&gt;Deze week geef ik de advanced .net framework cursus met daarin een hoofdstuk over security. In een van de voorbeelden die ik gemaakt heb gebeurd het volgende:&lt;br /&gt;&lt;br /&gt;Er is een gebruiker met de naam Dummy&lt;br /&gt;De Dummy gebruiker heeft geen rechten op de c:\&lt;br /&gt;De code maakt en verwijderd vervolgens een bestand in de de temp directory -&gt; securtiy exception&lt;br /&gt;Via een stukje code krijgt de Dummy gebruiker rechten op de c:\temp\ directory&lt;br /&gt;De code maakt en verwijderd vervolgens een bestand in de de temp directory zonder exception&lt;br /&gt;&lt;br /&gt;Na het aanmaken van de dummy gebruiker zag ik dat deze gebruiker volledige rechten had op de c:\ schijf omdat de dummy gebruiker Administrator rechten had. Toen kon ik twee dingen doen:&lt;br /&gt;&lt;br /&gt;De dummy gebruiker 'normal' user maken&lt;br /&gt;De Administrator groep als rechthebbende van de c:\ schijf verwijderen.&lt;br /&gt;&lt;br /&gt;Slim als ik ben heb ik natuurlijk gekozen voor beide oplossingen. Vervolgens was er geen gebruiker meer op het systeem die volledige rechten had op de c:\ schijf. De administrators hadden geen 'Full' rechten meer en alle users van het systeem hadden read en write rechten op de c:\ schijf.&lt;br /&gt;&lt;br /&gt;Omdat ik VS.net 2008 geinstalleerd heb met de setup /q is de installatie verlopen onder het system account met 'Full' rechten op het hele systeem (is dat geen vunerability?)&lt;br /&gt;&lt;br /&gt;Nadat ik dus het probleem van de rechten had gevonden moest ik het ook nog oplossen. Helaas was er geen gebruiker meer met voldoende rechten op de c:\ schijf om de rechtenstructuur aan te passen. Er was geen gebruiker meer met 'Full' rechten. Anders dan de system gebruiker en met de system gebruiker kan je niet inloggen.&lt;br /&gt;&lt;br /&gt;Onder windows is er echter een tooltje met de naam TAKEOWN dat gebruikt kan worden om de ownership van bestanden over te nemen zolang je maar als administrator draait. De Takeown heeft ook een UI verstopt bij:&lt;br /&gt;&lt;br /&gt;drive-&gt;properties-&gt;advanced-&gt;owner&lt;br /&gt;&lt;br /&gt;En dan maar kiezen voor "change owner to"&lt;br /&gt;&lt;br /&gt;De code die je kan gebruiker om een overzicht van rechten te maken:&lt;br /&gt;            DirectoryInfo di = new DirectoryInfo(Path.GetDirectoryName(tbFileLocation.Text));&lt;br /&gt;            DirectorySecurity ds = di.GetAccessControl();&lt;br /&gt;            AuthorizationRuleCollection rules = ds.GetAccessRules(true, true, typeof(NTAccount));&lt;br /&gt;            textBox1.Text = "";&lt;br /&gt;            foreach (FileSystemAccessRule fr in rules)&lt;br /&gt;            {&lt;br /&gt;                textBox1.Text += fr.IdentityReference + br;&lt;br /&gt;                textBox1.Text += fr.AccessControlType + br;&lt;br /&gt;                textBox1.Text += fr.FileSystemRights + br;&lt;br /&gt;                textBox1.Text += fr.InheritanceFlags + br;&lt;br /&gt;                textBox1.Text += fr.PropagationFlags + br;&lt;br /&gt;                textBox1.Text += fr.IsInherited + br;&lt;br /&gt;                textBox1.Text += br;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;-----------------------------------------------&lt;br /&gt;De code die je kan gebruiken om rechten toe te voegen:&lt;br /&gt;            DirectoryInfo di = new DirectoryInfo(Path.GetDirectoryName(tbFileLocation.Text));&lt;br /&gt;&lt;br /&gt;            DirectorySecurity ds = di.GetAccessControl();&lt;br /&gt;&lt;br /&gt;            removeUserRights(ds, "Dummy");&lt;br /&gt;&lt;br /&gt;            FileSystemRights fsRights = FileSystemRights.FullControl;&lt;br /&gt;            FileSystemAccessRule accessRule = new FileSystemAccessRule("Dummy", fsRights, AccessControlType.Allow);&lt;br /&gt;&lt;br /&gt;            ds.AddAccessRule(accessRule);&lt;br /&gt;            di.SetAccessControl(ds);&lt;br /&gt;&lt;br /&gt;-----------------------------------------------&lt;br /&gt;&lt;br /&gt;            DirectoryInfo di = new DirectoryInfo(Path.GetDirectoryName(tbFileLocation.Text));&lt;br /&gt;            DirectorySecurity ds = di.GetAccessControl();&lt;br /&gt;&lt;br /&gt;            removeUserRights(ds, "Dummy");&lt;br /&gt;&lt;br /&gt;            FileSystemRights fsRights = FileSystemRights.Write;&lt;br /&gt;            FileSystemAccessRule accessRule = new FileSystemAccessRule("Dummy", fsRights, AccessControlType.Deny);&lt;br /&gt;            ds.AddAccessRule(accessRule);&lt;br /&gt;&lt;br /&gt;            di.SetAccessControl(ds);&lt;br /&gt;&lt;br /&gt;-----------------------------------------------&lt;br /&gt;&lt;br /&gt;En de helper functie&lt;br /&gt;&lt;br /&gt;        private void removeUserRights(DirectorySecurity ds, string username)&lt;br /&gt;        {&lt;br /&gt;            AuthorizationRuleCollection rules = ds.GetAccessRules(true, true, typeof(NTAccount));&lt;br /&gt;            foreach (FileSystemAccessRule fr in rules)&lt;br /&gt;            {&lt;br /&gt;                if (fr.IdentityReference.ToString().IndexOf(username) &gt;= 0)&lt;br /&gt;                {&lt;br /&gt;                    ds.RemoveAccessRule(fr);&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-9148389224407753526?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/9148389224407753526/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=9148389224407753526' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/9148389224407753526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/9148389224407753526'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2008/01/eigen-fout.html' title='Eigen fout'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-457249657612393674</id><published>2008-01-22T03:55:00.000-08:00</published><updated>2008-01-22T04:12:46.478-08:00</updated><title type='text'>Visual Studio 2008 van Beta naar Full Version (problemen onder vista)</title><content type='html'>Van de week heb ik de volledige versie van VS2008 gescoord een nodige upgrade vanaf mijn Beta 2 versie.&lt;br /&gt;&lt;br /&gt;Zoals het upgraden van alle Beta's naar Full versions is het nogal een monniken werkje.&lt;br /&gt;&lt;br /&gt;Eerst moeten een flink aantal onderdelen van de Beta geuninstalled worden en vervolgens moet de full version geinstalleerd worden.&lt;br /&gt;&lt;br /&gt;De beta bestaat uit de volgende onderdelen die ook in DEZE volgorde geuninstalled moeten worden:&lt;br /&gt;&lt;br /&gt;Remove "MSDN Library for Visual Studio 2008 Beta" &lt;br /&gt;Remove "Microsoft SQL Server Compact Edition 3.5" &lt;br /&gt;Remove "Microsoft SQL Server Compact Edition 3.5 Design Tools" &lt;br /&gt;Remove "Microsoft SQL Server Compact Edition 3.5 for Devices" &lt;br /&gt;Remove "Microsoft Visual Studio Performance Collection Tools" &lt;br /&gt;Remove "Windows Mobile 5.0 SDK R2 for Pocket PC" &lt;br /&gt;Remove "Windows Mobile 5.0 SDK R2 for Smartphone" &lt;br /&gt;Remove "Crystal Reports 2007" &lt;br /&gt;Remove "Visual Studio Asset System" &lt;br /&gt;Remove "Microsoft Visual Studio Web Authoring Component / Microsoft Web Designer Tools" &lt;br /&gt;Remove "Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System Runtime" &lt;br /&gt;Remove "Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System Runtime Language Pack" (non-English editions only) &lt;br /&gt;Remove "Microsoft Visual Studio Tools for Office Runtime 3.0" &lt;br /&gt;Remove "Microsoft Document Explorer" &lt;br /&gt;Remove "Microsoft Document Explorer 2005 Language Pack" (non-English editions only) &lt;br /&gt;Remove "Microsoft Device Emulator 3.0" &lt;br /&gt;Remove "Microsoft .NET Compact Framework 3.5" &lt;br /&gt;Remove "Microsoft .NET Compact Framework 2.0 SP1" &lt;br /&gt;Remove ".NET Framework 2.0 SDK" &lt;br /&gt;Remove "Microsoft Visual Studio Codename Orcas Remote Debugger" &lt;br /&gt;Remove "Microsoft Visual Studio 64bit Prerequisites Beta" (64-bit platforms only) &lt;br /&gt;Remove "Microsoft .NET Framework 3.5"&lt;br /&gt;&lt;br /&gt;Natuurlijk las ik dit pas na het uninstallen van VS 2008 Beta (ook wel orcas release) en moest ik daarna gaan puinruimen.&lt;br /&gt;&lt;br /&gt;Eerst ben ik begonnen met het uninstallen van een aantal updates (3x zo'n KB nummer)&lt;br /&gt;Vervolgens heb ik het .Net 3.0 en 3.5 framework geuninstalled (en dat onder vista)&lt;br /&gt;&lt;br /&gt;Na mijn systeem goed opgruimd te hebben en een keer of 3 een reboot kreeg ik de volgende melding bij het selecteren van de VS2008 onderdelen.&lt;br /&gt;&lt;br /&gt;Some component must be installed in C:\Program Files\Microsoft Visual Studio 9.0\ directory. Check that you have write permissions and enough space in that directory&lt;br /&gt;&lt;br /&gt;Verder kon ik mijn c:\ schijf niet selecteren als doelstation en kreeg ik soms een foutmelding in de trant van:&lt;br /&gt;&lt;br /&gt;Illegal disk check if there is enough disk space or the drive isnt write-protected&lt;br /&gt;&lt;br /&gt;Hierna dus maar mijn hele schijf read/write gemaakt voor de gebruiker Everyone en zoveel mogelijk ruimte vrij gemaakt (door de beta installatie files te verwijderen :()&lt;br /&gt;&lt;br /&gt;Dit werkte dus allemaal niet. Na een uurtje googlen en nog het een en ander uninstallen zat ik met een systeem zonder VS2008 en flink wat projecten in 2008 geschreven.&lt;br /&gt;&lt;br /&gt;De installatie van VS maakt in je %temp% directory allerlei error logs aan waarin alle foutmeldingen staan vermeld. Na het legen van de temp directory niet nog meer succes. (een transient upgrade check allerlei foutmeldingen niet dubbel, als bij de eerste install er bijvoorbeeld onvoldoende schijfruimte vrij is checked hij dat niet nog een keer, op zich al vervelend maar bij een OS upgrade storend dat hij niet nog een checked (yeah MS examens))&lt;br /&gt;&lt;br /&gt;Het log bestand waar je nog eens rustig kan lezen wat er allemaal fout ging heet :&lt;br /&gt;dd_install_vs_vstscore_90.txt&lt;br /&gt;&lt;br /&gt;Een van de eerste regels hierin is (op mijn systeem):&lt;br /&gt;[01/21/08,15:12:38] Setup.exe: Command line: D:\VS2008\setup\setup.exe /LAUNCHER="C:\Users\Barfield\AppData\Local\Temp\"  /HWND="721870" /NoExclude&lt;br /&gt;&lt;br /&gt;Hierna kwam ik dus al snel tot de conlusie als de UI bombed dan maar via de command line installen.&lt;br /&gt;&lt;br /&gt;Met de opdracht setup /q (van quiet) verliep de installatie zonder problemen en ik kan nu weer VS2008 gebruiken. Het nadeel hiervan is wel dat je vervolgens een uur lang niet kan zien dat de installatie succesvol verloopt. Updates van de log bestanden kunnen lang duren, tijdens de installatie van het 3.5 framework was de isntaller bijvoorbeeld 15 minuten stil. Onder de taskmanager was wel te zien dat er allerlei setup.exe threads draaieden maar niet dat ze bijvoorbeeld IO in en uitvoer hadden of dat ze veel processort tijd vroegen.&lt;br /&gt;&lt;br /&gt;Verder heeft mij quit installer geen SQL express geinstalleerd :D&lt;br /&gt;&lt;br /&gt;Al met al een nutteloze dag met veel vallen en opstaan, maar eindelijk mijn VS 2008 geinstalleerd.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-457249657612393674?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/457249657612393674/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=457249657612393674' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/457249657612393674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/457249657612393674'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2008/01/visual-studio-2008-van-beta-naar-full.html' title='Visual Studio 2008 van Beta naar Full Version (problemen onder vista)'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-4830882724751627614</id><published>2008-01-17T02:42:00.000-08:00</published><updated>2008-01-17T02:44:39.097-08:00</updated><title type='text'>Netmeeting onder vista</title><content type='html'>Onder vista is Netmeeting verdwenen. Opzich geen probleem was het niet dat je dan ook niet kan inloggen op bestaande Netmeetings.&lt;br /&gt;&lt;br /&gt;De nieuwe vista cardspace bied allerlei opties aan, maar niet de mogelijkheid om een verbindign te maken met een shared desktop vanaf een XP sessie.&lt;br /&gt;&lt;br /&gt;Normaal gesproken kan netmeeting niet geinstalleer worden onder Vista. Maar de compatability modus biedt uitkomst. Draai de isntaller onder een lichtere comp mode en hij zal gewoon installeren.&lt;br /&gt;&lt;br /&gt;http://joshmaher.wordpress.com/2007/02/21/netmeeting-on-vista/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-4830882724751627614?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/4830882724751627614/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=4830882724751627614' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/4830882724751627614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/4830882724751627614'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2008/01/netmeeting-onder-vista.html' title='Netmeeting onder vista'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-3951418132385130887</id><published>2008-01-14T04:50:00.000-08:00</published><updated>2008-01-14T04:51:53.665-08:00</updated><title type='text'>Good Books</title><content type='html'>Pragmatic Programming&lt;br /&gt;&lt;br /&gt;Wat als je programmeerd voor honderduizend gebruikers.&lt;br /&gt;Hoe schrijf ik herbruikbare code.&lt;br /&gt;Hoe maak ik goed en snel documentatie.&lt;br /&gt;Wat is versie beheer&lt;br /&gt;&lt;br /&gt;Head first design patterns&lt;br /&gt;&lt;br /&gt;Wat is een design patterns&lt;br /&gt;Hoe leer ik zelf design patterns gebruiken&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-3951418132385130887?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/3951418132385130887/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=3951418132385130887' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/3951418132385130887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/3951418132385130887'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2008/01/good-books.html' title='Good Books'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-844557486311803796</id><published>2008-01-14T04:31:00.001-08:00</published><updated>2008-01-14T04:39:02.938-08:00</updated><title type='text'>The Ten Commandments for C Programmers</title><content type='html'>&lt;H1&gt;The Ten Commandments for C Programmers&lt;/H1&gt;&lt;br /&gt;&lt;br /&gt;&lt;EM&gt;by    Henry Spencer&lt;/EM&gt;&lt;br /&gt;&lt;P&gt;&lt;br /&gt;&lt;br /&gt;&lt;OL&gt;&lt;br /&gt;&lt;LI&gt; Thou shalt run &lt;TT&gt;lint&lt;/TT&gt; frequently and study its&lt;br /&gt;     pronouncements with care, for verily its perception and&lt;br /&gt;     judgement oft exceed thine.&lt;br /&gt;&lt;P&gt;&lt;br /&gt;&lt;LI&gt; Thou shalt not follow the NULL pointer, for chaos and&lt;br /&gt;     madness await thee at its end.&lt;br /&gt;&lt;P&gt;&lt;br /&gt;&lt;LI&gt; Thou shalt cast all function arguments to the expected&lt;br /&gt;     type if they are not of that type already, even when&lt;br /&gt;     thou art convinced that this is unnecessary, lest they&lt;br /&gt;     take cruel vengeance upon thee when thou least expect&lt;br /&gt;     it.&lt;br /&gt;&lt;P&gt;&lt;br /&gt;&lt;LI&gt; If thy header files fail to declare the return types of&lt;br /&gt;     thy library functions, thou shalt declare them thyself&lt;br /&gt;     with the most meticulous care, lest grievous harm befall&lt;br /&gt;     thy program.&lt;br /&gt;&lt;P&gt;&lt;br /&gt;&lt;LI&gt; Thou shalt check the array bounds of all strings&lt;br /&gt;     (indeed, all arrays), for surely where thou typest&lt;br /&gt;     "foo" someone someday shall type "supercalifragilisticexpialidocious".&lt;br /&gt;&lt;P&gt;&lt;br /&gt;&lt;LI&gt; If a function be advertised to return an error code in&lt;br /&gt;     the event of difficulties, thou shalt check for that&lt;br /&gt;     code, yea, even though the checks triple the size of&lt;br /&gt;     thy code and produce aches in thy typing fingers, for&lt;br /&gt;     if thou thinkest "it cannot happen to me", the gods&lt;br /&gt;     shall surely punish thee for thy arrogance.&lt;br /&gt;&lt;P&gt;&lt;br /&gt;&lt;LI&gt; Thou shalt study thy libraries and strive not to &lt;br /&gt;     re-invent them without cause, that thy code may be short&lt;br /&gt;     and readable and thy days pleasant and productive.&lt;br /&gt;&lt;P&gt;&lt;br /&gt;&lt;LI&gt; Thou shalt make thy program's purpose and structure&lt;br /&gt;     clear to thy fellow man by using the One True Brace&lt;br /&gt;     Style, even if thou likest it not, for thy creativity&lt;br /&gt;     is better used in solving problems than in creating&lt;br /&gt;     beautiful new impediments to understanding.&lt;br /&gt;&lt;P&gt;&lt;br /&gt;&lt;LI&gt; Thy external identifiers shall be unique in the first&lt;br /&gt;     six characters, though this harsh discipline be irksome&lt;br /&gt;     and the years of its necessity stretch before thee&lt;br /&gt;     seemingly without end, lest thou tear thy hair out and&lt;br /&gt;     go mad on that fateful day when thou desirest to make&lt;br /&gt;     thy program run on an old system.&lt;br /&gt;&lt;P&gt;&lt;br /&gt;&lt;LI&gt; Thou shalt foreswear, renounce, and abjure the vile&lt;br /&gt;     heresy which claimeth that "All the world's a VAX",&lt;br /&gt;     and have no commerce with the benighted heathens who&lt;br /&gt;     cling to this barbarous belief, that the days of thy&lt;br /&gt;     program may be long even though the days of thy current&lt;br /&gt;     machine be short.&lt;br /&gt;&lt;P&gt;&lt;br /&gt;&lt;/OL&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-844557486311803796?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/844557486311803796/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=844557486311803796' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/844557486311803796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/844557486311803796'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2008/01/ten-commandments-for-c-programmers.html' title='The Ten Commandments for C Programmers'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-5334647081974451315</id><published>2007-09-12T04:04:00.000-07:00</published><updated>2007-09-12T04:09:27.931-07:00</updated><title type='text'>Vervelende Internet Explorer gedrag</title><content type='html'>Ik browse regelmatig op het internet honderden linkjes af, daarvoor gebruik ik altijd Opera als browser. Helaas heeft opera geen mooie XML file rendering gedrag. Internet explorer doet dat veel beter.&lt;br /&gt;&lt;br /&gt;Internet explorer geeft echter vele overbodige warnings af als ik een XML bestand met DTD of XSLT open. De warning "Your current security settings put your computer at risk" is reuze irritant als ik een les probeer te geven of een flash filmpje wil tonen.&lt;br /&gt;&lt;br /&gt;Daarom hierbij hoe je die foutmelding kan verwijderen.&lt;br /&gt;&lt;br /&gt;windows toets + r&lt;br /&gt;gpedit.msc&lt;br /&gt;Bij zowel computer als user:&lt;br /&gt;Administrative Template&lt;br /&gt;Windows Components&lt;br /&gt;Internet Explorer&lt;br /&gt;&lt;br /&gt;Dan de Turn of the Security Settings Check feature op ENABLE zetten.&lt;br /&gt;&lt;br /&gt;Zo weer een probleem opgelost.&lt;br /&gt;&lt;br /&gt;Meer informatie op http://www.eggheadcafe.com/software/aspnet/28900007/-how-do-i-remove-the-b.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-5334647081974451315?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/5334647081974451315/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=5334647081974451315' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/5334647081974451315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/5334647081974451315'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2007/09/vervelende-internet-explorer-gedrag.html' title='Vervelende Internet Explorer gedrag'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-7452212877581170939</id><published>2007-08-22T01:14:00.000-07:00</published><updated>2007-08-22T01:32:25.664-07:00</updated><title type='text'>Wanneer is een dataset geen dataset?</title><content type='html'>Als je in .Net een typed dataset aanmaakt en deze wegschrijft met typedDataSet.WriteXml("c:\xml",XmlWriteMode.WriteSchema)&lt;br /&gt;Dan schrijf je een TYPED diffgram weg. Een typed diffgram is geen normale DataSet en als je dan probeerd hem in te lezen met untypedDS.ReadXml("pad" XmlReadMode.DiffGram) dan krijg je een dataset zonder tables.&lt;br /&gt;&lt;br /&gt;Dit komt vast omdat de diffgram teveel informatie bevat, een hacky oplossing is als volgt:&lt;br /&gt;&lt;br /&gt;XmlDataDocument dd = new XmlDataDocument();&lt;br /&gt;dd.Load("c:\pad.xml");&lt;br /&gt;string info = dd.FirstChild.NextSibling.InnerXml.ToString();&lt;br /&gt;byte[] byteArray = new byte[info.Length];&lt;br /&gt;System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();&lt;br /&gt;byteArray = encoding.GetBytes(info.ToCharArray());&lt;br /&gt;MemoryStream ms = new MemoryStream(byteArray);&lt;br /&gt;ds.ReadXml(ms);&lt;br /&gt;&lt;br /&gt;Hier leest de code de diffgram in een XmlDataDocument en maakt vervolgens van de Firstchild.nextsibling een dataset.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-7452212877581170939?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/7452212877581170939/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=7452212877581170939' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/7452212877581170939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/7452212877581170939'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2007/08/wanneer-is-een-dataset-geen-dataset.html' title='Wanneer is een dataset geen dataset?'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-6132690412316396522</id><published>2007-07-23T07:25:00.000-07:00</published><updated>2007-07-24T05:11:06.276-07:00</updated><title type='text'>Webscreen scraping III</title><content type='html'>Een httpwebrequest is een bijzondere klasse.&lt;br /&gt;Het http protocol is geen makkelijk protocol en kan afhankelijk van de protocol instellingen zowel als server en client verschillen gedrag vertonen.&lt;br /&gt;&lt;br /&gt;Bij het herhaaldelijk gebruiken van een webrequest ging er ergens iets mis.&lt;br /&gt;System.Net.WebException: The underlying connection was closed:&lt;br /&gt;&lt;br /&gt;Oplossingen die niet werkten:&lt;br /&gt;System.Threading.Thread.Sleep(2000)&lt;br /&gt;--1000 verbindingen direct achter elkaar vind geen enkele server/router leuk&lt;br /&gt;ServicePointManager.DefaultConnectionLimit = 10&lt;br /&gt;--meer dan standaard 2 (mischien een connectie die busy was oid)&lt;br /&gt;ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 Or SecurityProtocolType.Tls&lt;br /&gt;--we werken via HTTPS mischien helpt dat&lt;br /&gt;lHttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest)&lt;br /&gt;lHttpWebRequest.SendChunked = True&lt;br /&gt;--mischien een fout in certificaat handeling(incomplete transmissie) daarom chunked ipv streamed&lt;br /&gt;lHttpWebRequest.Method = "GET"&lt;br /&gt;--get ipv post ivm met certificaat fout (de fout lag zeker bij een post aktie)&lt;br /&gt;lHttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 1.0.3705; .NET CLR 3.0.04506.30; MEGAUPLOAD 1.0)"&lt;br /&gt;--een moderne browser string (alles anders dan IEXplore deed het zowiezo niet)&lt;br /&gt;lHttpWebRequest.Timeout = 30000&lt;br /&gt;--timeout maakt geen verschil&lt;br /&gt;lHttpWebRequest.KeepAlive = False&lt;br /&gt;--keep conneciton alive (als de verbinding open blijft kan .Net denken dat hij open staat terwlijk de server hem allang dicht heeft gegooid)&lt;br /&gt;'lHttpWebRequest.ProtocolVersion = HttpVersion.Version11&lt;br /&gt;currentServicePoint = lHttpWebRequest.ServicePoint&lt;br /&gt;currentServicePoint.MaxIdleTime = 5000&lt;br /&gt;--max idle time for connectie daarna moet hij opnieuw gemaakt worden&lt;br /&gt;currentServicePoint.Expect100Continue = False&lt;br /&gt;--er is een fout in .Net dat een 100 continue en een 100 close melding door elkaar gehaald worden&lt;br /&gt;&lt;br /&gt;'vanaf hier standaard code&lt;br /&gt;'url = "https://blablabla.com&lt;br /&gt;lHttpWebResponse = CType(lHttpWebRequest.GetResponse, HttpWebResponse)&lt;br /&gt;lHttpWebResponseStream = lHttpWebRequest.GetResponse.GetResponseStream&lt;br /&gt;str = lHttpWebResponseStream&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-6132690412316396522?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/6132690412316396522/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=6132690412316396522' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/6132690412316396522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/6132690412316396522'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2007/07/webscreen-scraping-iii.html' title='Webscreen scraping III'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-8696343117841406255</id><published>2007-07-19T05:58:00.000-07:00</published><updated>2007-07-19T06:02:47.942-07:00</updated><title type='text'>Webscreen scraping II</title><content type='html'>Soms, is het leven moeilijk.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Screenscraping via .Net werkt met de HttpWebRequest class.&lt;br /&gt;&lt;br /&gt;            Dim lHttpWebRequest As HttpWebRequest&lt;br /&gt;            Dim lHttpWebResponse As HttpWebResponse&lt;br /&gt;            Dim lHttpWebResponseStream As Stream&lt;br /&gt;            lHttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest)&lt;br /&gt;            lHttpWebResponse = CType(lHttpWebRequest.GetResponse, HttpWebResponse)&lt;br /&gt;            lHttpWebResponseStream = lHttpWebRequest.GetResponse.GetResponseStream&lt;br /&gt;&lt;br /&gt;Zoals ik in mijn vorige post heb verteld werkt dat niet altijd goed. Nu blijkt dus het probleem te zijn dat mijn HttpWebRequest geen user string meegeeft die geaccepteerd word.&lt;br /&gt;&lt;br /&gt;De oplossing:&lt;br /&gt;lHttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)"&lt;br /&gt;&lt;br /&gt;ps.&lt;br /&gt;Bij een httpwebrequest altijd een WebException afvangen kijken naar de status en vervolgens de response stream uitlezen waar meestal de server foutmelding in staat&lt;br /&gt;&lt;br /&gt; lHttpWebResponseStream = ex.Response.GetResponseStream&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-8696343117841406255?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/8696343117841406255/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=8696343117841406255' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/8696343117841406255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/8696343117841406255'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2007/07/webscreen-scraping-ii.html' title='Webscreen scraping II'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-3899402611920716592</id><published>2007-07-17T02:59:00.000-07:00</published><updated>2007-07-17T03:16:04.210-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='screenscraping'/><category scheme='http://www.blogger.com/atom/ns#' term='VB.net'/><category scheme='http://www.blogger.com/atom/ns#' term='webbrowser'/><title type='text'>Web screen scraping</title><content type='html'>Bij Twice werk ik als docent ook als importeur van een aantal websites. De meeste websites benader ik met de WebRequest class en kan ik via strings en regular expressions alles vinden. Meestal ben ik met &lt;br /&gt;een druk op een knop en een kwartiertje wachten klaar. Soms vinden websites het echter nodig om zichzelf een nieuw uiterlijk aan te meten en dan werken mijn regex niet meer goed.&lt;br /&gt;&lt;br /&gt;Eens in de zoveel tijd veranderd er een website zo heftig dat het niet meer leuk is. &lt;br /&gt;Sommige moderne websites werken met sessies en als dat nog niet erg genoeg is zijn sommige websites gebaseerd op javascript en .Net technologien (ajax ben ik nog niet echt tegen gekomen)&lt;br /&gt;&lt;br /&gt;Bij sommige websites kan ik niet met de webrequest aan de gang maar moet ik met de WebBrowser control werken. De webbrowser control biedt de mogelijkheid om in de DOM van het html document te werken en javascript goed uit te voeren. Verder zorgt de webbrowser er voor dat post en put informatie automatisch goed terecht komt.&lt;br /&gt;&lt;br /&gt;Voor de selectie van een dropdown list en het klikken van een A link heb ik de volgende code gebruikt:&lt;br /&gt;&lt;br /&gt;'Laad het juiste element (id=quickCountry)O&lt;br /&gt;Dim countryList As HtmlElement = wbsap.Document.GetElementById("quickCountry")&lt;br /&gt;'deselecteer alle elementen&lt;br /&gt;For Each s As HtmlElement In countryList.All&lt;br /&gt;  s.SetAttribute("selected", "")&lt;br /&gt;Next&lt;br /&gt;'selecteer NL -&gt;element 23&lt;br /&gt;countryList.All.Item(23).SetAttribute("selected", "True")&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Het direct aanpassen van de countrylist naar een element&lt;br /&gt;countryList.InnerText = "&lt;OPTION value=NL&gt;Netherlands"&lt;br /&gt;of het aanpassen van de lijst &lt;br /&gt;countryList.All.Item(0).InnerHtml = "&lt;OPTION value=NL&gt;Netherlands"&lt;br /&gt;werkt niet ivm met het javascript en .Net gedeelte&lt;br /&gt;        &lt;br /&gt;Het klikken van een link in de webbrowser kan als volgt:&lt;br /&gt;Dim goButton As HtmlElement = wbsap.Document.GetElementById("searchCountry")&lt;br /&gt;goButton = goButton&lt;br /&gt;goButton.InvokeMember("Click")&lt;br /&gt;&lt;br /&gt;Dit alles had ook gekund dmv javascript injectie maar omdat ik niets van javascript af weet heb ik deze methode gekozen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-3899402611920716592?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/3899402611920716592/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=3899402611920716592' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/3899402611920716592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/3899402611920716592'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2007/07/web-screen-scraping.html' title='Web screen scraping'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-4699800941764917059</id><published>2007-07-10T02:48:00.000-07:00</published><updated>2007-07-10T22:47:47.613-07:00</updated><title type='text'>Microsoft Download Center</title><content type='html'>Microsoft heeft op het grote web de volgende website met heel veel downloads, patches en service packs : http://www.microsoft.com/downloads/&lt;br /&gt;&lt;br /&gt;Een van mijn grote problemen met het aanbod is dat de meeste bestanden heel slecht genaamd zijn. Ik ben momenteel Microsoft Virtual PC aan het downloaden en de naam het installatie programma is setup.exe, een naam die nog niet in mijn download folder stond(...).&lt;br /&gt;&lt;br /&gt;De naam van de .Net framework 1.1 is dotnetfx.exe&lt;br /&gt;De naam van het .Net framework 2.0 is dotnetfx.exe&lt;br /&gt;&lt;br /&gt;Ze kiezen voor een duidelijke naam!....&lt;br /&gt;&lt;br /&gt;Een betere naam voor de VPC setup had VPSsetup.exe geweest (desnoods met MS ervoor)&lt;br /&gt;Een betere naam voor het framework: dotNetFx10.exe en dotNetFx20.exe&lt;br /&gt;&lt;br /&gt;Nu begrijp ik wel dat visual studio projecten standaard de setup.exe naam aangeven en het lastig is aan te passen, maar moeilijk is het niet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-4699800941764917059?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/4699800941764917059/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=4699800941764917059' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/4699800941764917059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/4699800941764917059'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2007/07/dotnetfxexemicrosoft-download-center.html' title='Microsoft Download Center'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-5655188048784197925</id><published>2007-07-09T01:33:00.000-07:00</published><updated>2007-07-09T01:40:13.937-07:00</updated><title type='text'>Office 2007 (double line breaks)</title><content type='html'>Hoi Daar,&lt;br /&gt;&lt;br /&gt;Sinds ik vista heb geinstalleerd werk ik ook met Office 2007. Kort voordat ik mijn laptop kreeg heb ik kort met 2007 gewerkt maar nu werk ik er full time mee.&lt;br /&gt;&lt;br /&gt;Een punt dat me erg irriteerde was een dubbele "line break" na een enter. &lt;br /&gt;De meeste html/visual studio ontwikkelaars zullen het wel herkennen dat de enter toets een nieuwe paragraaf/alinea start die dus een extra regel ruimte reserveerd.&lt;br /&gt;&lt;br /&gt;Na het formuleren van een 100 tal word help en google zoek opdrachten kwam ik niet uit het probleem. Verder kijkend op google kwam ik uit op &lt;a href="http://forum.computeridee.nl/showthread.php?t=39249"&gt;computer idee forum&lt;/a&gt; waar het antwoord staat.&lt;br /&gt;&lt;br /&gt;Hier de menu opties die je kan gebruiken om de dubbele line breaks te verwijderen&lt;br /&gt;&lt;br /&gt;Op de Home ribbon bij de Styles&lt;br /&gt;Rechts klikken op Normal en dan Modify&lt;br /&gt;Dan links onder format -&gt; paragraph&lt;br /&gt;Spacing after op 0 zetten (ipv 10)&lt;br /&gt;&lt;br /&gt;Daarna even alles selecteren en op normal zetten&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-5655188048784197925?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/5655188048784197925/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=5655188048784197925' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/5655188048784197925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/5655188048784197925'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2007/07/office-2007-double-line-breaks.html' title='Office 2007 (double line breaks)'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-6215579052271582759</id><published>2007-07-02T23:50:00.000-07:00</published><updated>2007-07-03T02:35:50.966-07:00</updated><title type='text'>LinearGradient</title><content type='html'>Iedereen die wel eens wat heeft moeten tekenen in een Paint event weet dat het niet altijd even makkelijk is of anders heel veel werk. Tijdens de DevDays werd er gezeged dat een Gradient (overgang tussen twee kleuren) elke applicatie een stuk mooier maakt. &lt;br /&gt;&lt;br /&gt;Voor mijn PDA heb ik een simpele klok applicatie geschreven maar iedereen die hem zag vond hem vreselijk lelijk. Daarom wilde ik graag een LinearGradient toevoegen.&lt;br /&gt;&lt;br /&gt;Normaal gesproken gaat dat in twee stappen:&lt;br /&gt;-Maak een Brush object aan (LinearGradientBrush)&lt;br /&gt;-Gebruik van een Graphics object de FillRectangle methode en geef de brush als parameter mee. (De fillXX methode verwacht ook een Rectangle(x,y,width,height)&lt;br /&gt;&lt;br /&gt;Nu zal je natuurlijk altijd zien dat een &lt;a href="http://www.bobpowell.net/linear.htm"&gt;LinearGradientBrush&lt;/a&gt; niet beschikbaar is in een Windows Mobile/PDA omgeving.&lt;br /&gt;&lt;br /&gt;Ik wilde natuurlijk wel een mooie gradient in mijn applicatie dus ik moest aan het werk. Mijn gereedschap was als volgt:&lt;br /&gt;&lt;br /&gt;Een kleur bestaat uit drie kanalen -&gt; red green blue met een waarden van 0 - 255&lt;br /&gt;De nul waardes zijn zwart en de 255 waardes zijn de volledige kleur. Combinaties van kleuren zijn te maken door de verschillende kleuren meer of minder te gebruiken.&lt;br /&gt;&lt;br /&gt;Ik kan in een For loopje kleuren aanpassen&lt;br /&gt;&lt;br /&gt;De Solidbrush kan ik gebruiken om in één kleur te tekenen.&lt;br /&gt;&lt;br /&gt;Het graphics object heeft een fillrect waarmee ik een pixel breed en de gewenst hoogte kan tekenen.&lt;br /&gt;&lt;br /&gt;De code die ik gebruikt heb is als volgt:&lt;br /&gt;&lt;br /&gt;/// &lt;summary&gt;&lt;br /&gt;/// Deze code tekend een gradient van de kleur donker zwart (50,10,50) &lt;br /&gt;/// naar de kleur groen (50,240,50)&lt;br /&gt;/// &lt;/summary&gt;&lt;br /&gt;/// &lt;param name="g"&gt;&lt;/param&gt;&lt;br /&gt;void drawGradient(Graphics g)&lt;br /&gt;{&lt;br /&gt;    for (int x = 10; x &lt; (this.Width + 10); x++)&lt;br /&gt;    {&lt;br /&gt;        Color c = Color.FromArgb(50,x , 50);&lt;br /&gt;        Rectangle rect = new Rectangle(x -10, 0, 1, this.Height);&lt;br /&gt;        Brush b = new SolidBrush(c);&lt;br /&gt;        g.FillRectangle(b, rect);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Dit is natuurlijk geen code die:&lt;br /&gt;&lt;br /&gt;Mooi geschieden is van zijn container(breedte 255 pixels + en er komt een exception)&lt;br /&gt;Werkt met variabele kleuren (van zwartig naar groening)&lt;br /&gt;Logische parameters heeft (breedte/hoogte)&lt;br /&gt;Code die goed omgaat met mogelijke exceptions&lt;br /&gt;&lt;br /&gt;Daarom heb ik ook meteen maar een functie gemaakt in een static class die daar iets beter mee omgaat:&lt;br /&gt;&lt;br /&gt;public static void drawGradient(Graphics g, int x, int y, int width, int height, Color start,Color end)&lt;br /&gt;{&lt;br /&gt;    for (int i = x; i &lt; width; i++)&lt;br /&gt;    {&lt;br /&gt;        int rs, gs, bs = 0;&lt;br /&gt;        rs = start.R;&lt;br /&gt;        gs = start.G;&lt;br /&gt;        bs = start.B;&lt;br /&gt;        &lt;br /&gt;        int re, ge, be = 0;&lt;br /&gt;        re = end.R;&lt;br /&gt;        ge = end.G;&lt;br /&gt;        be = end.B;&lt;br /&gt;&lt;br /&gt;        //float diffR, diffG, diffB = 0F;&lt;br /&gt;        int ri, gi, bi;&lt;br /&gt;        ri = calcDiff(rs,re,width,i);&lt;br /&gt;        gi = calcDiff(gs, ge, width, i);&lt;br /&gt;        bi = calcDiff(bs, be, width, i);&lt;br /&gt;        if (gi &gt; 255)&lt;br /&gt;            gi = gi;&lt;br /&gt;        Color c = Color.FromArgb(ri,gi,bi);&lt;br /&gt;        Brush b = new SolidBrush(c);&lt;br /&gt;&lt;br /&gt;        Rectangle r = new Rectangle(x+i, y, 1, height);&lt;br /&gt;        g.FillRectangle(b, r);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;static int calcDiff(int rs, int re, int width, int i)&lt;br /&gt;{&lt;br /&gt;    float diff = 0F;&lt;br /&gt;    int move = re - rs;&lt;br /&gt;    float mt, wt;&lt;br /&gt;    mt = (float)move;&lt;br /&gt;    wt = (float)width;&lt;br /&gt;    diff = (mt / wt) * i;&lt;br /&gt;    if (move &gt; 0)&lt;br /&gt;        move = move;&lt;br /&gt;    diff += rs;&lt;br /&gt;&lt;br /&gt;    return (int)diff;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-6215579052271582759?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/6215579052271582759/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=6215579052271582759' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/6215579052271582759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/6215579052271582759'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2007/07/lineargradient.html' title='LinearGradient'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-8122464145539955370</id><published>2007-07-02T03:58:00.000-07:00</published><updated>2007-07-02T04:24:47.789-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='snaplines'/><title type='text'>Snaplines</title><content type='html'>Bij het gebruik van Controls in visual studio bij het creeren van windows applicaties bieden de meeste controls snaplines aan. Snaplines langs de randen van controls kunnen gebruikt worden om op een makkelijke manier controls uit te lijnen.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_85Cn1QmZXos/RojbG5pzZOI/AAAAAAAAAAk/BrDWtvOAkZM/s1600-h/snaplines.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_85Cn1QmZXos/RojbG5pzZOI/AAAAAAAAAAk/BrDWtvOAkZM/s320/snaplines.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5082553091089458402" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;De control hierboven heeft 2 actieve snaplines. Eentje om de linker rand van het vierkant en eentje op de onder rand van het rode blok in de control. Deze user control biedt niets anders aan dan een vierkant blok met in de kern een rood blok.&lt;br /&gt;&lt;br /&gt;Zelf heb ik aan deze control snaplines toe gevoegd. Het toeveogen van snaplines aan een control is heel eenvoudig. Visual studio kijkt bij het openen van een control naar of er een Designer attribute aanwezig is. Aan de hand van de Designer attribute kan Visual Studio bepalen welke class hij moet gebruiken als 'Designer'. In de Designer class zitten een aantal methodes die een aanta returns verwachten. &lt;br /&gt;&lt;br /&gt;Door het overriden van deze functies/properties kan je zaken aanpassen. Door bijvoorbeeld het overriden van de property:&lt;br /&gt;  public override System.Collections.IList SnapLines&lt;br /&gt;&lt;br /&gt;Kan je een nieuwe return value opgeven van bijvoorbeeld:&lt;br /&gt;ArrayList snapLines = base.SnapLines as ArrayList;&lt;br /&gt;snapLines.Add(new SnapLine(SnapLineType.Left, 50));&lt;br /&gt;&lt;br /&gt;Door deze aktie heb je nu een snapline die 50 pixels rechs van de linker rand een linker rand toond.&lt;br /&gt;&lt;br /&gt;In mijn control, de CenterSquare heb ik een flink aantal snaplines toegevoegd:&lt;br /&gt;&lt;br /&gt;public class CenterSquareSnapLines : ControlDesigner&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;public override System.Collections.IList SnapLines {&lt;br /&gt;  get&lt;br /&gt;  {&lt;br /&gt;    ArrayList snapLines = base.SnapLines as ArrayList;&lt;br /&gt;    CenterSquare c = this.Control as CenterSquare;&lt;br /&gt;    if (c != null)&lt;br /&gt;    {&lt;br /&gt;      snapLines.Add(new SnapLine(SnapLineType.Left, c.BorderDistance));&lt;br /&gt;      snapLines.Add(new SnapLine(SnapLineType.Right, c.Height - c.BorderDistance));&lt;br /&gt;      snapLines.Add(new SnapLine(SnapLineType.Top, c.BorderDistance));&lt;br /&gt;      snapLines.Add(new SnapLine(SnapLineType.Bottom, c.Width - c.BorderDistance));&lt;br /&gt;      snapLines.Add(new SnapLine(SnapLineType.Top, 5));&lt;br /&gt;    }&lt;br /&gt;    else&lt;br /&gt;    {&lt;br /&gt;      //Debug message here!&lt;br /&gt;    }&lt;br /&gt;  return snapLines;&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}//einde class&lt;br /&gt;&lt;br /&gt;Deze designer heb ik vervolgens toegevoegd aan mijn CentrerSquare class door het designer attribute:&lt;br /&gt;[Designer(typeof(CenterSquareSnapLines))]&lt;br /&gt;  public partial class CenterSquare : UserControl&lt;br /&gt;{&lt;br /&gt;//implementatie heir&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Bijzonderheden:&lt;br /&gt;De ControlDesigner class heeft een property Control die de huidige control in design time toont. Door het casten van deze control kan je bij alle properties komen.&lt;br /&gt;De snaplines property is van het type Ilist compleet zonder type checking.&lt;br /&gt;Snaplines hebben een snaplinetype enumeration let op, sommige items van de enumeration zijn niet altijd zichtbaar! &lt;br /&gt;In design time in VS kan je op Alt klikken om de control zonder snaplines te verplaatsen.&lt;br /&gt;In design time kan je in VS op Ctrl klikken om de control te kopieren.&lt;br /&gt;Meer lezen over de designer kan op : http://msdn2.microsoft.com/en-us/library/ms171830.aspx&lt;br /&gt;&lt;br /&gt;ps. Ik zal binnenkort eens kijken of ik een mooiere opmaak kan krijgen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-8122464145539955370?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/8122464145539955370/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=8122464145539955370' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/8122464145539955370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/8122464145539955370'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2007/07/snaplines.html' title='Snaplines'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_85Cn1QmZXos/RojbG5pzZOI/AAAAAAAAAAk/BrDWtvOAkZM/s72-c/snaplines.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-6274482830729756619</id><published>2007-06-29T01:48:00.000-07:00</published><updated>2007-06-29T01:52:27.116-07:00</updated><title type='text'>Blogs, or, Links to blogs</title><content type='html'>Er zijn een aantal blogs waar ik regelmatig even langs ga om te kijken of er nog wat interessants op sta. Een van de blogs die ik regelmatig bezoek is &lt;a href="http://www.codinghorror.com/blog/"&gt;Coding Horror&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Vandaag las ik een stuk over leren dat ik zeker wilde verspreiden: &lt;br /&gt;&lt;a href="http://www.codinghorror.com/blog/archives/000895.html"&gt;Hoe leer ik leren.&lt;/a&gt;&lt;br /&gt;Voor iedereen die ook maar een beetje geinteresseerd is in leren een leuk stuk om te lezen.&lt;br /&gt;&lt;br /&gt;Zelf heb ik flink wat boeken gelezen over kinder psychologie en de manier waarop je volwassen word. Door het doorlopen van verschillende stadia in je leven leer je op verschillende manieren om te gaan met problemen. Er is geen beste manier om te leren, dat is voor iedereen verschillend. Maar willen leren en nieuwschierig zijn, op verschillende niveaus werkt voor iedereen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-6274482830729756619?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/6274482830729756619/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=6274482830729756619' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/6274482830729756619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/6274482830729756619'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2007/06/blogs-or-links-to-blogs.html' title='Blogs, or, Links to blogs'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-7378862528383106699</id><published>2007-06-27T06:30:00.000-07:00</published><updated>2007-06-27T06:48:27.520-07:00</updated><title type='text'>Design Patterns in .Net deel II</title><content type='html'>Zorda ik begreep dat de Singleton niet de enigste Design Pattern is die er bestaat ben ik meer gaan lezen over design patterns.  &lt;a href="http://www.dofactory.com/Patterns/Patterns.aspx"&gt;Lijstje design patterns GOF&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Van de lange lijst bestaande patterns begreep ik de volgende patterns het snelst:&lt;br /&gt;&lt;br /&gt;Proxy -&gt; doorgeef luik&lt;br /&gt;Adapter -&gt; doorgeef luik met hernoemen functies en extra funtie calls&lt;br /&gt;Facade -&gt; vereenvoudigde weergave van verschillende classes (van stereo + tv + recorder + dvd naar -&gt; HomeCinema class)&lt;br /&gt;&lt;br /&gt;De pattern die ik in deze post wil beschrijven is de Bridge pattern.&lt;br /&gt;&lt;br /&gt;definition &lt;br /&gt;Decouple an abstraction from its implementation so that the two can vary independently.&lt;br /&gt;&lt;br /&gt;Oftewel een interface met daarin een aantal methodes&lt;br /&gt;Een concrete class die de interface implementeerd en die het werk uitvoert.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;De interface is de brug tussen de calling code en wat er uitgevoerd moet worden.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-7378862528383106699?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/7378862528383106699/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=7378862528383106699' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/7378862528383106699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/7378862528383106699'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2007/06/design-patterns-in-net-deel-ii.html' title='Design Patterns in .Net deel II'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-5017179809590691005</id><published>2007-06-27T03:55:00.000-07:00</published><updated>2007-06-27T05:14:10.905-07:00</updated><title type='text'>Design Patterns in .Net deel I</title><content type='html'>Hallo daar!,&lt;br /&gt;&lt;br /&gt;Ik begin hiermee aan een seria artikelen over design patterns in .Net&lt;br /&gt;&lt;br /&gt;Zodra ik het programmeren een beetje door had (jaren geleden) kwam  ik erachter dat sommige code API's best lastig werken. &lt;br /&gt;&lt;br /&gt;Het maken van een Form met controls of het gebruiken van een Stream werkt heel anders. Na het gebruiken van Static functies vroeg ik mij af waar al die methodes (die in veel verschillende programmeer talen heel erg op elkaar lijken) nou toch vandaan komen.&lt;br /&gt;&lt;br /&gt;Nu had ik al wat gelezen over OO en wist ik dat interfaces duidelijk een definitie  gaven van hoe een stuk code werkt was dat niet wat ik zocht. Verder was het antwoord: "Zo doen wij het al jaren" ook niet je van het. Toen ik erachter kwam dat Sockets zowel in Java, C++ als in C# hetzelfde werkten werd ik nog steeds niets wijzer.&lt;br /&gt;&lt;br /&gt;Totdat ik in een stuk code een singleton tegen kwam. Een Singleton bleek een object te zijn dat als een Design Pattern (ontwikkel patroon) in veel code gebruikt kan worden. Een design pattern is een oplossing voor een veel voorkomend programmeer probleem met daarin een vaste groep classes die met een duidelijke naam op een vaste manier samen werken.&lt;br /&gt;&lt;br /&gt;Een singleton bied een object aan dat slechts een keer in het geheugen aanwezig, door verschillende andere classes gebruikt kan worden. (bijvoorbeeld static objects)&lt;br /&gt;&lt;br /&gt;Omdat door de static functie GetInstance een compleet object word geleverd kan je met het een instantie van het object werken zonder dat je het met &lt;span style="font-style:italic;"&gt;new&lt;/span&gt; hoeft aan te maken.&lt;br /&gt;&lt;br /&gt;In deze Singleton kan je vervolgens globale settings, grote objecten of Applicatie status bijhouden. Ook kan een singleton goed een resource waar er maar een van is bewaren. &lt;br /&gt;&lt;br /&gt;Een singleton kan je eenvoudig maken door de new functie static te maken en een functie getInstance met als return de class zelf. (das dan niet thread safe)&lt;br /&gt;&lt;br /&gt;Een singleton of static object komt veel voor in de .Net api. Deze static object zijn op een makkelijke manier waar dan ook in je code te gebruiken. (Denk aan HttpContext op een asp.net omgeving)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-5017179809590691005?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/5017179809590691005/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=5017179809590691005' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/5017179809590691005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/5017179809590691005'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2007/06/design-patterns-in-net-deel-i.html' title='Design Patterns in .Net deel I'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-6546887768112051718</id><published>2007-06-25T05:40:00.000-07:00</published><updated>2007-06-25T06:04:59.883-07:00</updated><title type='text'>Gebruik de meest specifieke Exception</title><content type='html'>Een bekende regel is dat je de meest Specifieke bestaande Exception in je eigen code moet gebruiken. Maar wat is dan de meest specifieke bestaande Exception en heb je eindelijk de exception gevonden in welke namespace en welke DLL imports zit hij dan verstopt.&lt;br /&gt;&lt;br /&gt;Was er maar een lijst van Exceptions. &lt;br /&gt;&lt;br /&gt;Nu kan je natuurlijk de hele help van .Net gaan doorspitten onderweg naar alle losse exceptions maar het kan stukken sneller.&lt;br /&gt;&lt;br /&gt;Start &lt;a href="http://www.aisto.com/roeder/dotnet/"&gt;Reflector&lt;/a&gt; , kies een Frameworks versie en druk op F3. Typ Exception als zoekopdracht en zie een lijst ontstaan met daarin alle exceptions die er in de .Net omgeving zijn (iig in de referenced DLL's). Met de analyze functie of de Search Google/MSDN akties kan je makkelijk kijken waar de exceptions voor zijn en hoe je ze kan gebruiken.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(hetzelfde valt te doen voor Attributes)&lt;br /&gt;PS. iemand die een andere manier heeft om snel een specifieke exception op te zoeken?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-6546887768112051718?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/6546887768112051718/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=6546887768112051718' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/6546887768112051718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/6546887768112051718'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2007/06/gebruik-de-meest-specifieke-exception.html' title='Gebruik de meest specifieke Exception'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-5245558407662132127</id><published>2007-06-25T05:14:00.000-07:00</published><updated>2007-06-27T03:55:41.741-07:00</updated><title type='text'>Windows Vista</title><content type='html'>Vorige week moest ik na een fatale windows crash mijn systeem opnieuw inrichten. Na een paar dagen zweten of ik een backup van een half jaar moest terug zetten of mijn harde schijven kon redden kwam alles toch weer op zijn pootjes terecht.&lt;br /&gt;&lt;br /&gt;Bij mijn nieuwe installatie heb ik gekozen voor een verse Vista installatie en boy oh boy wat is dat genieten.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;pro's&lt;/span&gt;&lt;br /&gt;Eye candy&lt;br /&gt;Makkelijker bruikbare interface (wel even wennen)&lt;br /&gt;Windows Mobile Center + Sycnronisation&lt;br /&gt;Een schoon gevoel bij een schone installatie&lt;br /&gt;Geen traag gevoel of rare akties na een week gebruik&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;con's&lt;/span&gt;&lt;br /&gt;Het is niet zo snel als vista&lt;br /&gt;Graphical lag&lt;br /&gt;Nieuw start menu&lt;br /&gt;Lelijke Power en Sound icons&lt;br /&gt;Veel software updates nodig (nero)&lt;br /&gt;&lt;br /&gt;Oh ja, deze post kwam vanuit het volgende probleem:&lt;br /&gt;Transcender loopt vast bij het opstarten vanuit vista.&lt;br /&gt;De oplossing is ouder dan de weg naar Rome, gewoon starten in compatibility modus Win98/ME&lt;br /&gt;&lt;br /&gt;Update:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Pro's&lt;/span&gt;&lt;br /&gt;Een heel rustige omgeving om in te werken.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Con's&lt;/span&gt;&lt;br /&gt;Nieuwe systeem Iconen zijn zoeken (windows verkenner ziet er "raar" uit.&lt;br /&gt;Sommige applicaties zijn trager (Opera)&lt;br /&gt;Lastig juiste drivers installeren (Nvidia drivers)&lt;br /&gt;Windows Explorer werkt heel erg anders&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-5245558407662132127?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/5245558407662132127/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=5245558407662132127' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/5245558407662132127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/5245558407662132127'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2007/06/windows-vista.html' title='Windows Vista'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-7285944658177371157</id><published>2007-06-25T02:43:00.000-07:00</published><updated>2007-06-25T03:02:38.502-07:00</updated><title type='text'>MCP worden deel IV (de examen dag)</title><content type='html'>&lt;span style="font-family:arial;"&gt;De voorlopige laatste post van mijn MCP worden info.&lt;br /&gt;&lt;br /&gt;De examen dag is een spannende dag waar het allemaal om draait.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Examen&lt;/strong&gt;&lt;br /&gt;Een examen bestaat uit 47 tot 52 vragen&lt;br /&gt;Examens kunnen verdeeld zijn in verschillende onderdelen.&lt;br /&gt;Er is voldoende tijd voor alle vragen&lt;br /&gt;50 vragen 150 minuten&lt;br /&gt;Geen kladpapier / 1 memoblok&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;De examen vragen&lt;/strong&gt;&lt;br /&gt;Geen open vragen&lt;br /&gt;Maar:&lt;br /&gt;Multiple choice - multiple answers&lt;br /&gt;Vragen van een half a4 ‘tje&lt;br /&gt;Spot the difference vragen&lt;br /&gt;Hoe spel je DoDragDrop&lt;br /&gt;Welke parameter komt eerst?&lt;br /&gt;(int a, double b)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Een orginele voorbeeld vraag&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;You are creating a Windows Forms application that uses a drag-and-drop operation to&lt;br /&gt;enable users to copy customer data between a ListBox control and RichTextBox control.&lt;br /&gt;The ListBox displays a list of customer Ids to the user. Each item in the ListBox is&lt;br /&gt;associated with a custom external data type named CustomerData. The data type stores&lt;br /&gt;the customer name along with other customer information, including the address and&lt;br /&gt;postal code.&lt;br /&gt;You need to ensure that when the user drags a customer name from the ListBox to the&lt;br /&gt;RichTextBox all of the information in your custom data type is moved into the&lt;br /&gt;RichTextBox.&lt;br /&gt;What should you do?&lt;br /&gt;&lt;br /&gt;A. Initiate the drag-and-drop operation in the MouseDown event for the ListBox.&lt;br /&gt;Call the DoDragDrop method for the ListBox, passing in an instance of CustomerData.&lt;br /&gt;Use the GetFormats method in the DragEnter event for the RichTextBox to access the&lt;br /&gt;custom data type.&lt;br /&gt;&lt;br /&gt;B. Initiate the drag-and-drop operation in the MouseDown event for the ListBox.&lt;br /&gt;Call the DoDragDrop method for the ListBox, passing in an instance of CustomerData.&lt;br /&gt;Use the GetData method in the DragDrop event for the RichTextBox to access the&lt;br /&gt;custom data type.&lt;br /&gt;&lt;br /&gt;C. Initiate the drag-and-drop operation in the MouseDown event for the ListBox.&lt;br /&gt;In the DragEnter or DragDrop events for the RichTextBox, set the Effect property to&lt;br /&gt;DragDropEffects.All.&lt;br /&gt;Use the GetFormats method in the DragEnter event for the RichTextBox to access the&lt;br /&gt;custom data type.&lt;br /&gt;&lt;br /&gt;D. Initiate the drag-and-drop operation in the MouseDown event for the ListBox.&lt;br /&gt;In the DragEnter or DragDrop events for the RichTextBox, set the Effect property to&lt;br /&gt;DragDropEffects.All.&lt;br /&gt;Use the GetDataPresent method in the DragEnter event for the RichTextBox to access&lt;br /&gt;the custom data type.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;De orginele vraag&lt;/strong&gt;&lt;br /&gt;You are creating a Windows Forms application. Your application uses a custom control. The Custom control is based on a standard button control. You add several extra properties to the control. Some of these properties are read-only. You need to ensure that the read-only properties are not displayed in the Properties window of the design environment. What should you do?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Vereenvoudigd &lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Er is een custom control &lt;/span&gt;&lt;a href="http://3.bp.blogspot.com/_85Cn1QmZXos/Rn-REL4JpHI/AAAAAAAAAAM/UTR9KJbX2VA/s1600-h/properties.png"&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5079938405791016050" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_85Cn1QmZXos/Rn-REL4JpHI/AAAAAAAAAAM/UTR9KJbX2VA/s320/properties.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;De custom control heeft een read-only property &lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;De property moet NIET in design time in de property window staan &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Orginele antwoorden&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;A. Decorate the read-only properties by using the EditorBrowsable attribute, and then set the EditorBrowsable attribute to EditorBrowsableState.Never.&lt;br /&gt;B. Use the DesignTimeVisible attribute, and then set the DesignTimeVisible attribute to False.&lt;br /&gt;C. Decorate the read-only properties by using the Browsable attribute, and then set the Browsable attribute to False.&lt;br /&gt;D. Decorate the read-only properties by using the DisplayName attribute, and then set the DisplayName attribute to null.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Vereenvoudigd&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;A. [EditorBrowsable(EditorBrowsableState.Never)]&lt;br /&gt;B. [DesignTimeVisible]&lt;br /&gt;C. [Browsable(false)]&lt;br /&gt;D. [DisplayName(null)]&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;De oplossing&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;A. [EditorBrowsable(EditorBrowsableState.Never)] &lt;/span&gt;&lt;a href="http://3.bp.blogspot.com/_85Cn1QmZXos/Rn-RyL4JpJI/AAAAAAAAAAc/OLt0hyu1nj8/s1600-h/saved.png"&gt;&lt;span style="font-family:arial;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5079939196064998546" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_85Cn1QmZXos/Rn-RyL4JpJI/AAAAAAAAAAc/OLt0hyu1nj8/s320/saved.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Voor intellisense&lt;br /&gt;B. [DesignTimeVisible]&lt;br /&gt;Voor UI design tools (visual studio)&lt;br /&gt;&lt;strong&gt;C&lt;/strong&gt;. [Browsable(false)]&lt;br /&gt;Het juiste antwoord&lt;br /&gt;D. [DisplayName(null)]&lt;br /&gt;De property name &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-7285944658177371157?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/7285944658177371157/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=7285944658177371157' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/7285944658177371157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/7285944658177371157'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2007/06/mcp-worden-deel-iv-de-examen-dag.html' title='MCP worden deel IV (de examen dag)'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_85Cn1QmZXos/Rn-REL4JpHI/AAAAAAAAAAM/UTR9KJbX2VA/s72-c/properties.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-3461800423421131912</id><published>2007-06-25T02:08:00.000-07:00</published><updated>2007-06-25T02:23:09.338-07:00</updated><title type='text'>MCP worden deel III</title><content type='html'>Voor het leren van een examen zijn er een aantal resources.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Het examen&lt;/span&gt;&lt;br /&gt;Microsoft biedt online een overzicht van alle onderwerpen van een examen aan. Bijvoorbeeld &lt;a href="http://www.microsoft.com/learning/exams/70-536.mspx"&gt;70-536 overzicht&lt;/a&gt;. Dat zijn de onderwerpen waar het examen over gaat.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;De kennis&lt;/span&gt;&lt;br /&gt;MSDN&lt;br /&gt;Alle onderwerpen hebben in de MSDN library een of meer pages met voldoende uitleg om het examen te halen. Na het maken van de voorbeelden weet je voldoende. (veel succes met het doorlezen van 300 bladzijdes saaie tekst)&lt;br /&gt;&lt;br /&gt;Transcenders&lt;br /&gt;Er bestaan een aantal proef examens zoals de transcenders die online te koop zijn. Bij het maken van de vragen kan je bij de fout beantwoorde vragen een uitleg krijgen, dat maakt het leren al een stuk eenvoudiger.&lt;br /&gt;&lt;br /&gt;Testkings&lt;br /&gt;De testking boeken zijn letterlijke examen vragen samengevat door mensen die de examens hebben gemaakt. Dit is echt vals spelen maar geeft een duidelijk beeld van de moeilijkheid van de examens. Het leren van testkings is dommer werk dan de transcenders en niet alle antwoorden zijn goed uitgelegd of correct.&lt;br /&gt;&lt;br /&gt;Braindumps&lt;br /&gt;Hetzelfde als de testking boeken maar dan niet zo duur. Online zijn veel databases te vinden met veel examen vragen (en soms ook de antwoorden).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Ervaring&lt;/span&gt;&lt;br /&gt;Cursussen&lt;br /&gt;Er staat voor bij elk examen welke cursussen daarbij horen. Het volgen van de cursus dwingt je om de technieken te gebruiken en er voldoende kennis over op te doen door de uitleg. Cursussen raad ik in het bijzonder aan voor iedereen die in een klein probleem gebied werkt en toch de examens wil doen. (Printen is een belangrijk onderwerp in sommige examens maar als je er nooit mee werkt laat een cursus goed zien wat er allemaal bestaat en in een examen gevraagd word)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Typische Examen weetjes&lt;/span&gt;&lt;br /&gt;Tijdens een cursus (en zeker de mijne) word er stilgestaan bij typische weetjes vragen die tijdens een examen worden gevraagd&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-3461800423421131912?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/3461800423421131912/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=3461800423421131912' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/3461800423421131912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/3461800423421131912'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2007/06/examens-afleggen-deel-iii.html' title='MCP worden deel III'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-6279067258787821717</id><published>2007-06-25T01:58:00.000-07:00</published><updated>2007-06-25T02:08:28.088-07:00</updated><title type='text'>MCP worden deel II</title><content type='html'>De titel MCP (MS certified Professional) behaal je zodra je een los examen hebt gehaald. Daarmee krijg je toegang tot de MCP website (met een mooi examen overzicht) en heb je meteen een mooite titel voor op je CV zonder dat je daar veel werk voor hoeft te doen.&lt;br /&gt;&lt;br /&gt;Examens zijn in het algemeen lastig om te halen maar zeker niet onmogelijk.&lt;br /&gt;&lt;br /&gt;De meeste examens bestaan uit een vraag of 40 tot 50 waarbij er&lt;br /&gt;&lt;br /&gt;Kennis vragen&lt;br /&gt;Ervarings vragen&lt;br /&gt;Stomme weetjes&lt;br /&gt;&lt;br /&gt;Worden gevraagd.&lt;br /&gt;&lt;br /&gt;Het voorbereiden van een examen moet dan ook bestaan uit het werken met de technieken, Het volgen van de bijbehordende cursussen en het lezen van de boeken.&lt;br /&gt;&lt;br /&gt;Hiermee heb je echter nog niet alle stomme weetjes geleerd. De stomme weetjes zijn vaak korte alinea´s in de boeken of kleine stukjes van cursus opgaves. Tijdens het werken met de .Net technieken helpt VS intellisense of de help fucntie meestal goed. Bij het examen heb je dan ook geen intellisense en geen help functie.&lt;br /&gt;&lt;br /&gt;Daarom geeft Twice (en daarmee ik dus ook) verschillende examen trainingen.&lt;br /&gt;&lt;br /&gt;De examen trainingen bestaan meestal uit een aantal losse onderdelen.&lt;br /&gt;&lt;br /&gt;Het aanwijzen van de kennis onderwerpen (en dan in het bijzonder de examen vragen onderwerpen)&lt;br /&gt;Het aanwijzen van vereiste ervaring onderwerpen (werk eens met techniek XYZ)&lt;br /&gt;Het doornemen van typische weetjes en examen vragen.&lt;br /&gt;(van ADO.net moet je in elk examen weten hoe je twee Datasets kan samenvoegen, de opmaak kan copyeren en een deep copy kan maken. Verder moet je de parameters weten om een relation aan te maken ds.Relations.Add(new Relation(`naam´, parentColumn, childColumn)) )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-6279067258787821717?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/6279067258787821717/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=6279067258787821717' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/6279067258787821717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/6279067258787821717'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2007/06/mcp-worden-deel-ii.html' title='MCP worden deel II'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-321487223293630639</id><published>2007-06-25T01:51:00.002-07:00</published><updated>2007-06-25T01:59:56.040-07:00</updated><title type='text'>MCP certificatie en Microsoft Examens deel I</title><content type='html'>Hoi Daar,&lt;br /&gt;&lt;br /&gt;Iedereen met een baan moet af en toe ´aan zichzelf werken´.&lt;br /&gt;Zeker als programmeur waarbij je in een snel evoluerende omgeving kan werken die letterlijk om de maand kan veranderen. Bij veel verschillende Microsoft Technieken horen examens. Sinds 1992 biedt microsoft trainings trajecten met examens aan. &lt;br /&gt;&lt;br /&gt;Zelf ben ik vorig jaar MCAD´er in .Net geworden (Microsoft Certified Application Developer) en een klein half jaar later waren er nieuwe examen pakketten.&lt;br /&gt;&lt;br /&gt;Het bijhouden van de verschillende certificaten eist een flink pakket aan examens en kennis.&lt;br /&gt;&lt;br /&gt;Het halen van examens en de daarbij behordende titel zijn vaak veriesten voor een baan of opdracht. Veel detacheerders eisen ook van hun personeel dat ze veel examens halen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-321487223293630639?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/321487223293630639/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=321487223293630639' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/321487223293630639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/321487223293630639'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2007/06/mcp-certificatie-en-microsoft-examens.html' title='MCP certificatie en Microsoft Examens deel I'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-4805846198416146662</id><published>2007-06-25T01:38:00.000-07:00</published><updated>2007-06-25T01:49:03.816-07:00</updated><title type='text'>Devdays 2007</title><content type='html'>Hoi Daar,&lt;br /&gt;&lt;br /&gt;13,14 Juni ben ik naar de Devdays geweest. Een interessante maar wel vermoeiende ervaring. 15 Juni had ik een paar uurtjes ingelast om de sheets en video opnames te bekijken. Helaas zijn er nog geen sheets of video's geplaatst. Erger nog vandaag 25 juni heb ik alleen nog maar de sheets van Devdays 2006 kunnen vinden.&lt;br /&gt;&lt;br /&gt;Daarom hierbij een paar linkjes naar blog's of websitese van sprekers waar ik naar heb gekeken.&lt;br /&gt;&lt;br /&gt;UI design en VS add ons&lt;br /&gt;&lt;a href="http://www.doitwith.net/"&gt;The real Mark Miller website&lt;/a&gt;&lt;br /&gt;VB.net Reflectie&lt;br /&gt;&lt;a href="www.dotnet2themax.com/blogs/fbalena/"&gt;Francesco Balena (offline gebruik google cache)&lt;/a&gt;&lt;br /&gt;Intro LINQ&lt;br /&gt;&lt;a href="http://www.alexthissen.nl/blogs/default.aspx"&gt;Alex Thissen&lt;/a&gt;&lt;br /&gt;XNA + Programming with Cheese&lt;br /&gt;&lt;a href="http://www.robmiles.com/"&gt;Rob Miles&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-4805846198416146662?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/4805846198416146662/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=4805846198416146662' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/4805846198416146662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/4805846198416146662'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2007/06/devdays-2007.html' title='Devdays 2007'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3217577255928697209.post-4910363848919527439</id><published>2007-06-25T01:34:00.000-07:00</published><updated>2007-06-25T01:37:15.235-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='first post'/><category scheme='http://www.blogger.com/atom/ns#' term='MCT'/><category scheme='http://www.blogger.com/atom/ns#' term='intro'/><title type='text'>First Post (FIPO)</title><content type='html'>Ik ben Michiel de Vries, Microsoft Certified Trainer en op dit blog ga ik .Net technology tips geven.&lt;br /&gt;&lt;br /&gt;Ook zal ik op dit blog vermelden wat me zoal bezig houd in de .Net wereld en met welke technologien ik aan het worstelen ben.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3217577255928697209-4910363848919527439?l=teachingminds.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://teachingminds.blogspot.com/feeds/4910363848919527439/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3217577255928697209&amp;postID=4910363848919527439' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/4910363848919527439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3217577255928697209/posts/default/4910363848919527439'/><link rel='alternate' type='text/html' href='http://teachingminds.blogspot.com/2007/06/first-post-fipo.html' title='First Post (FIPO)'/><author><name>Barfield</name><uri>http://www.blogger.com/profile/10166875045633291938</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
