<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Olaf's Thoughts About Development</title>
	<atom:link href="http://www.monien.net/blog/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.monien.net/blog</link>
	<description>Delphi Programming, .NET Philosophy, Web development and more ...</description>
	<lastBuildDate>Wed, 21 Jul 2010 10:55:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Update: VAT ID Validation with Delphi</title>
		<link>http://www.monien.net/blog/index.php/2010/07/update-vat-id-validation-with-delphi/</link>
		<comments>http://www.monien.net/blog/index.php/2010/07/update-vat-id-validation-with-delphi/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 10:27:42 +0000</pubDate>
		<dc:creator>Olaf Monien</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.monien.net/blog/?p=320</guid>
		<description><![CDATA[If you are doing cross border business in the European Union, then will have to deal with so called &#8220;VAT IDs&#8221;. I&#8217;ve written a small example how to validate VAT ID&#8217;s from a Delphi 2010 program. A while ago I posted a small tool that validates a VAT ID through an official Web service provided [...]]]></description>
			<content:encoded><![CDATA[<p>If you are doing cross border business in the European Union, then will have to deal with so called &#8220;VAT IDs&#8221;. I&#8217;ve written a small example how to validate VAT ID&#8217;s from a Delphi 2010 program.<span id="more-320"></span></p>
<p><a href="http://www.monien.net/blog/index.php/2007/07/vat-id-validation-with-delphi/">A while ago</a> I posted a small tool that validates a VAT ID through an official Web service provided by the EU. In the meantime they change the Web service. The downloads below updated to reflect that change and I also updated to Delphi 2010.</p>
<p><a href="http://www.monien.net/blog/wp-content/uploads/2010/07/Bildschirmfoto-2010-07-21-um-12.26.15.png"><img class="size-full wp-image-321 alignnone" title="VAT ID Checker Screenshot" src="http://www.monien.net/blog/wp-content/uploads/2010/07/Bildschirmfoto-2010-07-21-um-12.26.15.png" alt="" width="291" height="258" /></a></p>
<p>Source code : <a href="http://www.monien.net/blog/wp-content/uploads/2008/07/files/VAT-Checker.zip">VAT-Checker.zip</a></p>
<p>Executable: <a href="http://www.monien.net/blog/wp-content/uploads/2008/07/files/VAT-Checker.exe.zip">VAT-Checker.exe.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.monien.net/blog/index.php/2010/07/update-vat-id-validation-with-delphi/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Creating multiple objects using try-finally</title>
		<link>http://www.monien.net/blog/index.php/2010/07/creating-multiple-objects-using-try-finally/</link>
		<comments>http://www.monien.net/blog/index.php/2010/07/creating-multiple-objects-using-try-finally/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 14:37:43 +0000</pubDate>
		<dc:creator>Olaf Monien</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.monien.net/blog/?p=307</guid>
		<description><![CDATA[One of the most used object-oriented patterns is probably this one: foo := TFoo.create; try //do something with foo finally foo.free; end; It basically means, that if you create an instance of some class and if there is no &#8220;owner&#8221; who takes care of the new instance&#8217;s life cycle, then it is your responsibility to [...]]]></description>
			<content:encoded><![CDATA[<p>One of the most used object-oriented patterns is probably this one:</p>
<pre class="brush: delphi">
foo := TFoo.create;
try
  //do something with foo
finally
  foo.free;
end;
</pre>
<p>It basically means, that if you create an instance of some class and if there is no &#8220;owner&#8221; who takes care of the new instance&#8217;s life cycle, then it is your responsibility to destroy the instance again, as soon as you are done with it.</p>
<p>If you don&#8217;t care about freeing the objects you created, then you will get &#8220;memory leaks&#8221;, i.e. you app will use (possibly a lot) more memory as it should.</p>
<p>The technique above is clear and simple, but what if you have more than one object that is needed in a routine? Line them up?</p>
<pre class="brush: delphi">
foo := TFoo.create;
bar := TBar.create;
try
  //do something with foo and bar
finally
  foo.free;
  bar.free;
end;
</pre>
<p>Looks good, and I see this pattern frequently &#8211; but hold on! What happens if there is an exception when TBar is created? Right, foo won&#8217;t be destroyed in that case. So maybe handle it like this then:</p>
<pre class="brush: delphi">
foo := TFoo.create;
try
  bar := TBar.create;
  try
    //do something with foo and bar
  finally
    bar.free;
  end;
finally
  foo.free;
end;
</pre>
<p>In theory this would be the correct way, and there are a lot of examples that work like that. But look at the code &#8211; right: looks really ugly, esp. if we extend that to even more objects being created. Apart from readability there is also some performance hit: every try-frame needs some extra CPU cycles, which may sum up if your routine is time critical already.</p>
<p>My suggestion is this one:</p>
<pre class="brush: delphi">
foo := nil;
bar := nil;
try
  foo := TFoo.create;
  bar := TBar.create;
  //do something with foo and bar
finally
  bar.free;
  foo.free;
end;
</pre>
<p>Now lets discuss some questions about this pattern:</p>
<p><em>Didn&#8217;t we learn, that calls to &#8220;Create&#8221; have to be made <strong>outside</strong> the try-finally block?</em><br />
No, not really. In fact it doesn&#8217;t matter where you create an instance of a class. The first example (which is mentioned in many articles) only suggests this, because it&#8217;s easy to do so with just one object.</p>
<p><em>If TBar.create fails, what happens with its bar.free counter part? Wouldn&#8217;t it actually be executed on some not &#8220;really created&#8221; object?</em><br />
No, in fact bar.free is special method, which can safely be called even on variables pointing to NIL. Free checks if self<>nil and only then the actual destructor is called.</p>
<p><em>Why did you initialize fo and bar with NIL?</em><br />
Because otherwise they might have random values. Esp. if they are declared as local variables. And we need NIL initialized variables so that &#8220;free&#8221; does not call random code in the case of an exception in one of the create calls.</p>
<p><em>If TBar.create fails with an exception, wouldn&#8217;t be there the chance that some address value would have been written to bar already &#8211; so that bar.free would be executed on some half initialized instance?</em><br />
No, if TBar.Create fails with an exception, then the class function &#8220;create&#8221; would (like any other function) return NO value at all. bar would keep its original value that is. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.monien.net/blog/index.php/2010/07/creating-multiple-objects-using-try-finally/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Is Silverlight dead?</title>
		<link>http://www.monien.net/blog/index.php/2010/06/is-silverlight-dead/</link>
		<comments>http://www.monien.net/blog/index.php/2010/06/is-silverlight-dead/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 12:39:50 +0000</pubDate>
		<dc:creator>Olaf Monien</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.monien.net/blog/?p=303</guid>
		<description><![CDATA[Silverlight is browser plugin-based Microsoft technology for developing applications that run in your Web browser. Silverlight was basically invented to overcome certain limitations that Javascript/HTML/CSS based solutions may have. Microsoft emphasizes esp. on better interactivity, better offline support and better multi media (video streaming that is) experience. Silverlight has quickly developed from version 1.0 to 4.0, which [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.silverlight.net/">Silverlight</a> is browser plugin-based Microsoft technology for developing applications that run in your Web browser. Silverlight was basically invented to overcome certain limitations that Javascript/HTML/CSS based solutions may have. Microsoft emphasizes esp. on better interactivity, better offline support and better multi media (video streaming that is) experience.</p>
<p>Silverlight has quickly developed from version 1.0 to 4.0, which is the most current version as of today. Version 1.0 was released in September 2007, which means that Microsoft pushed 4 major releases in less than 3 years. Considering that the technology is non-trivial (some sort of .NET integration, derivation of WPF, plugins even for Mac OSX and non Microsoft friendly browsers, VS and Web Expression designers &#8230;), Microsoft obviously put in quite some man power to get this done.</p>
<p>Now I look at the recently released Office 2010 version, which also comes with a &#8220;Web version&#8221; of Office. Via <a href="http://office.live.com">office.live.com</a> Microsoft offers Word, Excel, OneNote and PowerPoint as some sort of light editions of their desktop counter parts.</p>
<p>The layout looks nice, and indeed it feels almost like Office 2010 running on your desktop. The feature set is of course not (yet?) that rich, but for the occasional writer probably all features are there. Here and there it feels a little sluggish, but it works,. Collaboration is way below from what docs.google.com offers, but for a 1.0 version it&#8217;s okay.</p>
<p>Now you could have guessed &#8220;alright Microsoft&#8217;s Office Web team took Silverlight and made this a killer use case for it&#8221;, but interestingly if you look under the hood, by examining the HTML source, there appears to be not a single trace of Silverlight. At least I couldn&#8217;t find anything but HTML, Javascript and CSS.</p>
<p><strong>This of course leads to the question &#8220;Is Silverlight dead?&#8221;. If Microsoft does not eat its own food or if the Silverlight team cannot even convince other Microsoft teams to use Silverlight (the SL pieces on the MSDN pages does not really count here imho), does that possibly mean there is something wrong with the technology?</strong></p>
<p><a href="http://www.monien.net/blog/wp-content/uploads/2010/06/Bildschirmfoto-2010-06-29-um-14.35.13.png"><img title="Word 2010 Web App" src="http://www.monien.net/blog/wp-content/uploads/2010/06/Bildschirmfoto-2010-06-29-um-14.35.13.png" alt="" width="877" height="663" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.monien.net/blog/index.php/2010/06/is-silverlight-dead/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>DelphiExperts Workshop in Zürich, Köln &amp; Hamburg: 18.5. / 7.6. / 17.6.  &#8211; Subversion, Debuggen, iPhone &amp; iPad mit Delphi Daten</title>
		<link>http://www.monien.net/blog/index.php/2010/04/delphiexperts-workshop-in-zurich-koln-hamburg-18-5-7-6-17-6-so-subversion-debuggen-iphone-ipad-mit-delphi-daten/</link>
		<comments>http://www.monien.net/blog/index.php/2010/04/delphiexperts-workshop-in-zurich-koln-hamburg-18-5-7-6-17-6-so-subversion-debuggen-iphone-ipad-mit-delphi-daten/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 05:51:38 +0000</pubDate>
		<dc:creator>Olaf Monien</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.monien.net/blog/?p=299</guid>
		<description><![CDATA[Wir, die DelphiExperts gehen mal wieder mit Embarcadero auf DevTracks Reisen und bieten jeweils am Tag danach oder davor einen unserer gewohnt pragmatischen Delphi Workshops an. Wir werden diesmal gewissermassen das Thema &#8220;Sauberkeit am Arbeitsplatz&#8221; behandeln, d.h. wir zeigen Ihnen alles zum Thema Sourcecodeverwaltung (Subversion), Debuggen, Fehlereingrenzung und Speicherprobleme. Als besonderes Extra zeigen wir Ihnen, [...]]]></description>
			<content:encoded><![CDATA[<p>Wir, die <a href="http://www.delphiexperts.net">DelphiExperts</a> gehen mal wieder mit Embarcadero auf <a href="http://www.devtracks.de">DevTracks Reisen</a> und bieten jeweils am Tag danach oder davor einen unserer gewohnt pragmatischen Delphi Workshops an.</p>
<p>Wir werden diesmal gewissermassen das Thema &#8220;Sauberkeit am Arbeitsplatz&#8221; behandeln, d.h. wir zeigen Ihnen alles zum Thema <strong>Sourcecodeverwaltung</strong> (Subversion), <strong>Debuggen</strong>, <strong>Fehlereingrenzung</strong> und <strong>Speicherprobleme</strong>. Als besonderes Extra zeigen wir Ihnen, wie man native <strong>iPhone/iPad</strong> Anwendungen mit einem Delphi Backend verbinden kann.</p>
<p>Die genaue Agenda und Anmeldung findet sich unter <a href="http://www.delphiexperts.net/delphi-experts-workshop-days-zurich-koln-hamburg/">www.DelphiExperts.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.monien.net/blog/index.php/2010/04/delphiexperts-workshop-in-zurich-koln-hamburg-18-5-7-6-17-6-so-subversion-debuggen-iphone-ipad-mit-delphi-daten/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Our first iPad App is available: Rugby Magazine</title>
		<link>http://www.monien.net/blog/index.php/2010/04/our-first-ipad-app-is-available-rugby-magazine/</link>
		<comments>http://www.monien.net/blog/index.php/2010/04/our-first-ipad-app-is-available-rugby-magazine/#comments</comments>
		<pubDate>Sat, 03 Apr 2010 17:00:38 +0000</pubDate>
		<dc:creator>Olaf Monien</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.monien.net/blog/?p=293</guid>
		<description><![CDATA[Daniel and I are happy to announce that our first iPad application is availble since today. Actually it was already available yesterday, but without an iPad it wasn&#8217;t that much fun It&#8217;s an iPad only application &#8211; it&#8217;s a magazine. So it really makes use of the large iPad screen. On the iPhone it just [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://dmagin.wordpress.com/" target="_self">Daniel</a> and I are happy to announce that our first iPad application is availble since today. Actually it was already available yesterday, but without an iPad it wasn&#8217;t that much fun <img src='http://www.monien.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>It&#8217;s an iPad only application &#8211; it&#8217;s a magazine. So it really makes use of the large iPad screen. On the iPhone it just wouldn&#8217;t be readable. Daniel and I (and actually Holger assisted us a bit) developed that application for our partner <a href="http://www.rugbymag.com/" target="_blank">American International Media</a>, who own the magazine. That copmany also owns the <a href="http://www.usasevens.com" target="_blank">USA Sevens Rugby series</a>, which is an interesting Rugby variant: 7 Players per team &#8211; 2 * 7 minutes.  From 2016 its gonna be Olympic.</p>
<p>Get the mag at <a href="http://itunes.apple.com/US/app/unknown/id364885519?mt=8&amp;ign-mpt=uo%3D6" target="_blank">Apple&#8217;s AppStore</a></p>
<p><a href="http://itunes.apple.com/US/app/unknown/id364885519?mt=8&amp;ign-mpt=uo%3D6"><img class="alignnone" title="Rugby Magazine" src="http://a1.phobos.apple.com/us/r1000/018/Purple/bd/b4/99/mzl.haouskgc.480x480-75.jpg" alt="" width="360" height="480" /></a></p>
<p>We considered using Delphi Prism / MonoTouch for this application, but as we know that Apple would come out with a couple of new beta releases of the 3.2 SDK right before the submission deadline, we decided against it, to make sure we were able to deliver. We are working on a DelphiFeeds app though &#8211; which will be using Delphi Prism. Stay tuned for that.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.monien.net/blog/index.php/2010/04/our-first-ipad-app-is-available-rugby-magazine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone Workshop in Munich a great success</title>
		<link>http://www.monien.net/blog/index.php/2010/03/iphone-workshop-in-munich-a-great-success/</link>
		<comments>http://www.monien.net/blog/index.php/2010/03/iphone-workshop-in-munich-a-great-success/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 12:31:42 +0000</pubDate>
		<dc:creator>Olaf Monien</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.monien.net/blog/?p=288</guid>
		<description><![CDATA[The ongoing iPhone workshop with Daniel Magin, Evan Doll and my self is apparently going to be a great success. We are basically sold out, the audience is very interested and motivated and we try to get them onto the iPhone development train in our renowned practical style. We are going to repeat that workshop [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.idgevents.de/imgserver/bdb/1763400/1763485/118x.jpg" alt="" />The ongoing iPhone workshop with <a href="http://www.danielmagin.de">Daniel Magin</a>, <a href="http://www.evandoll.com/">Evan Doll </a>and my self is apparently going to be a great success. We are basically sold out, the audience is very interested and motivated and we try to get them onto the iPhone development train in our renowned practical style.</p>
<p>We are going to repeat that workshop in Hamburg next week, and there are still a very, very few seats left &#8211; so if you got time and want an iPhone development introduction, then come join us in Hamburg on March 22/23.</p>
<p>Sessions are in mixed language mode, i.e. understanding German and English is a requirement. We focus on Xcode and Objective-C, but we also demonstrate MonoTouch / Delphi Prism for Mac briefly.</p>
<p>Event pictures can be found on our partner&#8217;s Website: <a href="http://www.macwelt.de/artikel/_News/370763/making_apps_informationen_fuer_iphone_entwickler/1">MacWelt.de</a></p>
<p>Event info and registration for Hamburg can be found <a href="http://www.idgevents.de/konferenzen/367/making_apps_developer_days.html">here</a>.</p>
<p><strong>Update: Hamburg is sold out too.</strong></p>
<p><img src="http://images.macwelt.de/images/macwelt/bdb/242677/400x239.jpg" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.monien.net/blog/index.php/2010/03/iphone-workshop-in-munich-a-great-success/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Leitender Delphi Job in München anzubieten</title>
		<link>http://www.monien.net/blog/index.php/2010/01/leitender-delphi-job-in-munchen-anzubieten/</link>
		<comments>http://www.monien.net/blog/index.php/2010/01/leitender-delphi-job-in-munchen-anzubieten/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 10:53:41 +0000</pubDate>
		<dc:creator>Olaf Monien</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.monien.net/blog/?p=284</guid>
		<description><![CDATA[Wir suchen für einen Kunden im Raum München einen Delphi Entwickler für die Position des Entwicklungsleiters. Die Postion ist zur Festanstellung ausgeschrieben und es wird eine branchengerechte Bezahlung geboten. Neben Delphikenntnissen und Führungsqualitäten sind Kenntnisse in Betriebswirtschaft wünschenswert. Bei Interesse ganz unverbindlich per Kontaktformular oder auch über unsere DelphiExperts Seite antworten. Alle Anfragen werden selbstverständlich [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.delphiexperts.net">Wir</a> suchen für einen Kunden im Raum München einen Delphi Entwickler für die Position des Entwicklungsleiters.</p>
<p>Die Postion ist zur Festanstellung ausgeschrieben und es wird eine branchengerechte Bezahlung geboten. Neben Delphikenntnissen und Führungsqualitäten sind Kenntnisse in Betriebswirtschaft wünschenswert.</p>
<p>Bei Interesse ganz unverbindlich per <a href="http://www.monien.net/blog/index.php/contact/">Kontaktformular</a> oder auch über unsere <a href="http://www.delphiexperts.net/services/human-resources/search-selection">DelphiExperts Seite</a>  antworten. Alle Anfragen werden selbstverständlich diskret behandelt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.monien.net/blog/index.php/2010/01/leitender-delphi-job-in-munchen-anzubieten/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Postives Feedback der letzen DelphiExperts Veranstaltungen</title>
		<link>http://www.monien.net/blog/index.php/2009/12/postives-feedback-der-letzen-delphiexperts-veranstaltungen/</link>
		<comments>http://www.monien.net/blog/index.php/2009/12/postives-feedback-der-letzen-delphiexperts-veranstaltungen/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 10:50:30 +0000</pubDate>
		<dc:creator>Olaf Monien</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[Delphi]]></category>

		<guid isPermaLink="false">http://www.monien.net/blog/index.php/2009/12/postives-feedback-der-letzen-delphiexperts-veranstaltungen/</guid>
		<description><![CDATA[Die Auswertung der Teilnehmer-Feedbacks für unsere letzen beiden DelphiExperts-Veranstaltungen in Berlin und Stuttgart liegt vor. Wir freuen uns über die ausgesprochen positive Resonanz und bedanken uns bei allen Teilnehmern für ihr Interesse! Die Ergebnisse finden sich hier: www.delphiexperts.net/events]]></description>
			<content:encoded><![CDATA[<p>Die Auswertung der Teilnehmer-Feedbacks für unsere letzen beiden DelphiExperts-Veranstaltungen in Berlin und Stuttgart liegt vor. Wir freuen uns über die ausgesprochen positive Resonanz und bedanken uns bei allen Teilnehmern für ihr Interesse!</p>
<p>Die Ergebnisse finden sich hier: <a href="http://www.delphiexperts.net/events">www.delphiexperts.net/events</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.monien.net/blog/index.php/2009/12/postives-feedback-der-letzen-delphiexperts-veranstaltungen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oups &#8211; I deleted the Internet</title>
		<link>http://www.monien.net/blog/index.php/2009/11/oups-i-deleted-the-internet/</link>
		<comments>http://www.monien.net/blog/index.php/2009/11/oups-i-deleted-the-internet/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 23:33:05 +0000</pubDate>
		<dc:creator>Olaf Monien</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[.net]]></category>

		<guid isPermaLink="false">http://www.monien.net/blog/index.php/2009/11/oups-i-deleted-the-internet/</guid>
		<description><![CDATA[I hit &#34;Yes&#34; on the dialog below, which basically says: &#34;Are you sure you want to delete the Internet?&#34;. Please don&#8217;t bash me if you cannot get to the Internet anymore &#8211; I am working on restoring a backup]]></description>
			<content:encoded><![CDATA[<p>I hit &quot;Yes&quot; on the dialog below, which basically says:</p>
<blockquote><p> &quot;Are you sure you want to delete the Internet?&quot;. </p>
</blockquote>
<p>Please don&#8217;t bash me if you cannot get to the Internet anymore &#8211; I am working on restoring a backup <img src='http://www.monien.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><a href="http://www.monien.net/blog/wp-content/uploads/2009/11/InternetDeleted.gif"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Internet Deleted" border="0" alt="Internet Deleted" src="http://www.monien.net/blog/wp-content/uploads/2009/11/InternetDeleted_thumb.gif" width="244" height="119" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.monien.net/blog/index.php/2009/11/oups-i-deleted-the-internet/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Delphi Prism/Pascal kompiliert auf dem Mac f&#252;r iPhone</title>
		<link>http://www.monien.net/blog/index.php/2009/10/delphi-prismpascal-kompiliert-auf-dem-mac-fr-iphone/</link>
		<comments>http://www.monien.net/blog/index.php/2009/10/delphi-prismpascal-kompiliert-auf-dem-mac-fr-iphone/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 21:33:49 +0000</pubDate>
		<dc:creator>Olaf Monien</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Embarcadero]]></category>

		<guid isPermaLink="false">http://www.monien.net/blog/index.php/2009/10/delphi-prismpascal-kompiliert-auf-dem-mac-fr-iphone/</guid>
		<description><![CDATA[English: This article provides some preview information about Delpi/Prism/Pascal on the Mac compiling for the iPhone. English content is available at Daniels Blog. Native iPhone Anwendungsentwicklung bedeutet normalerweise das Auseinandersetzen mit Objective C, der Haus- und Hof-Sprache von Apple. Man bekommt, nachdem man sich als Entwickler bei Apple registriert hat, die komplette X-Code IDE inklusiver [...]]]></description>
			<content:encoded><![CDATA[<p><em>English: This article provides some preview information about Delpi/Prism/Pascal on the Mac compiling for the iPhone. English content is available at </em><a href="http://dmagin.wordpress.com/2009/10/13/pascal-on-the-iphone/"><em>Daniels Blog</em></a><em>.</em></p>
<p>Native iPhone Anwendungsentwicklung bedeutet normalerweise das Auseinandersetzen mit Objective C, der Haus- und Hof-Sprache von Apple. Man bekommt, nachdem man sich als Entwickler bei Apple registriert hat, die komplette X-Code IDE inklusiver aller Werkzeuge praktisch kostenlos zur Verfügung gestellt.</p>
<p><span id="more-278"></span></p>
<p>Man kann also, ohne viel Geld in die Hand nehmen zu müssen, mit der Softwareentwicklung für Mac und iPhone/iPod Touch quasi ad-hoc loslegen. Zumindest wenn man einen schnellen Internetzugang hat – der komplette SDK Download ist über 2 GB groß.</p>
<p>Dass dies auch in der Praxis funktioniert, sieht man sicherlich auch daran, dass es mittlerweile zehntausende Anwendungen in Apples AppStore gibt. Wieso gibt es aber nun Interesse an Pascal auf dem Mac/iPhone? Nun, wer Pascal kennt und dann mit Objective-C (OC) konfrontiert wird, erleidet doch einen gewissen Kultur-Schock. Mit “normalem” C mag man sich noch abfinden (Volker, nichts für Ungut <img src='http://www.monien.net/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  aber wenn man dann die Syntax von OC sieht, fragt man sich doch ob der Erfinder Klammer-Fetischist war…</p>
<p>Nicht dass wir uns missverstehen:  Die Mac und iPhone Frameworks – rund um Cocoa –  sind superinteressant und haben klasse Features. Auch die kostenlose IDE X-Code ist hervorragend – aber für mich als alter Pascal Haudegen “geht” diese OC Sprache einfach nicht. Bisher habe ich öfter mal gesagt: “die Sprache ist wurscht, man lernt halt einfach die Syntax” – aber das war vor Objective C …</p>
<p>Nun haben <a href="http://dmagin.wordpress.com/">Daniel Magin</a>, <a href="http://flickdotnet.de">Holger Flick</a> und ich von <a href="http://www.remobjects.com">RemObjects</a> eine frühe Beta von Prism (aka Oxygene) für den Mac bekommen. <a href="http://www.embarcadero.com/products/delphi-prism" target="_blank">Prism</a> ist bisher als Plugin für Visual Studio bekannt geworden. Im Prinzip also Pascal für .NET.  Da .NET in seiner Mono Inkarnation auch auf dem Mac (und Linux) existiert, kam also Marc Hoffman von RemObjects  vor einiger Zeit auf die Idee das Prism Plugin mit .mono zu übersetzen.</p>
<p>Herausgekommen ist mittlerweile ein Beta-Plugin für <a href="http://monodevelop.com/">MonoDevelop</a> (die Mono IDE), welches Pascal unter Mono implementiert. Dadurch, dass Mono und MonoDevelop auch unter OSX lauffähig sind, können wir nun endlich OSX Anwendungen entwickeln, deren Sourcecode richtig gut verständlich und wartbar ist. Und das sogar mit Zugriff auf Cocoa, der Apple UI API.</p>
<p>Wer sich schon mal mit der iPhone Entwicklung befasst hat, wird sich nun fragen, wie man managed Mono-Anwendungen auf das iPhone bekommen soll, da da iPhone ja bekanntermaßen keinen managed Code erlaubt. Hier kommt das kommerzielle <a href="http://monotouch.net">MonoTouch</a> Add-In für MonoDevelop von Novell zum Tragen. MonoTouch tut im wesentlichen 2 Dinge:</p>
<ol>
<li>.NET/Mono Schnittstelle zum iPhone  SDK, d.h. APIs wie z.B. das MapKit sind aus Mono ansprechbar</li>
<li>managed to native Code Compiler für iPhone. Der sog. mtouch Compiler übersetzt managed Mono Anwendungen in nativen iPhone CPU Code</li>
</ol>
<p>Innerhab der MonoDevelop IDE kann man dann mithilfe von MonoTouch auf das physische IPhone deployen. Hierzu ist KEIN Jailbreak erfordelich. Auch das Ausliefern in den AppStore wird natürlich unterstützt.</p>
<p>Wenn man bedenkt, dass Delphi Prism/Oxygene noch eine frühe Beta ist, funktioniert das ganze schon hervorragend. Gestern konnte ich mit Daniel eine in Pascal geschriebene <a href="http://dmagin.wordpress.com/2009/10/13/pascal-on-the-iphone">Anwendung auf Daniels iPhone</a> installieren, die auf den GPS Sensor zugreift und die Koordinaten in einem Google Maps View darstellt.</p>
<p>Hier noch ein kurzer Blick auf die MonoDevelop Umgebung mit installiertem Oxygene:</p>
<p><a href="http://www.monien.net/blog/wp-content/uploads/2009/10/image3.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.monien.net/blog/wp-content/uploads/2009/10/image-thumb3.png" border="0" alt="image" width="244" height="141" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.monien.net/blog/index.php/2009/10/delphi-prismpascal-kompiliert-auf-dem-mac-fr-iphone/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
