{"id":438,"date":"2009-09-21T21:04:42","date_gmt":"2009-09-21T20:04:42","guid":{"rendered":"https:\/\/www.entropywins.wtf\/blog\/?p=438"},"modified":"2009-09-21T21:04:42","modified_gmt":"2009-09-21T20:04:42","slug":"first-true-multithreading-event","status":"publish","type":"post","link":"https:\/\/www.entropywins.wtf\/blog\/2009\/09\/21\/first-true-multithreading-event\/","title":{"rendered":"First true multithreading event"},"content":{"rendered":"<p>Today I was able to do some work on the .Net Download library project. I mainly focused on the cross thread event handling, on which I&#8217;ve been busy for quite a while now. Thanks to some helpful docs on MSDN, I now have a working implementation, that successfully fires events of the Download class onto the thread the instance was created. (yay!) The next step is to clean up the code a little, and implement it for all events. I&#8217;m still looking for the best way to store all the event delegates. I originally had a delegate for each event, but now moved them to a HashTable, from where I identify them via an Int32 Enum<\/p>\n<p>.<a href=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/09\/eventWin.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-439\" title=\"Breakpoint successfully triggered after cross thread fired event\" src=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/09\/eventWin.gif\" alt=\"Breakpoint successfully triggered after cross thread fired event\" width=\"604\" height=\"68\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today I was able to do some work on the .Net Download library project. I mainly focused on the cross&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1],"tags":[],"class_list":["post-438","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>First true multithreading event - Blog of Jeroen De Dauw<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.entropywins.wtf\/blog\/2009\/09\/21\/first-true-multithreading-event\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"First true multithreading event - Blog of Jeroen De Dauw\" \/>\n<meta property=\"og:description\" content=\"Today I was able to do some work on the .Net Download library project. I mainly focused on the cross&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.entropywins.wtf\/blog\/2009\/09\/21\/first-true-multithreading-event\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog of Jeroen De Dauw\" \/>\n<meta property=\"article:published_time\" content=\"2009-09-21T20:04:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/09\/eventWin.gif\" \/>\n<meta name=\"author\" content=\"Jeroen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/JeroenDeDauw\" \/>\n<meta name=\"twitter:site\" content=\"@JeroenDeDauw\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeroen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/09\\\/21\\\/first-true-multithreading-event\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/09\\\/21\\\/first-true-multithreading-event\\\/\"},\"author\":{\"name\":\"Jeroen\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"headline\":\"First true multithreading event\",\"datePublished\":\"2009-09-21T20:04:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/09\\\/21\\\/first-true-multithreading-event\\\/\"},\"wordCount\":122,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"image\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/09\\\/21\\\/first-true-multithreading-event\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2009\\\/09\\\/eventWin.gif\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/09\\\/21\\\/first-true-multithreading-event\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/09\\\/21\\\/first-true-multithreading-event\\\/\",\"url\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/09\\\/21\\\/first-true-multithreading-event\\\/\",\"name\":\"First true multithreading event - Blog of Jeroen De Dauw\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/09\\\/21\\\/first-true-multithreading-event\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/09\\\/21\\\/first-true-multithreading-event\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2009\\\/09\\\/eventWin.gif\",\"datePublished\":\"2009-09-21T20:04:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/09\\\/21\\\/first-true-multithreading-event\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/09\\\/21\\\/first-true-multithreading-event\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/09\\\/21\\\/first-true-multithreading-event\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2009\\\/09\\\/eventWin.gif\",\"contentUrl\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2009\\\/09\\\/eventWin.gif\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/09\\\/21\\\/first-true-multithreading-event\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"First true multithreading event\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/\",\"name\":\"Entropy Wins\",\"description\":\"A blog on Software Architecture, Design and Craftsmanship\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\",\"name\":\"Jeroen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\",\"caption\":\"Jeroen\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\"},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/jeroendedauw\\\/\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/JeroenDeDauw\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"First true multithreading event - Blog of Jeroen De Dauw","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.entropywins.wtf\/blog\/2009\/09\/21\/first-true-multithreading-event\/","og_locale":"en_US","og_type":"article","og_title":"First true multithreading event - Blog of Jeroen De Dauw","og_description":"Today I was able to do some work on the .Net Download library project. I mainly focused on the cross&hellip;","og_url":"https:\/\/www.entropywins.wtf\/blog\/2009\/09\/21\/first-true-multithreading-event\/","og_site_name":"Blog of Jeroen De Dauw","article_published_time":"2009-09-21T20:04:42+00:00","og_image":[{"url":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/09\/eventWin.gif","type":"","width":"","height":""}],"author":"Jeroen","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/JeroenDeDauw","twitter_site":"@JeroenDeDauw","twitter_misc":{"Written by":"Jeroen","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.entropywins.wtf\/blog\/2009\/09\/21\/first-true-multithreading-event\/#article","isPartOf":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2009\/09\/21\/first-true-multithreading-event\/"},"author":{"name":"Jeroen","@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"headline":"First true multithreading event","datePublished":"2009-09-21T20:04:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2009\/09\/21\/first-true-multithreading-event\/"},"wordCount":122,"commentCount":2,"publisher":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"image":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2009\/09\/21\/first-true-multithreading-event\/#primaryimage"},"thumbnailUrl":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/09\/eventWin.gif","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.entropywins.wtf\/blog\/2009\/09\/21\/first-true-multithreading-event\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.entropywins.wtf\/blog\/2009\/09\/21\/first-true-multithreading-event\/","url":"https:\/\/www.entropywins.wtf\/blog\/2009\/09\/21\/first-true-multithreading-event\/","name":"First true multithreading event - Blog of Jeroen De Dauw","isPartOf":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2009\/09\/21\/first-true-multithreading-event\/#primaryimage"},"image":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2009\/09\/21\/first-true-multithreading-event\/#primaryimage"},"thumbnailUrl":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/09\/eventWin.gif","datePublished":"2009-09-21T20:04:42+00:00","breadcrumb":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2009\/09\/21\/first-true-multithreading-event\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.entropywins.wtf\/blog\/2009\/09\/21\/first-true-multithreading-event\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.entropywins.wtf\/blog\/2009\/09\/21\/first-true-multithreading-event\/#primaryimage","url":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/09\/eventWin.gif","contentUrl":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/09\/eventWin.gif"},{"@type":"BreadcrumbList","@id":"https:\/\/www.entropywins.wtf\/blog\/2009\/09\/21\/first-true-multithreading-event\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.entropywins.wtf\/blog\/"},{"@type":"ListItem","position":2,"name":"First true multithreading event"}]},{"@type":"WebSite","@id":"https:\/\/www.entropywins.wtf\/blog\/#website","url":"https:\/\/www.entropywins.wtf\/blog\/","name":"Entropy Wins","description":"A blog on Software Architecture, Design and Craftsmanship","publisher":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.entropywins.wtf\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7","name":"Jeroen","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g","caption":"Jeroen"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g"},"sameAs":["https:\/\/www.linkedin.com\/in\/jeroendedauw\/","https:\/\/x.com\/https:\/\/twitter.com\/JeroenDeDauw"]}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p74TBF-74","jetpack-related-posts":[{"id":382,"url":"https:\/\/www.entropywins.wtf\/blog\/2009\/09\/04\/event-based-asynchronous-pattern\/","url_meta":{"origin":438,"position":0},"title":"Event-based Asynchronous Pattern","author":"Jeroen","date":"2009-09-04","format":false,"excerpt":"While working on .Net download library, I realized I still didn't know how to fire events from the background threads onto the main thread (meaning the thread that started the download by calling Start). I posted query on how to do this in vb.net on several forums, and got some\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":622,"url":"https:\/\/www.entropywins.wtf\/blog\/2009\/12\/21\/net-download-library-the-first-results\/","url_meta":{"origin":438,"position":1},"title":".Net Download Library: the first results","author":"Jeroen","date":"2009-12-21","format":false,"excerpt":"Over the last few days, I've done some work on .Net download library, the successor to my FileDownloader class. I started working on this project about half a year ago, and had quite some difficulties picking up the thread again after GSoC 2009, since I was in the middle of\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":29,"url":"https:\/\/www.entropywins.wtf\/blog\/2009\/04\/27\/c-net-background-file-downloader\/","url_meta":{"origin":438,"position":2},"title":"C#.NET Background File Downloader","author":"Jeroen","date":"2009-04-27","format":false,"excerpt":"About a week ago I published A FileDownloader class written in VB.Net. This class enables you to easily download multiple files in the background (via a separate thread), and will provide information about the amount of downloaded data, the percentage of completion, and the download speed. On top of this,\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/04\/FileDownloaderDemo-downloading.gif?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/04\/FileDownloaderDemo-downloading.gif?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/04\/FileDownloaderDemo-downloading.gif?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":595,"url":"https:\/\/www.entropywins.wtf\/blog\/2009\/12\/09\/how-to-get-noticed-at-a-microsoft-event\/","url_meta":{"origin":438,"position":3},"title":"How to get noticed at a Microsoft event","author":"Jeroen","date":"2009-12-09","format":false,"excerpt":"Last week I went to a VISUG and MSDN event in Brussels where Scott Guthrie held 3 talks about VS2010, Silverlight 4, asp.Net and MVC. The event was very interesting, but I'm not going to dwell on the contents. Everyone got a red tshirt to wear, as can be seen\u2026","rel":"","context":"In &quot;Events&quot;","block_context":{"text":"Events","link":"https:\/\/www.entropywins.wtf\/blog\/category\/events\/"},"img":{"alt_text":"Me wearing a blue Google Maps tshirt on a Microsoft event","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/12\/msTshirtWin.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/12\/msTshirtWin.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/12\/msTshirtWin.jpg?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":34,"url":"https:\/\/www.entropywins.wtf\/blog\/2009\/04\/28\/bug-submitter-dialog\/","url_meta":{"origin":438,"position":4},"title":"Bug Submitter Dialog","author":"Jeroen","date":"2009-04-28","format":false,"excerpt":"Half a month ago I published a .Net dialog, written in VB, that allows users to easily submit bugs and other feedback on an application. The dialog features 2 types of validation, submits the data to a webservice on a separate thread, and is designed to be very user friendly.\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/04\/bugreporter_form.gif?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":543,"url":"https:\/\/www.entropywins.wtf\/blog\/2009\/11\/10\/semantic-mediawiki-camp-2009\/","url_meta":{"origin":438,"position":5},"title":"Semantic MediaWiki Camp 2009","author":"Jeroen","date":"2009-11-10","format":false,"excerpt":"Last weekend I attended Semantic MediaWiki Camp (SMWC) 2009 in Karlsruhe, Germany. Both days of the event contained very interesting presentations about SMW and various related extensions. The most exciting aspect of the event for me was perhaps getting to know other SMW developers, including Markus Kr\u00f6tzsch and Denny Vrandecic,\u2026","rel":"","context":"In &quot;Events&quot;","block_context":{"text":"Events","link":"https:\/\/www.entropywins.wtf\/blog\/category\/events\/"},"img":{"alt_text":"Yaron Koren talking about Semantic Forms on Semantic MediaWiki Camp 2009","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/11\/800px-SMW_Camp_09_YK_1.JPG?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/11\/800px-SMW_Camp_09_YK_1.JPG?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/11\/800px-SMW_Camp_09_YK_1.JPG?resize=525%2C300&ssl=1 1.5x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/438","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/comments?post=438"}],"version-history":[{"count":0,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/438\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/media?parent=438"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/categories?post=438"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/tags?post=438"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}