<?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-8065769</id><updated>2012-02-16T02:14:35.396-08:00</updated><title type='text'>Online Thoughts</title><subtitle type='html'>This blog is about anything. It will definitely contain lots of programming thoughts, probably a few poems.

Maybe also some other things.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://araimondi.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://araimondi.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Andrea Raimondi</name><uri>http://www.blogger.com/profile/10898267700146754001</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/_zIuYPsgtJaA/S1HxeHhCqnI/AAAAAAAAAAM/u9qHDapzEBA/S220/Business_Me.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8065769.post-6294830375822612443</id><published>2010-09-27T02:18:00.001-07:00</published><updated>2010-09-27T02:18:40.570-07:00</updated><title type='text'>Why I decided to add Google AdSense</title><content type='html'>Hello!&lt;br /&gt;&lt;br /&gt;I decided to add Google AdSense for the very reason that - hopefully - that will turn in some income.&lt;br /&gt;I have no idea of how much income I will actually be having, yet I'm eager to try :-)&lt;br /&gt;&lt;br /&gt;So, if you want to support me - feel free to examine the proposed ads :-)&lt;br /&gt;&lt;br /&gt;Andrew&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8065769-6294830375822612443?l=araimondi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://araimondi.blogspot.com/feeds/6294830375822612443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8065769&amp;postID=6294830375822612443' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/6294830375822612443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/6294830375822612443'/><link rel='alternate' type='text/html' href='http://araimondi.blogspot.com/2010/09/why-i-decided-to-add-google-adsense.html' title='Why I decided to add Google AdSense'/><author><name>Andrea Raimondi</name><uri>http://www.blogger.com/profile/10898267700146754001</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/_zIuYPsgtJaA/S1HxeHhCqnI/AAAAAAAAAAM/u9qHDapzEBA/S220/Business_Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8065769.post-7386995661564744533</id><published>2010-09-27T01:46:00.000-07:00</published><updated>2010-09-27T01:48:20.030-07:00</updated><title type='text'>Revamped Blogging</title><content type='html'>Ok apparently I am now ready to revamp this blog.&lt;br /&gt;&lt;br /&gt;While I still am a Delphi Win32 developer, I will also be talking about ASP.NET MVC and Linq along the way. I might even be talking about other things, too!&lt;br /&gt;&lt;br /&gt;Ok so here I am again, ready to roll!&lt;br /&gt;&lt;br /&gt;Andrew&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8065769-7386995661564744533?l=araimondi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://araimondi.blogspot.com/feeds/7386995661564744533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8065769&amp;postID=7386995661564744533' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/7386995661564744533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/7386995661564744533'/><link rel='alternate' type='text/html' href='http://araimondi.blogspot.com/2010/09/revamped-blogging.html' title='Revamped Blogging'/><author><name>Andrea Raimondi</name><uri>http://www.blogger.com/profile/10898267700146754001</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/_zIuYPsgtJaA/S1HxeHhCqnI/AAAAAAAAAAM/u9qHDapzEBA/S220/Business_Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8065769.post-113951386453180754</id><published>2006-02-09T11:22:00.000-08:00</published><updated>2006-02-09T11:43:11.146-08:00</updated><title type='text'>A tale of the impossible</title><content type='html'>Ok, let's be less paranoid and more optimistic.&lt;br /&gt;Delphi has to find a new home.&lt;br /&gt;Some buyer has possibly already chimed in, maybe this thing is in the contract's finalization stage.&lt;br /&gt;What happens now? *Who* this buyer is?&lt;br /&gt;Hopefully not Microsoft, which would just kill Delphi, maybe not Google nor Apple.&lt;br /&gt;&lt;br /&gt;Let's have a fancy idea. Let's explore the unlimited and impossible, after all it's all speculation taking place, right? Nobody in the community has clear inside info apparently, and those who possibly do won't disclose them soon, will they?&lt;br /&gt;&lt;br /&gt;So, it's time for speculation.&lt;br /&gt;Better, it's time for the impossible :D&lt;br /&gt;&lt;br /&gt;What I would gladly see as a result is a nice sponsor, a private company, which could fund a venture along with "senior" Borlanders(almost ex Borlanders, however).&lt;br /&gt;&lt;br /&gt;This (im)possibility appeals me very much as end result, it would justify the geek dances, and would probably be very well applauded by the community.&lt;br /&gt;&lt;br /&gt;To make the "impossible" a bit more realistic, I'd add that fabolous(as in "very few people think he's real"&amp;lt;g&amp;gt;) DavidI said that Borland already had a separate financial division, so that it's already a tale of two companies since a bit of time.&lt;br /&gt;&lt;br /&gt;But let's go a bit higher: what if this allowed a few ex Borlanders to come "back home"? Clearly, Anders H possibly wouldn't, but that's not said for other members.&lt;br /&gt;&lt;br /&gt;Ok ok ok I know it's impossible...&lt;br /&gt;&lt;br /&gt;... or not? :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8065769-113951386453180754?l=araimondi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://araimondi.blogspot.com/feeds/113951386453180754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8065769&amp;postID=113951386453180754' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/113951386453180754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/113951386453180754'/><link rel='alternate' type='text/html' href='http://araimondi.blogspot.com/2006/02/tale-of-impossible.html' title='A tale of the impossible'/><author><name>Andrea Raimondi</name><uri>http://www.blogger.com/profile/10898267700146754001</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/_zIuYPsgtJaA/S1HxeHhCqnI/AAAAAAAAAAM/u9qHDapzEBA/S220/Business_Me.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8065769.post-113365684760515086</id><published>2005-12-03T16:24:00.000-08:00</published><updated>2005-12-03T16:40:47.616-08:00</updated><title type='text'>Buy Borland Developer Studio 2006...</title><content type='html'>... WHY?&lt;br /&gt;&lt;br /&gt;Many people encourage to upgrade due to bigger stability, features, etc... which is ok.&lt;br /&gt;Yet, there're a number of reasons to wait for BDS 2007(or whatever it'll be called).&lt;br /&gt;&lt;br /&gt;First of all: everything that is in 2006 will be in 2007. Thus, you lose nothing waiting.&lt;br /&gt;Secondly: you don't get dotNET 2.0, which is not really a huge loss, you know, but&lt;br /&gt;actually ASP.NET 2.0 looks nice.&lt;br /&gt;Thirdly: you'll get all the goodies of 2007, too.&lt;br /&gt;Fourthly: if you wait a year, you'll have time to save money and buy Software Assurance, too, which will take BDS 2008 too to your door, for free.&lt;br /&gt;Doesn't seem a bad deal, to me.&lt;br /&gt;&lt;br /&gt;All in all, if you don't really need it, just wait. Many peers I know are doing just fine with Delphi 2005, so why upgrade now?&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;&lt;br /&gt;Andrew&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8065769-113365684760515086?l=araimondi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://araimondi.blogspot.com/feeds/113365684760515086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8065769&amp;postID=113365684760515086' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/113365684760515086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/113365684760515086'/><link rel='alternate' type='text/html' href='http://araimondi.blogspot.com/2005/12/buy-borland-developer-studio-2006.html' title='Buy Borland Developer Studio 2006...'/><author><name>Andrea Raimondi</name><uri>http://www.blogger.com/profile/10898267700146754001</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/_zIuYPsgtJaA/S1HxeHhCqnI/AAAAAAAAAAM/u9qHDapzEBA/S220/Business_Me.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8065769.post-113077631588586752</id><published>2005-10-31T06:06:00.000-08:00</published><updated>2005-10-31T08:34:14.946-08:00</updated><title type='text'>Delphi SKUs: Pro, Ent or Architect?</title><content type='html'>Uhm... actually, was it for me, none of them.&lt;br /&gt;&lt;br /&gt;Let me explain: right now Delphi has become &lt;span style="font-weight: bold;"&gt;huge&lt;/span&gt; and three editions only probably&lt;br /&gt;aren't enough. As it's been highlighted in the past, it's all about choices.&lt;br /&gt;Fine then, please let me &lt;span style="font-weight: bold;"&gt;really choose&lt;/span&gt;. If I develop desktop applications for Win32, I'm&lt;br /&gt;probably much less interested in dotNET - thus giving me ASP.NET is basically useless -&lt;br /&gt;while it would be alot more interesting to get DataSnap, for example.&lt;br /&gt;&lt;br /&gt;Give us an IDE at a very low cost(to allow young people to get started) . Let us choose à la carte what packages we want to buy, discount on bundles(if I get to buy stuff for - say - $600, you make me pay $500? That's for Borland to figure out, really).&lt;br /&gt;&lt;br /&gt;There're several reasons to be willing to do this: first of all, as I said, three editions seem too few for the current choice of technologies. I can in fact split Delphi in at least these profiles:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Delphi Desktop applications using Win32&lt;/li&gt;   &lt;li&gt;Delphi Desktop applications dotNET(which I don't think is good, but however...)&lt;/li&gt;   &lt;li&gt;Delphi Win32 Web Development using WebBroker&lt;/li&gt;   &lt;li&gt;Delphi Win32 Web Development using Intraweb&lt;/li&gt;   &lt;li&gt;Delphi dotNET Web Development using ASP.NET&lt;/li&gt;   &lt;li&gt;Delphi dotNET Web Development using IW for ASP.NET&lt;/li&gt;   &lt;li&gt;Delphi dotNET Compact framework applications&lt;/li&gt;   &lt;li&gt;Maybe I've missed a few&lt;/li&gt; &lt;/ul&gt; And I'm not detailing package wide, just using common sense.&lt;br /&gt;That's &lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;at least&lt;/span&gt;&lt;/span&gt; 7 different "profiles" and I probably missed a few, like Delphi&lt;br /&gt;Win32 C/S developer and Delphi dotNET C/S developer. That's about 9 now.&lt;br /&gt;Maybe more. By providing only three editions you're actually &lt;span style="font-weight: bold;"&gt;limiting&lt;/span&gt; my&lt;br /&gt;choices rather than widening them.&lt;br /&gt;&lt;br /&gt;Back in the Delphi 5 days, Borland offered ADOExpress as a separate package for purchase.&lt;br /&gt;This could be done with ECO and other pieces as well.&lt;br /&gt;&lt;br /&gt;Why not do it again, on the whole packages that are "worth it"?&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;Andrew&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8065769-113077631588586752?l=araimondi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://araimondi.blogspot.com/feeds/113077631588586752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8065769&amp;postID=113077631588586752' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/113077631588586752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/113077631588586752'/><link rel='alternate' type='text/html' href='http://araimondi.blogspot.com/2005/10/delphi-skus-pro-ent-or-architect.html' title='Delphi SKUs: Pro, Ent or Architect?'/><author><name>Andrea Raimondi</name><uri>http://www.blogger.com/profile/10898267700146754001</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/_zIuYPsgtJaA/S1HxeHhCqnI/AAAAAAAAAAM/u9qHDapzEBA/S220/Business_Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8065769.post-113031159573583077</id><published>2005-10-25T16:49:00.000-07:00</published><updated>2005-10-26T04:09:52.266-07:00</updated><title type='text'>Why would I want to use ECO?</title><content type='html'>It's been pointed out, from Jesper on this same blog(see previous post's comments) and in several Borland forums(and during 24hrs), what ECO really is.&lt;br /&gt;&lt;br /&gt;ECO is, simply put, a new way to write applications. It has all the features of an OPF, plus a powerful constraint language, OCL(which is common practice in the MDA world), which is&lt;br /&gt;meant to make the life of us programmers easier.&lt;br /&gt;&lt;br /&gt;The most compelling reason to use ECO, then, is the fact that a fair amout of code(namely: all the persistence code) gets out of the way to let us concentrate on coding the application.&lt;br /&gt;&lt;br /&gt;There're other reasons, too, though: for example, you can use &lt;span style="font-weight: bold;"&gt;your own&lt;/span&gt; &lt;span style="font-style: italic;"&gt;already existing&lt;/span&gt; database that you can evolve to use ECO.&lt;br /&gt;&lt;br /&gt;You can also(you most times actually will) model your business classes and map them onto one or more persistence layers(I'm talking the full blown ECO here) directly from inside Delphi.&lt;br /&gt;This means that, if a customer asks for an Oracle database, oplà, tell ECO to use Oracle and you're done.&lt;br /&gt;&lt;br /&gt;As you can see, these are all &lt;span style="font-weight: bold;"&gt;extremely good&lt;/span&gt; reasons by which you'd want to use ECO.&lt;br /&gt;&lt;br /&gt;There's one main issue here though: ECO is about dotNET, not Win32. This means that you'll have to use it in a managed environment. This might not be what you really want from your&lt;br /&gt;apps, especially when you're not server side.&lt;br /&gt;&lt;br /&gt;This becomes really especially true if we're also considering  that DeXter Pro will contain &lt;span style="font-weight: bold;"&gt;just one&lt;/span&gt; persistence layer instead of multiple: the XML files.&lt;br /&gt;&lt;br /&gt;This is indeed a problem. Assuming you might want to take on the risk and try to deploy to desktop PCs, you're facing the "Win9x challenge": will my application just run somehow or&lt;br /&gt;won't it even start?&lt;br /&gt;Please let me remind you(is it really necessary? Hope not!) that the average computer user is plenty full of viruses in his/her machine and that Win9x is &lt;span style="font-weight: bold;"&gt;unstable&lt;/span&gt; most of the times and with very poor hardware dotation(little RAM, little HD, etc). You might trying by limiting your app to Win2000+ but then... computers running Win2000 are still below actual computer horse power(not as much as Win98 machines, but... well you get the idea!). Are you sure that it's going to run smoothly and without problems? Obviously not(I'm talking about "structural" problems which are not to be raised by single applications). I've collected some informations at the 24hrs of DeXter, where an ECO team member told me that, by itself, this library doesn't add up very much to dotNET requirements, but still... thus, the only "reliable" option is to limit to Windows XP. Not only that, but you must make sure that you have enough RAM(please read &lt;a href="http://www.sysinternals.com/blog/2005/04/coming-net-world-im-scared.html"&gt;Mark Russinovic's post about dotNET applications memory usage&lt;/a&gt;!) and decent hardware components&lt;br /&gt;(big HD, etc).&lt;br /&gt;&lt;br /&gt;Now, on to the technicalities about dotNET. You'll end up choosing WinForms or VCL.NET .&lt;br /&gt;Either one, to me, doesn't seem a great option. Why? The (in)famous JIT compiler. Why this is a problem is *very* easy to understand: dotNET is precompiled in IL code. This code then gets translated &lt;span style="font-weight: bold;"&gt;on-demand&lt;/span&gt; when you're going to use it. Lastly, it gets cached till you &lt;span style="font-weight: bold;"&gt;close the application&lt;/span&gt;. This means that if you restart your computer or anyway close the application, the next time you'll have to &lt;span style="font-weight: bold;"&gt;go through JIT &lt;span style="font-style: italic;"&gt;again!&lt;/span&gt;&lt;/span&gt; Now, given how many times you're bound to restart Windows(just think of the updates, let crappy software apart), you can see where the problem is.&lt;br /&gt;Let's consider something relatively "simple" in dotNET: managing XML files. These are usually managed through DOM rather than SAX, because you will normally need the tree. At least, I still have to find a situation where I didn't need the tree. Maybe XSLT transformations are better off with SAX, but I don't do that usually ;-).&lt;br /&gt;DOM engines for XML all suffer by one element, which is critical in dotNET applications: Memory consumption. Small files(in Win32) already get to use a fair amount of memory, let alone big ones. Go figure in dotNET. Plus, the code to load them is fairly slow(keep in mind&lt;br /&gt;that XML files might be using several different encondigs, thus a parser has to check for&lt;br /&gt;encoding compliance and so on - and they can't just assume you're using UTF-8 and it has to check for &lt;span style="font-style: italic;"&gt;each node&lt;/span&gt; and for all its attributes, be it leaf or not).&lt;br /&gt;Another problem, is that dotNET doesn't have pointers. Yes, I know, that's supposed to be a "feature", yet I like pointers :-) because they speed up some of my work. All Delphi classes are "pointer based"(actually that's what you're managing when you write var SL: TStringList, since the compiler will translate that to var SL: ^TStringList) and there're a few third party components that make a &lt;span style="font-weight: bold;"&gt;brilliant&lt;/span&gt; use of Pointers(&lt;a href="http://www.delphi-gems.com/VirtualTreeview/"&gt;Virtual Treeview&lt;/a&gt; being the one that comes to my mind first). Such components can't be ported to dotNET(obviously) and that's a problem for Delphi programmers, since many of them are using that and other components that can't be translated easily to be managed ones.&lt;br /&gt;&lt;br /&gt;These are just a few of the problems that you may encounter in dotNET. But we were talking about ECO, now let's see some "ECO-specific" reasons by which you won't probably want to have ECO desktop applications. ECO makes use of WinForms and if you've explored some more detail about it(I'm a Delphi 2005 user) you'll have discovered that you can't include WinForms code straight into your applications the way you used to with Win32 packages. You can - instead - do that with VCL.NET . This means, basically, that if you want to deploy such applications to the market, you have to deploy ECO packages too. This means - potentially - that if I'm a D2005 user and I download the &lt;span style="font-style: italic;"&gt;demo for free&lt;/span&gt; I might be able to add ECO packages in the IDE, thus having access &lt;span style="font-style: italic;"&gt;for free&lt;/span&gt; to something I would have to pay for otherwise. Now, how am I going to make sure that you don't have Delphi 2005? I can't - clearly. This means I can only do components which expose some ECO persistence property to work, but this also means that I have to restrict my market to components development that will be used by a &lt;span style="font-weight: bold;"&gt;vastly reduced market&lt;/span&gt;, namely D2K5 Architect owners and upcoming DeXter owners. The other way you can safely use ECO for the time being is ASP.NET applications. You build a website, then let users subscribe to your services. With Highlander, this is apparently bound to change - because ECO will be available for VCL.NET which is a &lt;span style="font-weight: bold;"&gt;good thing&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Starting to "see the light"(at least, what &lt;span style="font-weight: bold;"&gt;I think &lt;/span&gt;to be such)  now? :-)&lt;br /&gt;&lt;br /&gt;Thus, the problem really boils down to what you're planning to do with it.&lt;br /&gt;&lt;br /&gt;There're advantages too, such as the fact that even if you have DeXter pro(making components), that counts very little: just expose the correct properties and anyone using ECO would be able to change the persistence mechanism, even though you can only provide XML persistence. If you're writing webservices, you can however detatch your ASPX service from ECO persistence and be good with it. Actually, if you have a set of classes that "hide" ECO to the service, this seems very good to me :-) You can however upgrade if/when the website is having enough subscribers, till then you might have separate XML files(where appropriate) for each user.&lt;br /&gt;&lt;br /&gt;See, all this actually makes the "right decision" fairly difficult to do, considering all of the above.&lt;br /&gt;I don't think to have the Truth in me, thus I'll just tell you what &lt;span style="font-weight: bold;"&gt;I would do&lt;/span&gt; if I had to choose.&lt;br /&gt;My best bet would be to go for &lt;span style="font-weight: bold;"&gt;components&lt;/span&gt;, because even if the market for them is fairly shrinked, managing, updating and advertising a website can be quite challenging, while a message on Borland Forums now and then to advertise your components would probably suffice for most businesses. Also keep in mind that managing a website offering a subscription service must be done on reliable hosting - maybe redundant? - plus you also have to improve the service itself, leading to potential problems with customers who don't like the service's changes,&lt;br /&gt;while component customers can simply stick to what they already have without upgrading.&lt;br /&gt;&lt;br /&gt;Once ECO will be in VCL.NET, though, this all might(and probably will) change.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;Andrew&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8065769-113031159573583077?l=araimondi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://araimondi.blogspot.com/feeds/113031159573583077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8065769&amp;postID=113031159573583077' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/113031159573583077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/113031159573583077'/><link rel='alternate' type='text/html' href='http://araimondi.blogspot.com/2005/10/why-would-i-want-to-use-eco.html' title='Why would I want to use ECO?'/><author><name>Andrea Raimondi</name><uri>http://www.blogger.com/profile/10898267700146754001</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/_zIuYPsgtJaA/S1HxeHhCqnI/AAAAAAAAAAM/u9qHDapzEBA/S220/Business_Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8065769.post-113010422262959787</id><published>2005-10-23T14:12:00.000-07:00</published><updated>2005-10-25T00:00:49.223-07:00</updated><title type='text'>ECO and DeXter</title><content type='html'>Well... it's been a while, actually, since I last blogged here.&lt;br /&gt;I decided to chime in again, because I looked at a video, featuring &lt;a href="http://bdn.borland.com/article/0,1410,33331,00.html"&gt;Tim Jarvis' daughter using ECO&lt;/a&gt; to produce a homework management application. I strongly suggest that you watch it - but mind you to either use Internet Explorer or download it - since it won't show up in Firefox, you're warned.&lt;br /&gt;Alexandra(Tim's daughter) has done an &lt;span style="font-weight: bold;"&gt;excellent&lt;/span&gt; job using ECO, I strongly recommend you view the video - it's worth it.&lt;br /&gt;&lt;br /&gt;For those of you who don't yet know what ECO is, from my fairly superficial knowledge, here is a short description: ECO is, in essence, an Object Persistence Framework.&lt;br /&gt;Yet, it's a &lt;span style="font-weight: bold;"&gt;full featured&lt;/span&gt; one, with lots of goodies, already here and upcoming. It has all the "classics" of such tools, plus a few very nice things like &lt;span style="font-style: italic;"&gt;complete integration with the Delphi IDE&lt;/span&gt;. This means that you can design your model inside Delphi and then code straight away, even though with time the needed coding becomes less and less(at least for the "average" application).&lt;br /&gt;&lt;br /&gt;Let's see the pros and cons.&lt;br /&gt;Pros: It allows you to basically define most things visually, you can have multiple target databases(or persistence media, anyway) and if you're in the higher SKUs, then you get nice little things like data-hubs which, in the end, are a handy way to manage data oriented webservices.&lt;br /&gt;&lt;br /&gt;Cons: it's only existing for dotNET. This is, though, a disadvantage only up to a certain point. Let me explain. It's highly unlikely that you'll be using ECO for a desktop application, for the simple reason that it would be fun to see an eco-powered application run on Windows 98, and beleive me, Win98 is still well spread out there.&lt;br /&gt;Instead, you'll be using ECO mainly server side, maybe with SharePoint Services(btw: do you know anyone who can actually use that stuff? I'd have a few questions to ask :-P) or just in an ASP.NET application. dotNET on the server side isn't actually a bad idea, after all a server is supposed to be fast, powerful and all, thus it would make sense to get a higher end machine for a multi-thousands dollars application. Plus, dotNET has the other advantage(server side) to be in a managed environment and if an application happens to have a problem, that's not likely going to bring down the whole server(which is a &lt;span style="font-weight: bold;"&gt;good thing&lt;/span&gt; ) or make it dead crashing.&lt;br /&gt;&lt;br /&gt;Plus, having critical applications in a managed environment makes it a lil safer(read: viruses/exploits/etc remarkably more difficult) even though this doesn't substitute&lt;br /&gt;basic security precautions(like: why let anybody do anything in a webservice without&lt;br /&gt;being logged in?).&lt;br /&gt;&lt;br /&gt;Well, since I'm at it, I'll also be commenting a bit about DeXter :-)&lt;br /&gt;&lt;br /&gt;I know Borland since... uhm... be it 1991 maybe, when I started programming.&lt;br /&gt;I've always thought Borland had brilliant development tools, even though I&lt;br /&gt;really didn't like the most recent strategies very much(read: Kylix 4 needs to be&lt;br /&gt;produced :-)).&lt;br /&gt;&lt;br /&gt;Since Delphi 8, though, things got really, really, really scary.&lt;br /&gt;Much scarier than in the past. This is because of several reasons, imho:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;First of all, because not many Delphi programmers trust Microsoft(yes, I'm in that camp)&lt;/li&gt;   &lt;li&gt;Secondly, because MS is trying to impose something(dotNET) in both server and client machines, which means throwing a fairly big amount of code &lt;span style="font-weight: bold;"&gt;really out of the window&lt;/span&gt;.&lt;/li&gt;   &lt;li&gt;Thirdly, since MS has $100 million shares in Borland, all this sounded like the final death of Borland as an independent company&lt;/li&gt;   &lt;li&gt;Fourthly, because Delphi 8 was really &lt;span style="font-style: italic;"&gt;awful&lt;/span&gt; according to many commenters(I didn't buy it, thus I don't know first hand)&lt;/li&gt; &lt;/ul&gt; Yet, now things seem to getting back to normal, and we even have a real &lt;a href="http://blogs.borland.com/dcc/archive/2005/09/27/21361.aspx"&gt;ROADMAP&lt;/a&gt;! wow!&lt;br /&gt;It's maybe the first time that Borland actually does one in 14 yrs(that I know of).&lt;br /&gt;Actually, there also were the &lt;a href="http://blogs.borland.com/abauer/archive/2005/09/13/21124.aspx"&gt;barbarian updates&lt;/a&gt; from Allen Bauer for Delphi 2005 which made the product even more enjoyable than the three patches(which had already made it quite enjoyable). Those are also already available in DeXter, acutally the D2005 ones are a backport, thus things should have been vastly improved in that respect.&lt;br /&gt;Plus, there'll be an ECO "lite" version even in Pro SKU, which is appealing for me.&lt;br /&gt;Anyway, time will tell what Borland was able to do and if it's worth being with them.&lt;br /&gt;Considering that there even is a CompactFramework preview compiler for Delphi 2005, things just look right.&lt;br /&gt;&lt;br /&gt;What to say... I'm eagerly waiting and if I can manage I'll be surely getting a Software Assurance as well - according to the roadmap it should be very good value :-)&lt;br /&gt;&lt;br /&gt;Bye,&lt;br /&gt;&lt;br /&gt;Andrew&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8065769-113010422262959787?l=araimondi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://araimondi.blogspot.com/feeds/113010422262959787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8065769&amp;postID=113010422262959787' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/113010422262959787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/113010422262959787'/><link rel='alternate' type='text/html' href='http://araimondi.blogspot.com/2005/10/eco-and-dexter.html' title='ECO and DeXter'/><author><name>Andrea Raimondi</name><uri>http://www.blogger.com/profile/10898267700146754001</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/_zIuYPsgtJaA/S1HxeHhCqnI/AAAAAAAAAAM/u9qHDapzEBA/S220/Business_Me.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8065769.post-111168784284721604</id><published>2005-03-24T09:42:00.000-08:00</published><updated>2005-03-24T10:10:42.853-08:00</updated><title type='text'>Customer UNcare</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Prologue&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;Some time ago, I bought SQLServer 2000 Developer Edition, because you&lt;br /&gt;never know what your business needs will be and I found it to be affordable&lt;br /&gt;enough to go for it(70 euros).&lt;br /&gt;Some more about me: I'm a fair and loyal customer when it comes to buying&lt;br /&gt;stuff that I use business-wise. That's one of the reasons by which I upgraded to&lt;br /&gt;D2005 Pro SKU, since I couldn't afford Architect.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;What happened&lt;/span&gt;&lt;br /&gt;Yesterday I realized that I couldn't find my SQLServer CDs(or are those DVDs? Not&lt;br /&gt;sure about this, but I didn't mind investigating at the time)  so this morning I called&lt;br /&gt;Microsoft Customer UNcare for enlightment about how I could get my CDs back.&lt;br /&gt;&lt;br /&gt;The response, summing up the discussion, looks like this:&lt;br /&gt;"You have to fax us copy of the complaint filed to police officers, copy of your&lt;br /&gt;paper license, serial number and a &lt;span style="font-style: italic;"&gt;photo of the product box&lt;/span&gt;". Yes, they&lt;br /&gt;asked for the photo of the box. They continued: "This process will lead to us&lt;br /&gt;allowing you to &lt;span style="font-style: italic;"&gt;purchase again the CDs&lt;/span&gt;". Yes, they cost 30 euros and you're&lt;br /&gt;kindly allowed to buy them again.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Premise on the conclusions&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;I do not and am not planning to &lt;span style="font-style: italic;"&gt;endorse piracy in any way&lt;/span&gt; but, here are my&lt;br /&gt;thoughts.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;My thoughts&lt;/span&gt;&lt;br /&gt;Now, let's be honest. What could possibly stop me from buying a pirate CD and use my&lt;br /&gt;legal serial number with it? I mean, I already bought it legally, I can use my legal serial&lt;br /&gt;number with it. I can use the pirate CD as backup copy. If you're willing to know why&lt;br /&gt;I'm more leaning towards buying it again(yes, that's what I'm going to do), it's simple:&lt;br /&gt;SQLServer CDs include a few things other than the client and server themselves, like&lt;br /&gt;Reporting Services, service packs and so on. And I don't want to lose on them.&lt;br /&gt;Plus, I can make sure something like that(losing the CDs) won't happen ever&lt;br /&gt;again with the product.&lt;br /&gt;Now, on with my thoughts about Microsoft attitude.&lt;br /&gt;I can understand fighting piracy, that's what those requirements boil down to, but I&lt;br /&gt;strongly beleive in the concept that you're innocent before you're demonstrated&lt;br /&gt;guilty. Nowadays, it looks more like that you're considered guilty unless you&lt;br /&gt;prove to be innocent and that's just plain &lt;span style="font-style: italic;"&gt;wrong&lt;/span&gt; in my opinion.&lt;br /&gt;&lt;br /&gt;Anyway, this buffled me quite a bit, I never thought I'd be requested to go&lt;br /&gt;through all this hassle to get CDs back.&lt;br /&gt;&lt;br /&gt;Side note: when I lost my Delphi 6 CDs(yes... :D I'm a bit distracted :D), Borland&lt;br /&gt;asked for my purchase proof(obviously) and just sent CDs back to me with no&lt;br /&gt;expense on my side. Thus, kudos to Borland for that.&lt;br /&gt;&lt;br /&gt;Andrew&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8065769-111168784284721604?l=araimondi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://araimondi.blogspot.com/feeds/111168784284721604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8065769&amp;postID=111168784284721604' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/111168784284721604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/111168784284721604'/><link rel='alternate' type='text/html' href='http://araimondi.blogspot.com/2005/03/customer-uncare.html' title='Customer UNcare'/><author><name>Andrea Raimondi</name><uri>http://www.blogger.com/profile/10898267700146754001</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/_zIuYPsgtJaA/S1HxeHhCqnI/AAAAAAAAAAM/u9qHDapzEBA/S220/Business_Me.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8065769.post-110289586438772088</id><published>2004-12-12T15:04:00.000-08:00</published><updated>2004-12-12T15:57:44.386-08:00</updated><title type='text'>Dear setups...</title><content type='html'>How many applications do we install monthly?&lt;br /&gt;&lt;br /&gt;A bit, most people will say. Yes. Quite a bit, in my case.&lt;br /&gt;&lt;br /&gt;And how many times does it happen to you to have to click Next for a long time?&lt;br /&gt;Yes... me too, obviously.&lt;br /&gt;&lt;br /&gt;Setups are darn boring.&lt;br /&gt;&lt;br /&gt;They're boring because in most cases we just want to get the thing installed and don't care about the slightest details. Over 20 yrs of setups around the world and nobody seems to get this&lt;br /&gt;very simple thing: &lt;span style="font-weight: bold;"&gt;the most of the time people don't care about customizations.&lt;/span&gt;&lt;br /&gt;That's the problem. What's so wrong about having a simple message box asking at startup:&lt;br /&gt;"do you want to do any modification to the setup?" If you answer yes, then the plain&lt;br /&gt;setup windows will follow, otherwise it will JUST INSTALL THE THING!&lt;br /&gt;&lt;br /&gt;Then, if you like it, you can always remove it and re-install and be picky and modify each small detail about it. But that's &lt;span style="font-weight: bold;"&gt;afterwards&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Other thing: most of the time, setup programs ask a variety of questions which, in principle, should be asked at the first run. &lt;span style="font-weight: bold;"&gt;Please stop that&lt;/span&gt;. It's awful.&lt;br /&gt;It's just a time consuming step that makes people lose their time.&lt;br /&gt;Yes, eventually you'll have to answer those questions, but at least give an option.&lt;br /&gt;Ask: "Do you want to preconfigure the program?". If I answer yes, then go on.&lt;br /&gt;Otherwise, &lt;span style="font-weight: bold;"&gt;please do refrain from obliging me to configure on the spot&lt;/span&gt;.&lt;br /&gt;I might have other things to do and be unwilling to leave the computer opened.&lt;br /&gt;&lt;br /&gt;Now, after all this, what is a setup in my opinion? A setup is a set of steps that&lt;br /&gt;prepare your application to be started and operated flawlessly.&lt;br /&gt;&lt;br /&gt;Example: when you install the Operating System, in my opinion, driver installs are not part of the configuration, but of setup, because they enable the computer user to "use" the OS to its uppermost extent.  License acceptance, for example, should be part of configuration.&lt;br /&gt;&lt;br /&gt;Registering an OCX is part of setup, but having registry keys containing other things shouldn't be part of setup( well, registry shouldn't really exist in the very first place, but that's another story... ).&lt;br /&gt;&lt;br /&gt;Please, let all of us cooperate to get back to setup sanity.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;Andrew&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8065769-110289586438772088?l=araimondi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://araimondi.blogspot.com/feeds/110289586438772088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8065769&amp;postID=110289586438772088' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/110289586438772088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/110289586438772088'/><link rel='alternate' type='text/html' href='http://araimondi.blogspot.com/2004/12/dear-setups.html' title='Dear setups...'/><author><name>Andrea Raimondi</name><uri>http://www.blogger.com/profile/10898267700146754001</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/_zIuYPsgtJaA/S1HxeHhCqnI/AAAAAAAAAAM/u9qHDapzEBA/S220/Business_Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8065769.post-109864054677151847</id><published>2004-10-24T10:09:00.000-07:00</published><updated>2004-10-28T04:52:40.873-07:00</updated><title type='text'>Few considerations on the current and future Delphi and Borland</title><content type='html'>&lt;h1&gt;Recap of the situation&lt;/h1&gt;Delphi 2005 is due out around November this year. Fine. It'll contain, according to several Borlanders, three different personalities to work with. Fine. There'll be Pro, Ent and Architect editions. Not really fine. Why isn't it fine? After all, Delphi is mainly used from professionals and for learning there's &lt;a href="http://www.lazarus.freepascal.org/index.php"&gt;Lazarus&lt;/a&gt;. That's not really fine for several reasons that I'm going to list:&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;Lazarus and Delphi are different products with different goals and different user base&lt;/li&gt;   &lt;li&gt;Delphi is light years ahead of Lazarus, for historical reasons and for funding reasons&lt;/li&gt;   &lt;li&gt;Delphi has a technology allowing new components to be installed/uninstalled seamlessly in the environment. With Lazarus, each time you want to add one or more components to the IDE you've got to &lt;span style="font-weight: bold;"&gt;recompile &lt;/span&gt;it.&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt;These are not the only reasons, but the ones I consider most relevant. There's the lack of a Personal edition for the Delphi product line and that's not a good thing. Some people say that it's just not possible to add a Personal because it would look too much like Professional one.&lt;br /&gt;This is true only till some extent, because I don't think the problem lies on the "personal" side of the product, but on the professional side.&lt;br /&gt;&lt;br /&gt;Let me explain.&lt;br /&gt;&lt;br /&gt;When I have a look at the Pro feature matrix column, I always feel there's something missing.&lt;br /&gt;Just an example: MIDAS wasn't available to the Pro users. Unfortunately the current feature matrix for D2005 is a bit confusing and I'm unable to say if there's now or not.&lt;br /&gt;ASP.NET controls are not available to Pro users. It just seems like Borland leaves us on the edge of the canyon, always waiting for us to jump. That's not a nice feeling.&lt;br /&gt;That's what makes, in my opinion, impossible for Borland to make a Personal edition.&lt;br /&gt;&lt;br /&gt;While the new enhancemets are really most welcome, it's probably missing on Borland side the "feeling" for the small shops and single developers. They dind't probably learn a lesson from "Integrating the Enterprise", did you, Borland?&lt;br /&gt;&lt;br /&gt;What really beats me off here is understanding what is so wrong with professional users and,&lt;br /&gt;more importantly, how would you define a professional or an enterprise user.&lt;br /&gt;It's very easy these days to do webservices, for example, with &lt;a href="http://www.remobjects.com/"&gt;RemObjects&lt;/a&gt;. Now, if I make a webservice, am I a professional or an enterprise customer? Standing from Delphi editions point of view, I'm an Enterprise customer :-) but I maybe am just a pro under the "pocket" point of view. I agree that some things are just pointless in "Pro" editions, for example the ECO model.&lt;br /&gt;Another example that perfectly shows the situation: I'm a developer with a LAN at home.&lt;br /&gt;Now, I want to target Interbase Server, I can't. That's because the Pro version comes only with Interbase Desktop. Thus, I can't access - for example - from other computers in my home lan my Interbase server because of that. And if I want to make a test I have to do it on my machine, which inherently leads me to choose Firebird because I can target it freely using the whole potential of my LAN. Why then wonder that Borland revenues come less from Delphi and Delphi-related stuff and more from other things? Another example? Ok.&lt;br /&gt;You have to be a software house to become a Borland Technology Partner. Why is this wrong? Simple: because only BTPs can make a request to be included in the Companion CD shipping with Delphi. Thus, I'll obtain not even a chance to try and let my freeware or shareware stuff be&lt;br /&gt;visible. Since there's no way to get onto the companion CD if you don't have financial resources to do so, then you won't likely upload stuff to CodeCentral unless you're really interested in giving away for free some of your works. That's, imho, probably one of the reasons this is wrong. Plus, you're entitled to leave a message for Borland when you upload something, but you never get a response back. At least, I never received one and I uploaded 4 things. I put always the same message. Is there anyone reading those messages? I strongly doubt it. Not to speak about the "Get Published" section on BDN. If you want to be able to publish, you have to &lt;span style="font-weight: bold;"&gt;FAX&lt;/span&gt; the agreement. LOL that's plain crazy, come on! I live in Italy, faxing to USA is an intercontinental call. That's what has been mainly stopping me from writing anything for BDN, and I would have a few things to say. I'm still using Delphi 6 and I'm plain happy with it. Oh yes, I'd love to be able to play with Kylix shipping with D7, but I can't, because the contability raises an EFinanceException when I press the "Buy" button :-)&lt;br /&gt;&lt;br /&gt;Ok, that's all for now.&lt;br /&gt;&lt;br /&gt;See ya later!&lt;br /&gt;&lt;br /&gt;Andrew&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8065769-109864054677151847?l=araimondi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://araimondi.blogspot.com/feeds/109864054677151847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8065769&amp;postID=109864054677151847' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/109864054677151847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/109864054677151847'/><link rel='alternate' type='text/html' href='http://araimondi.blogspot.com/2004/10/few-considerations-on-current-and.html' title='Few considerations on the current and future Delphi and Borland'/><author><name>Andrea Raimondi</name><uri>http://www.blogger.com/profile/10898267700146754001</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/_zIuYPsgtJaA/S1HxeHhCqnI/AAAAAAAAAAM/u9qHDapzEBA/S220/Business_Me.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8065769.post-109355803267717029</id><published>2004-08-26T12:16:00.000-07:00</published><updated>2004-08-26T15:07:12.676-07:00</updated><title type='text'>Components aren't always a good thing</title><content type='html'>Many Delphi programmers build applications through alot of components.&lt;br /&gt;While this may be good on some cases( try doing &lt;a href="http://www.devexpress.com/"&gt;DevExpress&lt;/a&gt; things without&lt;br /&gt;using components :-) ) other times plain classes will do just well.&lt;br /&gt;&lt;br /&gt;The reason many programmers don't use classes is that they relate OOP to&lt;br /&gt;components wich - imho - is &lt;span style="font-weight: bold;"&gt;incorrect&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Classes can be very useful for run-time tasks where you need extensibility and polymorphism.&lt;br /&gt;Encapsulation just comes in the bundle, if you do proper OOP.&lt;br /&gt;&lt;br /&gt;Let's see an example: say you have to make a program that process text commands.&lt;br /&gt;&lt;br /&gt;You could do it in this way:&lt;br /&gt;&lt;br /&gt;Type&lt;br /&gt;&lt;br /&gt;    TCommandProcessor = class&lt;br /&gt;     protected&lt;br /&gt;          procedure ProcessCommand( S : String );&lt;br /&gt;     public&lt;br /&gt;        procedure LoadCommandsFromStream( S : TStream );&lt;br /&gt;        procedure LoadCommandsFromFile( const FileName : String );&lt;br /&gt;    end;&lt;br /&gt;&lt;br /&gt;Then go on implementing it this way, with your ProcessCommand method getting *HUGE* and&lt;br /&gt;unmantainable when time goes by. Now let's have a look at a, imho, better design:&lt;br /&gt;&lt;br /&gt;Type&lt;br /&gt;    IMyCommandSource = interface&lt;br /&gt;       function GetNextCommand : String;&lt;br /&gt;    end;&lt;br /&gt;&lt;br /&gt;    TCommandBase = class&lt;br /&gt;     protected&lt;br /&gt;         procedure InternalProcessCommand( ACommand : String );virtual;abstract;&lt;br /&gt;     public&lt;br /&gt;        constructor Create;virtual;&lt;br /&gt;        procedure ProcessCommand( ACommand : String );&lt;br /&gt;    end;&lt;br /&gt;&lt;br /&gt;    TCommandClass = class of TCommandBase;&lt;br /&gt;&lt;br /&gt;This acts as a base class for all commands. The Create constructor is&lt;br /&gt;marked virtual( please &lt;span style="font-weight: bold;"&gt;do&lt;/span&gt; remember to call "Inherited Create" at some point in it ), so&lt;br /&gt;that you can do there all of your command-wide initializations.&lt;br /&gt;Using a protected method to make the actual process is senseful because that way you&lt;br /&gt;won't need to change public methods when changing internal implementation.&lt;br /&gt;We also defined an ICommandSource interface, this way *anything* implementing that&lt;br /&gt;will be able to be passed along as a parameter when we'll use the interface.&lt;br /&gt;&lt;br /&gt;Now we can create a list of commands:&lt;br /&gt;&lt;br /&gt;Type&lt;br /&gt;&lt;br /&gt;   TCommandItem = class&lt;br /&gt;    public&lt;br /&gt;        property Name : String;&lt;br /&gt;        property CommandClass : TCommandClass;&lt;br /&gt;   end;&lt;br /&gt;&lt;br /&gt;   TCommandList = class&lt;br /&gt;    private&lt;br /&gt;       FList : TObjectList;&lt;br /&gt;    public&lt;br /&gt;       procedure AfterConstruction;override;&lt;br /&gt;       destructor Destroy;override;&lt;br /&gt;       procedure AddCommand(  Name : String;ACommand : TCommandClass );overload;&lt;br /&gt;       procedure AddCommand( AnItem : TCommandItem );overload;&lt;br /&gt;       property Item[ Index : Integer ] : TCommandItem;&lt;br /&gt;       property CommandByName[ Index : Integer ] : TCommandClass;&lt;br /&gt;   end;&lt;br /&gt;&lt;br /&gt;Now, you might want to make this a singleton, to share the same instance throughout&lt;br /&gt;your program. Using CommandByName you can write something like this:&lt;br /&gt;&lt;br /&gt;var Cmd : TCommandBase;&lt;br /&gt;begin&lt;br /&gt;   Cmd :=  MyCommandList.CommandByName[ 'MyWeirdCommand' ].Create;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;Quite handful, uh?&lt;br /&gt;&lt;br /&gt;Now you can build your command processor, using ICommandSource to get your&lt;br /&gt;next command and then splitting the whole thing using a delimited string list.&lt;br /&gt;Since Delimiter and DelimitedText only work for D6+ as far as I can recall, then you&lt;br /&gt;might be well served using the CommaText property and have comma separated&lt;br /&gt;commands.&lt;br /&gt;The first string in your list will usually be the command, during processing you'll be&lt;br /&gt;able to set relevant properties and be well.&lt;br /&gt;&lt;br /&gt;Using a solid class-oriented architecture will save you big time when you'll be&lt;br /&gt;adding new commands.&lt;br /&gt;&lt;br /&gt;Needless to say, you may want to add your own event handlers, so that your&lt;br /&gt;program can react to specific things happened or going to happen.&lt;br /&gt;&lt;br /&gt;This wasn't a complete program on purpouse, just because I wanted to throw some&lt;br /&gt;hints about paths you may want to explore.&lt;br /&gt;&lt;br /&gt;It's up to you.&lt;br /&gt;&lt;br /&gt;Cheers&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8065769-109355803267717029?l=araimondi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://araimondi.blogspot.com/feeds/109355803267717029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8065769&amp;postID=109355803267717029' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/109355803267717029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/109355803267717029'/><link rel='alternate' type='text/html' href='http://araimondi.blogspot.com/2004/08/components-arent-always-good-thing.html' title='Components aren&apos;t always a good thing'/><author><name>Andrea Raimondi</name><uri>http://www.blogger.com/profile/10898267700146754001</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/_zIuYPsgtJaA/S1HxeHhCqnI/AAAAAAAAAAM/u9qHDapzEBA/S220/Business_Me.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8065769.post-109348044120613744</id><published>2004-08-25T17:24:00.000-07:00</published><updated>2004-08-25T17:34:01.206-07:00</updated><title type='text'>Support Borland Developer Network</title><content type='html'>John Kaster on his &lt;a href="http://blogs.borland.com/johnk/archive/2004/08/12/1065.aspx"&gt;blog&lt;/a&gt; asked us for more cooperation if we want to see BDN&lt;br /&gt;improving. This sounds like a fair request to me: if we contribute stuff, rate articles, etc, that's a very good way to make BDN stats improve to the point it could gather more and more attention.&lt;br /&gt;&lt;br /&gt;I am a long time Borland customer( back to TP6 )  and I can only be happy to see BDN get more funds and be shaken to rebirth in a new life.&lt;br /&gt;&lt;br /&gt;Thus, you're strongly encouraged to rate articles, submit new stuff to CodeCentral and the like:&lt;br /&gt;your voice won't go unheard!&lt;br /&gt;&lt;br /&gt;John, keep up the good work!&lt;br /&gt;&lt;br /&gt;Andrew&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/8065769-109348044120613744?l=araimondi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://araimondi.blogspot.com/feeds/109348044120613744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8065769&amp;postID=109348044120613744' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/109348044120613744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/109348044120613744'/><link rel='alternate' type='text/html' href='http://araimondi.blogspot.com/2004/08/support-borland-developer-network.html' title='Support Borland Developer Network'/><author><name>Andrea Raimondi</name><uri>http://www.blogger.com/profile/10898267700146754001</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/_zIuYPsgtJaA/S1HxeHhCqnI/AAAAAAAAAAM/u9qHDapzEBA/S220/Business_Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8065769.post-109344959541113376</id><published>2004-08-25T08:54:00.000-07:00</published><updated>2004-08-25T09:00:59.840-07:00</updated><title type='text'>Small tip to detect if MS Word is installed on the PC</title><content type='html'>This piece of code was written for an Italian newsgroup, but I feel like sharing it here.&lt;br /&gt;The basic working is simple:&lt;br /&gt;&lt;br /&gt;- It detects if a .doc extension is registered&lt;br /&gt;- If there's any, it goes checking which program is associated with it&lt;br /&gt;- If the program is different from word.exe then it returns false&lt;br /&gt;- Otherwise returns true&lt;br /&gt;&lt;br /&gt;Here is the code:&lt;br /&gt;&lt;br /&gt;&lt;pre wrap=""&gt;procedure TForm1.Button1Click(Sender: TObject);&lt;br /&gt;var Reg : TRegistry;&lt;br /&gt;  KeyToOpen : String;&lt;br /&gt;  Value : String;&lt;br /&gt;begin&lt;br /&gt;Reg := TRegistry.Create;&lt;br /&gt;Reg.RootKey := HKEY_CLASSES_ROOT;&lt;br /&gt;if Reg.OpenKeyReadOnly( '.doc' ) then&lt;br /&gt;begin&lt;br /&gt;  KeyToOpen := Reg.ReadString( '' );&lt;br /&gt;  Reg.CloseKey;&lt;br /&gt;  if Reg.OpenKeyReadOnly( KeyToOpen+'\shell\open\command' ) then&lt;br /&gt;  begin&lt;br /&gt;    Value := Reg.ReadString( '' );&lt;br /&gt;    if Pos( 'word.exe',Value ) &gt; 0 then&lt;br /&gt;      ShowMessage( 'Word is installed' )&lt;br /&gt;    else&lt;br /&gt;      ShowMessage( 'Word isn't installed' );&lt;br /&gt;  end;&lt;br /&gt;end&lt;br /&gt;else begin&lt;br /&gt;       ShowMessage( 'Word isn't installed' );&lt;br /&gt;     end;&lt;br /&gt;end;&lt;/pre&gt; Obviously, you'll have to include the Registry unit in one of your uses clauses,&lt;br /&gt;preferably implementation one( to avoid unnecessary noise in the interface part )&lt;br /&gt;&lt;br /&gt;Cheers&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8065769-109344959541113376?l=araimondi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://araimondi.blogspot.com/feeds/109344959541113376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8065769&amp;postID=109344959541113376' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/109344959541113376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/109344959541113376'/><link rel='alternate' type='text/html' href='http://araimondi.blogspot.com/2004/08/small-tip-to-detect-if-ms-word-is.html' title='Small tip to detect if MS Word is installed on the PC'/><author><name>Andrea Raimondi</name><uri>http://www.blogger.com/profile/10898267700146754001</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/_zIuYPsgtJaA/S1HxeHhCqnI/AAAAAAAAAAM/u9qHDapzEBA/S220/Business_Me.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8065769.post-109343075395922409</id><published>2004-08-25T02:57:00.000-07:00</published><updated>2004-08-25T03:45:53.960-07:00</updated><title type='text'>Why you shouldn't be using MSXML parser</title><content type='html'>I already went through this topic in the Borland Forums, but I thought I would&lt;br /&gt;replicate my feelings again on this topic.&lt;br /&gt;&lt;br /&gt;The very first good reason to avoid it is that it's not native.&lt;br /&gt;While this may not seem a compelling reason at a first sight, just think it means&lt;br /&gt;that you'll have to either ship MSXML with your program, or let the users download it,&lt;br /&gt;neither of which seems appealing to me, as long as you have several native ones which&lt;br /&gt;will compile straight into your exe.&lt;br /&gt;&lt;br /&gt;Another good reason is compatibility.  What is it going to happen if Microsoft messes it up&lt;br /&gt;changing the interfaces? Wouldn't be the first time, wouldn't supposedly be the last one.&lt;br /&gt;&lt;br /&gt;There's also another extremely valuable reason: what happens if some day an exploit gets&lt;br /&gt;found which will allow an attacker to make something to your PC?&lt;br /&gt;MS reputation in regard to exploits isn't brilliant to say the least and this is a true&lt;br /&gt;concern for me.&lt;br /&gt;&lt;br /&gt;If you thought I was finished... well you were wrong  :-)&lt;br /&gt;&lt;br /&gt;MSXML behaves disaccording to the standard sometimes, allowing malformed XML&lt;br /&gt;files to load correctly. Yes, I'm not joking. This happens mainly with charachters out of&lt;br /&gt;standard( there're quite a few of them which aren't defined )  and that MSXML will&lt;br /&gt;accept silently.&lt;br /&gt;To get an idea of what I'm talking about, have a look at &lt;a href="http://groups.google.com/groups?hl=en&amp;lr=&amp;amp;ie=UTF-8&amp;threadm=40f29a8e%40newsgroups.borland.com&amp;amp;rnum=10&amp;prev=/groups%3Fq%3D%2522entities%2522%2Bgroup:borland.public.delphi.xml%26hl%3Den%26lr%3D%26ie%3DUTF-8%26group%3Dborland.public.delphi.xml%26selm%3D40f29a8e%2540newsgroups.borland.com%26rnum%3D10"&gt;this.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Another issue: cross platform development. If you use MSXML alone you may&lt;br /&gt;have a really hard time making a Linux version out of it. The issue can be&lt;br /&gt;greatly mitigated the exact moment you start using TXMLDocument component tho.&lt;br /&gt;&lt;br /&gt;Nope, I'm not finished yet, there's some more things to say :-)&lt;br /&gt;&lt;br /&gt;With the advent of dotNET , COM will get discarded, and using a COM based parser&lt;br /&gt;doesn't look the best choice as to now.&lt;br /&gt;&lt;br /&gt;Ok, &lt;span style="font-weight: bold;"&gt;now&lt;/span&gt; I have finished :-)&lt;br /&gt;&lt;br /&gt;Cheers&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/8065769-109343075395922409?l=araimondi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://araimondi.blogspot.com/feeds/109343075395922409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8065769&amp;postID=109343075395922409' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/109343075395922409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/109343075395922409'/><link rel='alternate' type='text/html' href='http://araimondi.blogspot.com/2004/08/why-you-shouldnt-be-using-msxml-parser.html' title='Why you shouldn&apos;t be using MSXML parser'/><author><name>Andrea Raimondi</name><uri>http://www.blogger.com/profile/10898267700146754001</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/_zIuYPsgtJaA/S1HxeHhCqnI/AAAAAAAAAAM/u9qHDapzEBA/S220/Business_Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8065769.post-109342781525411245</id><published>2004-08-25T00:11:00.000-07:00</published><updated>2004-08-25T02:56:55.253-07:00</updated><title type='text'>Indy, ICS or Synapse?</title><content type='html'>This is a common question hanging around the various Delphi groups in the world.&lt;br /&gt;&lt;br /&gt;I don't think to have the definitive answer, but I just want to point out a few things about&lt;br /&gt;them: try using TIdHTTP to download files subject to redirection. You'll see that it ain't that&lt;br /&gt;easy.&lt;br /&gt;&lt;br /&gt;ICS, instead, does the job extremely well and reliably.&lt;br /&gt;&lt;br /&gt;Though, Indy is a full blown component set and that's obvious that the larger a project&lt;br /&gt;grows, the higher is the chance to find something not really working as expected.&lt;br /&gt;&lt;br /&gt;Plus, most of the bugs you can find in Indy are likely to be there for slightly "exotic"&lt;br /&gt;situations, that means on plain standard ones it behaves well enough( at least for me ).&lt;br /&gt;&lt;br /&gt;Now, ICS is less "flooded" with protocols/tools/whatalike, so that may be an issue, especially if&lt;br /&gt;someone isn't really into socket programming. I've been told, though, that things are changing.&lt;br /&gt;I have no reasons as to now to beleive this isn't true.&lt;br /&gt;&lt;br /&gt;Synapses is not a set of components, but a set of classes. This has several advantages and&lt;br /&gt;drawbacks. First of all, its footprint is *way* smaller than ICS or Indy. Thus, if this is an&lt;br /&gt;issue, you may very well want to give it a try.&lt;br /&gt;Since it's not component based, adding event handlers isn't exactly a chill, especially if we're&lt;br /&gt;talking of *many* events.&lt;br /&gt;It lacks the richness of Indy and I think its classes are extremely useful particularly under two&lt;br /&gt;circumstances:&lt;br /&gt;&lt;br /&gt;1) RAW  Api programs&lt;br /&gt;2) DLLs&lt;br /&gt;&lt;br /&gt;In the above scenarios, I think Synapses is close to unbeatable.&lt;br /&gt;&lt;br /&gt;Now, what to choose? It really depends on you, I guess.&lt;br /&gt;&lt;br /&gt;I mostly use Indy, but I'll be posting on Synapses as soon as I'll have some time to&lt;br /&gt;delve through it thoroughlly and have a couple of projects done with it.&lt;br /&gt;&lt;br /&gt;Thus, I'll keep you posted on this.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8065769-109342781525411245?l=araimondi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://araimondi.blogspot.com/feeds/109342781525411245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8065769&amp;postID=109342781525411245' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/109342781525411245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/109342781525411245'/><link rel='alternate' type='text/html' href='http://araimondi.blogspot.com/2004/08/indy-ics-or-synapse.html' title='Indy, ICS or Synapse?'/><author><name>Andrea Raimondi</name><uri>http://www.blogger.com/profile/10898267700146754001</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/_zIuYPsgtJaA/S1HxeHhCqnI/AAAAAAAAAAM/u9qHDapzEBA/S220/Business_Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8065769.post-109339548123237317</id><published>2004-08-24T15:36:00.000-07:00</published><updated>2004-08-24T17:58:01.233-07:00</updated><title type='text'>Borland, win32, dotNET and Delphi</title><content type='html'>Let's take a few steps back and have kind of a bigger picture down hands.&lt;br /&gt;&lt;br /&gt;During last years, Borland has gone through several turn-arounds.&lt;br /&gt;First was born Kylix and then D7 and eventually D8.  Meanwhile, a few Borlanders went&lt;br /&gt;over to Microsoft. While it surely was a deal of a lost to let them go for Borland, yet this&lt;br /&gt;made a carrieer shift possible for others.  The very first name that comes to mind is&lt;br /&gt;Danny Thorpe, now Chief Scientist.&lt;br /&gt;&lt;br /&gt;There's been quite of a movement lately in the Delphi community, since a noticeable&lt;br /&gt;slice of customers showed their disappointment for what D8 didn't deliver.&lt;br /&gt;&lt;br /&gt;Not only that, but some of them also perceived the new IDE as slow( which hasn't &lt;span style="font-weight: bold;"&gt;ever&lt;/span&gt;&lt;br /&gt;been the case before, even with a lot of components installed ).&lt;br /&gt;&lt;br /&gt;Right in these days, there's been alot of noise from Delphians about what Borland&lt;br /&gt;should do to get back the slice of developers who have migrated or are migrating to&lt;br /&gt;Visual Studio back.&lt;br /&gt;&lt;br /&gt;Imho, the problem doesn't really is in what Borland should do, but what it &lt;span style="font-weight: bold;"&gt;can&lt;/span&gt; actually do to&lt;br /&gt;improve the situation.  It surely can't( though it's been proposed ) open source some of its&lt;br /&gt;products due to the eventual loss of IP.&lt;br /&gt;&lt;br /&gt;It can't even give out Delphi for free, or change its internal roadmap to satisfy a few developers.&lt;br /&gt;&lt;br /&gt;Surely, Borland can show commitment to its developers and do it in several ways:&lt;br /&gt;&lt;br /&gt;1) Give us a knockout D9( which &lt;span style="font-weight: bold;"&gt;should&lt;/span&gt; include Kylix 3 ) showing Win32 isn't a dead end for them. Anybody presumably has a very different and subjective view about what a knockout D9 should be. I'll expand on this later.&lt;br /&gt;&lt;br /&gt;2)  Send out more frequent updates - this can be done relatively cheap by setting up&lt;br /&gt;      public betas which can be downloaded and installed at clients' PCs.&lt;br /&gt;&lt;br /&gt;3)  Involving us with more programming contests, more challenges and/or by providing&lt;br /&gt;      superior services of some kind. These should be included in Delphi price for, say, one&lt;br /&gt;      month or two and then renewable through a subscription fee.&lt;br /&gt;&lt;br /&gt;4)  Funding BDN more aggressively and making Delphi help files more accurate and&lt;br /&gt;      much better worded.&lt;br /&gt;&lt;br /&gt;5)  Organize more chats with the Delphi R&amp;D Team, so that they can get direct feedback from&lt;br /&gt;      users.&lt;br /&gt;&lt;br /&gt;6) Improve QualityCentral&lt;br /&gt;&lt;br /&gt;7)  Allow single developers to submit components/software for inclusion in the Companion CD.&lt;br /&gt;      There could also be a "voting" system for this, so that BTPs get included automatically,&lt;br /&gt;       while single developers would need to get votes to be included.&lt;br /&gt;&lt;br /&gt;8) Allow for public surveys, enable a few of them at once, and make the results&lt;br /&gt;     available for the community.&lt;br /&gt;&lt;br /&gt;These were just a few offhand ideas that could help in making things better for us.&lt;br /&gt;&lt;br /&gt;As to the aforementioned "knockout D9", this is my whish list:&lt;br /&gt;&lt;br /&gt;01)  Include my CDS Creator as a design time tool( &lt;g&gt;, ok this isn't compelling )&lt;br /&gt;02)  Stabilizing and &lt;span style="font-weight: bold;"&gt;documenting&lt;/span&gt; the OpenTools API&lt;br /&gt;03) Providing a real "make" tool, with possibility to generate HTML documentation on the&lt;br /&gt;        fly( this would later allow for easier integration into CHM help files or whatever is the&lt;br /&gt;        hype at the moment ) even at the build time.&lt;br /&gt;04)  Include a menu item to access Borland Forums and easily publish content on BDN&lt;br /&gt;         ( which actually is a quite long-taking deal )&lt;br /&gt;05)  Restructure dataset classes to fully support interfaces&lt;br /&gt;06)  Enhance support for DLLs/Packages to be switched from one to another easily&lt;br /&gt;07)  Enhance support for forms, so that they can be made persistent in different&lt;br /&gt;         formats than DFM( which can still remain the preferred format for design&lt;br /&gt;         time stuff )&lt;br /&gt;08)  Enhance the new component wizard( didn't change since D3 I guess )&lt;br /&gt;09)  Add an item in the Help menu to detect actual Delphi version and listing all the&lt;br /&gt;         installed updates( it could be shown in a memo box so it can be cut&amp;paste around )&lt;br /&gt;10)   Improve to-do lists( you can definitely do better than that, come on... )&lt;br /&gt;11)   Quality Central client in the Tools menu&lt;br /&gt;12)   XSLT expression builder( would help alot )&lt;br /&gt;13)   Fix the &lt;span style="font-weight: bold;"&gt;damned&lt;/span&gt; library path issue&lt;br /&gt;14)   Add a CodeCentral menu to manage your submissions( even with a very basic VCS to&lt;br /&gt;         keep track of changes in them )&lt;br /&gt;15)   Enhance WebBroker( how about the one webmodule issue? )&lt;br /&gt;16)   Make WebSnap use easier&lt;br /&gt;17)   Add a few classes to ease use of Design Patterns in Delphi( Singleton, MVP, MVC, etc )&lt;br /&gt;&lt;br /&gt;Yes, I know my whishlist is huge :-)&lt;br /&gt;&lt;br /&gt;You may be wondering why I didn't mention dotNET stuff in my whish list.&lt;br /&gt;That's because I think that dotNET isn't just about at the development stage&lt;br /&gt;"they" would like us to see it at.&lt;br /&gt;&lt;br /&gt;For example: did you know that dotNET applications get JIT-ted everytime they're&lt;br /&gt;started? Yes, every time they're started. So - say - if I have to run an application&lt;br /&gt;that has a hell lot of plug-ins, each time I do it it'll be JIT-ted.&lt;br /&gt;Another thing: did you know that each time an assembly gets loaded, it's not&lt;br /&gt;shared with the other instances running the same assembly version?&lt;br /&gt;Right, if you have - for any reason - to start two applications which share an&lt;br /&gt;assembly, you'll have TWO copies of it in memory. At least, that's what I've been&lt;br /&gt;understanding after a talk with some Italian MVPs.&lt;br /&gt;&lt;br /&gt;Here is the big question: Is dotNET worthwhile?&lt;br /&gt;&lt;br /&gt;The answer may seem a boolean one( yes/no ) but in fact we refer to "dotNET"&lt;br /&gt;while we should be addressing each and every different aspect of it on its own.&lt;br /&gt;That's because dotNET is an extremely complex platform, made up of different&lt;br /&gt;frameworks and concepts behind them.&lt;br /&gt;&lt;br /&gt;I've been playing with C# a bit now, and I can say I don't really like it too much.&lt;br /&gt;Resembles too much C++ syntax( which isn't good &lt;g&gt; ) and it's always like you're&lt;br /&gt;going to use printf again.&lt;br /&gt;&lt;br /&gt;My main real problem with dotNET is that( as most times ) MS behaves in opposite&lt;br /&gt;directions: on one side, it standardizes C# and alot of dotNET concepts through&lt;br /&gt;ECMA, on the other MS keeps filing patents of any kind and then, here you are, it&lt;br /&gt;encourages the use of OpenSource stuff regarding dotNET.&lt;br /&gt;&lt;br /&gt;I don't know you, but I for one would like to be able at any time to say what's&lt;br /&gt;going on and not be surprised the moment later with a contradictory move.&lt;br /&gt;&lt;br /&gt;It always seems the pacts with MS are never clear, and this sheds a dark light on&lt;br /&gt;every "good thing" coming from that side and that's one of my main reasons( a part from&lt;br /&gt;being a passionate Delphi developer ) to not go for the Visual Studio route.&lt;br /&gt;&lt;br /&gt;I''m not going to scrutinize dotNET in detail here, mainly because these are my&lt;br /&gt;impressions after a very short time playing with it.&lt;br /&gt;&lt;br /&gt;Last, a couple of considerations about D8: Borland had basically no choice other than&lt;br /&gt;letting it out soon, whatever the bugs where. After all, we all know the "even release"&lt;br /&gt;problem since TP days don't we?&lt;br /&gt;&lt;br /&gt;Though now, it's time for "when it's ready" answer back. We want &lt;span style="font-weight: bold;"&gt;our&lt;/span&gt; Borland back.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;Andrew&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8065769-109339548123237317?l=araimondi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://araimondi.blogspot.com/feeds/109339548123237317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8065769&amp;postID=109339548123237317' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/109339548123237317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/109339548123237317'/><link rel='alternate' type='text/html' href='http://araimondi.blogspot.com/2004/08/borland-win32-dotnet-and-delphi.html' title='Borland, win32, dotNET and Delphi'/><author><name>Andrea Raimondi</name><uri>http://www.blogger.com/profile/10898267700146754001</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/_zIuYPsgtJaA/S1HxeHhCqnI/AAAAAAAAAAM/u9qHDapzEBA/S220/Business_Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8065769.post-109338495992741276</id><published>2004-08-24T14:57:00.000-07:00</published><updated>2004-08-24T15:15:30.546-07:00</updated><title type='text'>First Post</title><content type='html'>Hello!&lt;br /&gt;&lt;br /&gt;Finally, here I am blogging :-)&lt;br /&gt;&lt;br /&gt;Ok, I'm a bit unsure about wether I should be doing this, anyway here I am ;-)&lt;br /&gt;&lt;br /&gt;Er... well I guess the best thing is to introduce myself: I'm a 27 yo Italian, Delphi programmer and now exploring the dotNET side.&lt;br /&gt;&lt;br /&gt;What will you see here? Whatever passes through my brain and I feel like sharing.&lt;br /&gt;&lt;br /&gt;Why would you want to read my blog? I don't know, but if you do and post comments I&lt;br /&gt;definitely don't mind :-)&lt;br /&gt;&lt;br /&gt;See you on this page, and hope you enjoy it!&lt;br /&gt;&lt;br /&gt;Andrew&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8065769-109338495992741276?l=araimondi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://araimondi.blogspot.com/feeds/109338495992741276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8065769&amp;postID=109338495992741276' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/109338495992741276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8065769/posts/default/109338495992741276'/><link rel='alternate' type='text/html' href='http://araimondi.blogspot.com/2004/08/first-post.html' title='First Post'/><author><name>Andrea Raimondi</name><uri>http://www.blogger.com/profile/10898267700146754001</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/_zIuYPsgtJaA/S1HxeHhCqnI/AAAAAAAAAAM/u9qHDapzEBA/S220/Business_Me.jpg'/></author><thr:total>0</thr:total></entry></feed>
