<?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-4434108347727659251</id><updated>2012-01-29T19:59:31.867+01:00</updated><category term='mobile'/><category term='teamwork'/><category term='flash'/><category term='funny'/><category term='3d'/><category term='web'/><category term='bug'/><category term='localization'/><category term='storage'/><category term='privacy'/><category term='algorithms'/><category term='linkedin'/><category term='versioncontrol'/><category term='firebird'/><category term='phone'/><category term='native code'/><category term='presentation'/><category term='chrome'/><category term='outsourcing'/><category term='delphi'/><category term='win32'/><category term='jimmckeeth'/><category term='poppendieck'/><category term='turbopower'/><category term='psychology'/><category term='iphone'/><category term='qc'/><category term='denmark'/><category term='eureka'/><category term='ituniversity'/><category term='.net'/><category term='character set'/><category term='unicode'/><category term='performance'/><category term='sections'/><category term='dotnet'/><category term='russian'/><category term='garbagecollection'/><category term='latin1'/><category term='closures'/><category term='units'/><category term='buttons'/><category term='business'/><category term='workshop'/><category term='scalability'/><category term='java'/><category term='refactoring'/><category term='vmware'/><category term='security'/><category term='teddy'/><category term='guid'/><category term='economy'/><category term='graphics'/><category term='memory'/><category term='cloud'/><category term='bash'/><category term='sylk'/><category term='ideas'/><category term='networking'/><category term='dxgettext'/><category term='embarcadero'/><category term='style'/><category term='isp'/><category term='editor'/><category term='android'/><category term='nt4'/><category term='html'/><category term='dapug'/><category term='innovation'/><category term='saas'/><category term='power'/><category term='dsl'/><category term='marketing'/><category term='statistics'/><category term='specifications'/><category term='vista'/><category term='google'/><category term='sandbox'/><category term='yahoo'/><category term='education'/><category term='delphiprism'/><category term='infoworld'/><category term='menuitems'/><category term='javascript'/><category term='reversi'/><category term='tdc'/><category term='apple'/><category term='nohau'/><category term='userinterface'/><category term='benchmark'/><category term='environment'/><category term='conference'/><category term='latency'/><category term='gorm'/><category term='browsers'/><category term='floating point'/><category term='interface'/><category term='comport'/><category term='spreadsheet'/><category term='transactions'/><category term='nokia'/><category term='agile'/><category term='uptime'/><category term='modelling'/><category term='maintenance'/><category term='windows'/><category term='touch typing'/><category term='crossplatform'/><category term='coderage'/><category term='ibx'/><category term='productivity'/><category term='wave'/><category term='comments'/><category term='usability'/><category term='mbti'/><category term='database'/><category term='linux'/><category term='estimating'/><category term='lean'/><category term='platforms'/><category term='filenames'/><category term='office'/><category term='iso-8859-1'/><category term='tstringlist'/><category term='php'/><category term='cookies'/><category term='numa'/><category term='sorting'/><category term='multithreading'/><category term='bear'/><category term='gtk'/><category term='implementation'/><category term='games'/><category term='oop'/><category term='communication'/><category term='tip'/><category term='time'/><category term='C#'/><category term='win64'/><category term='source'/><category term='wikipedia'/><category term='principle'/><category term='energy'/><category term='scrum'/><category term='joel'/><category term='kylix'/><category term='languages'/><category term='andershejlsberg'/><category term='microsoft'/><category term='gnu gettext'/><category term='tiobe'/><category term='qt'/><category term='mono'/><category term='copenhagen'/><category term='bloat'/><category term='knol'/><category term='password'/><category term='malmø'/><category term='management'/><title type='text'>Compas Pascal</title><subtitle type='html'>An experienced software developer from Denmark blogs about software development</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default?start-index=101&amp;max-results=100'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>156</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-648178551564573239</id><published>2011-12-26T18:43:00.003+01:00</published><updated>2011-12-26T18:43:46.826+01:00</updated><title type='text'>Process management for software development companies</title><summary type='text'>Our bugtracker system has grown far beyond bugtracking, and that is the time where you need to realize, that bugtracking is not much different from managing a construction site, a catering company or many other kinds of businesses. It's all about automating the process, and this requires a generic process-automation tool, and not a bugtracker. So, why do people still get and install bugtracking </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/648178551564573239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=648178551564573239' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/648178551564573239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/648178551564573239'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2011/12/process-management-for-software.html' title='Process management for software development companies'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-8004034143028383595</id><published>2011-07-23T12:12:00.001+02:00</published><updated>2011-07-23T12:26:14.240+02:00</updated><title type='text'>Google+ is a different approach</title><summary type='text'>Many try to compare Facebook with Google+, and often they conclude that Facebook har more friends, so they will not switch to Google+.

However, Google+ should not be analyzed as a Facebook killer. It isn't. Facebook has a huge head start, and even though Google+ has grown extremely fast, most current users were already gmail users. For those that do not have Google accounts, Google+ is not as </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/8004034143028383595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=8004034143028383595' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/8004034143028383595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/8004034143028383595'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2011/07/google-is-different-approach.html' title='Google+ is a different approach'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-2494926845098058437</id><published>2011-06-06T08:32:00.007+02:00</published><updated>2011-06-06T08:38:11.528+02:00</updated><title type='text'>Is WPF+Silverlight dead on Windows?</title><summary type='text'>Does anybody still remember WinForms? If you think WinForms is old outdated technology, and WPF is the new and cozy, you might want to go on Youtube and look at the Windows 8 previews. Microsoft was dead serious when they embraced HTML5 and JavaScript last year, HTML5 and JavaScript seems to be the new toolkit for writing GUIs for Windows. In case that you wonder how JavaScript relates to other </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/2494926845098058437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=2494926845098058437' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/2494926845098058437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/2494926845098058437'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2011/06/is-wpfsilverlight-dead-on-windows.html' title='Is WPF+Silverlight dead on Windows?'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-8405882429435260797</id><published>2011-03-31T07:27:00.001+02:00</published><updated>2011-03-31T07:30:39.293+02:00</updated><title type='text'>OOP Spaghetti code explained</title><summary type='text'>The term "spaghetti code" is usually attributed to pre-OOP code, but there is a lot of OOP code out there that is definitely entangled and a mess. I have seen quite some of it in my carreer, and this kind of spaghetti is characterized by its dependencies.

An class is nothing else than a data structure with associated code, mainly written in a way that puts both into the same source code file. </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/8405882429435260797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=8405882429435260797' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/8405882429435260797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/8405882429435260797'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2011/03/oop-spaghetti-code-explained.html' title='OOP Spaghetti code explained'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-6336279011702685090</id><published>2011-03-30T08:55:00.002+02:00</published><updated>2011-03-30T08:58:21.929+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='innovation'/><category scheme='http://www.blogger.com/atom/ns#' term='dotnet'/><title type='text'>Why startups don't use .net</title><summary type='text'>There have been several articles over the last couple of weeks about the usefulness of .net for startups. I will mention three:

* Did the Microsoft stack kill MySpace?
* Why we don't hire .net programmers
* Why Microsoft could kill your startup career

Even though our company is now several years old, our HQ is still located in an office facility that is mainly for startups. Well over the time </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/6336279011702685090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=6336279011702685090' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/6336279011702685090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/6336279011702685090'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2011/03/why-startups-dont-use-net.html' title='Why startups don&apos;t use .net'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-5716132226693705235</id><published>2011-03-04T20:22:00.000+01:00</published><updated>2011-03-04T20:22:58.870+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Apple leaves the PC era</title><summary type='text'>In the recent iPad 2 announcement by Apple, Steve Jobs revealed, that Apple now earns most money on post-PC products like iPad, iPod, iPhone, Apple TV etc. This tendency does not need to continue for a long time, before the Mac computers are reduced to merely strategic products for the company.</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/5716132226693705235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=5716132226693705235' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/5716132226693705235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/5716132226693705235'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2011/03/apple-leaves-pc-era.html' title='Apple leaves the PC era'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-2543802327723845295</id><published>2011-02-12T14:32:00.001+01:00</published><updated>2011-02-12T17:43:39.380+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nokia'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Why Microsoft and Nokia have a chance</title><summary type='text'>Many iPhone and Android fans don't believe that Nokia and Microsoft have much chance to succeed. While everybody agrees that they wouldn't have a chance without good partners, few seem to agree that they can do much together. The most frequent explanation is that their level of innovation is too low, and their R&amp;D doesn't really work.

Most people, however, don't care about the phone producer's </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/2543802327723845295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=2543802327723845295' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/2543802327723845295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/2543802327723845295'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2011/02/why-microsoft-and-nokia-have-chance.html' title='Why Microsoft and Nokia have a chance'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-174519690143153129</id><published>2010-12-19T11:38:00.001+01:00</published><updated>2010-12-19T11:39:17.761+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='dotnet'/><title type='text'>The future of C#, the bloat explosion, and what happened instead</title><summary type='text'>Looking back on this video with Anders Hejlsberg, about the future of C#, from march 2009, or this blog post about the upcoming bloat explosion, seems quite awkward with the current explosion of iOS and especially Android. There are numerous awkward parts in the video: The focus on objects, the "huge amounts" of memory and the statement that multithreading is the exception.

As readers of this </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/174519690143153129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=174519690143153129' title='20 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/174519690143153129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/174519690143153129'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2010/12/future-of-c-bloat-and-how-it-was-all.html' title='The future of C#, the bloat explosion, and what happened instead'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>20</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-8810545458977250694</id><published>2010-12-10T08:20:00.008+01:00</published><updated>2010-12-10T08:53:19.790+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Android sells better than Windows to consumers</title><summary type='text'>If you combine a few news articles, things get interesting:

http://www.guardian.co.uk/technology/2010/nov/29/apple-ipad-cannibalising-pc-sales

"Gartner forecasts that worldwide PC shipments for 2011 will reach 409m units" = 1.1 million per day. It is fair to expect less than 40% of these sales to be for consumers. This is an 18% growth, meaning that in 2010, we can expect PC sales to reach 138 </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/8810545458977250694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=8810545458977250694' title='24 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/8810545458977250694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/8810545458977250694'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2010/12/android-sells-better-than-windows-to.html' title='Android sells better than Windows to consumers'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>24</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-1668346774031320413</id><published>2010-11-26T19:15:00.000+01:00</published><updated>2010-11-26T19:15:36.730+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gtk'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>GTK+ app interfaces using HTML5</title><summary type='text'>This impressive demo of a web application deserves more publicity. I am quite sure that this is not the last GUI toolkit that interfaces with generic web browsers.</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/1668346774031320413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=1668346774031320413' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/1668346774031320413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/1668346774031320413'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2010/11/gtk-app-interfaces-using-html5.html' title='GTK+ app interfaces using HTML5'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-4608470771733898324</id><published>2010-11-21T21:44:00.002+01:00</published><updated>2010-11-21T21:52:03.740+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>R.I.P Microsoft Windows?</title><summary type='text'>Microsoft is usually very good at presenting new products years ahead of the actual launch - but there continues to be a very remarkable absence of a single strategy for support of Windows applications or Windows as a well integrated desktop.

Android provides many improvements that Windows does not offer as part of the standard platform:

* Easy app discovery and installation (Android Market)
* </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/4608470771733898324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=4608470771733898324' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/4608470771733898324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/4608470771733898324'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2010/11/rip-microsoft-windows.html' title='R.I.P Microsoft Windows?'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-8343432233480721255</id><published>2010-10-03T10:02:00.005+02:00</published><updated>2010-10-03T10:10:43.609+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='tiobe'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='languages'/><category scheme='http://www.blogger.com/atom/ns#' term='dotnet'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>TIOBE index decomposed</title><summary type='text'>This post presents a different way to look at the TIOBE index. Of the top 20 languages, I exclude non-generic languages, like SQL or MATLAB. The next is to group the languages by performance characteristics:

Compiled languages that produce very fast apps:
* Ada
* C
* C++
* Delphi, Pascal
* Objective-C

Garbage-producing languages:
* C#/VB.net
* Google Go
* Java

Languages that produce slow apps:</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/8343432233480721255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=8343432233480721255' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/8343432233480721255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/8343432233480721255'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2010/10/tiobe-index-decomposed.html' title='TIOBE index decomposed'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-2722023557735311710</id><published>2010-07-10T08:50:00.000+02:00</published><updated>2010-07-10T08:50:26.103+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nokia'/><title type='text'>What Nokia must do to stay relevant in mobile</title><summary type='text'>Nokia is losing market share fast, which is being discussed in many places. Nokia's CEO Anssi Vanjoki also expressed his view on this topic.

The number of mistakes, that Nokia currently does, is huge, let's take a few:

* Focus on OS technology instead of customer-centric parameters. As Anssi puts it: "The current phase of MeeGo development is looking awesome."

* Believing that the window of </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/2722023557735311710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=2722023557735311710' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/2722023557735311710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/2722023557735311710'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2010/07/what-nokia-must-do-to-stay-relevant-in.html' title='What Nokia must do to stay relevant in mobile'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-5069101792925232731</id><published>2010-07-02T21:16:00.002+02:00</published><updated>2010-07-02T21:17:31.479+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Apple iPhone 4 signal strength indicator highlights a common problem</title><summary type='text'>It is old knowledge that if progress bars go faster at the end, the user is happy. In other words, if the progress bar is modified so that it doesn't show the perfect progress percentage, you get a better customer satisfaction.

The same principle applies to other indicators, like battery indicators and mobile phone signal strength. Many phones don't seem to lose battery energy until the very </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/5069101792925232731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=5069101792925232731' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/5069101792925232731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/5069101792925232731'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2010/07/apple-iphone-4-signal-strength.html' title='Apple iPhone 4 signal strength indicator highlights a common problem'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-3985527813803190551</id><published>2010-06-17T11:53:00.008+02:00</published><updated>2010-06-18T08:23:27.063+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='algorithms'/><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><title type='text'>Poul-Henning Kamp popularizes algorithm research</title><summary type='text'>"Think you've mastered the art of server performance? Think again." Poul-Henning Kamp recently published this article with the quote, which basically says that a binary-heap tree structure is inefficient and should not be used. Poul-Henning (PHK) has recently spent more of his spare time on blogging and making his views known to the public, and he writes articles that often spark great debates.

</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/3985527813803190551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=3985527813803190551' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3985527813803190551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3985527813803190551'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2010/06/poul-henning-kamp-popularizes-algorithm.html' title='Poul-Henning Kamp popularizes algorithm research'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-3614709041599102479</id><published>2010-05-24T08:46:00.001+02:00</published><updated>2010-05-24T08:48:09.875+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='sandbox'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='native code'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Sandboxed vs. Trust, sandboxing wins</title><summary type='text'>One of the most basic principles on Windows, in order to prevent malware, is that you trust your software provider. There are many trust mechanisms, including driver signing, website signing, remembering whether a file was downloaded or was produced locally etc. The idea is, that if you can trace the origin of the file, you can make the provider liable. If you need to break the trust chain, for </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/3614709041599102479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=3614709041599102479' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3614709041599102479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3614709041599102479'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2010/05/sandboxed-vs-trust-sandboxing-wins.html' title='Sandboxed vs. Trust, sandboxing wins'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-6789674410662596280</id><published>2010-04-24T10:29:00.002+02:00</published><updated>2010-04-26T11:09:38.724+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>How Android beats Windows 7 laptops</title><summary type='text'>Lately, many have started to use their phone for tasks, for which they previously used a PC - including updating online spreadsheets etc. The PC features much better input and output devices (keyboard, mouse, screen), so why use the phone for these tasks? Here is a list of why it makes sense to use an typical Android phone instead of a Windows 7 laptop for many tasks:

* The laptop does not have </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/6789674410662596280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=6789674410662596280' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/6789674410662596280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/6789674410662596280'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2010/04/how-android-beats-windows-7-laptops.html' title='How Android beats Windows 7 laptops'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-2106279304217968569</id><published>2010-04-11T15:20:00.003+02:00</published><updated>2010-04-11T21:48:13.622+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>In defense of the iPhone 4.0 SDK section 3.3.1</title><summary type='text'>There have been many blog posts about the new iPhone 4.0 SDK which do not like section 3.3.1 of the developer license agreement, which says:

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/2106279304217968569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=2106279304217968569' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/2106279304217968569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/2106279304217968569'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2010/04/in-defense-of-iphone-40-sdk-section-331.html' title='In defense of the iPhone 4.0 SDK section 3.3.1'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-4712247991560512880</id><published>2010-04-10T11:53:00.004+02:00</published><updated>2010-04-10T12:02:23.609+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Google Android reviewed by a Delphi developer</title><summary type='text'>With the major part of my background in Delphi, but also some in C, C++, Assembler, Java, C# and others, I threw myself at the Android platform in order to figure out how it works.

The main language is Java, the obvious IDE is Eclipse, and after installing the Android SDK things are well integrated with each other. The fundamental structure is very similar to Delphi - but things have different </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/4712247991560512880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=4712247991560512880' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/4712247991560512880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/4712247991560512880'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2010/04/google-android-reviewed-by-delphi.html' title='Google Android reviewed by a Delphi developer'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-1095557584763149656</id><published>2010-04-03T16:02:00.003+02:00</published><updated>2010-04-03T16:05:55.672+02:00</updated><title type='text'>Bullshit Bingo for programming</title><summary type='text'>A Bullshit Bingo card for software developers:


Remember the rules, you need 5 in a row before you win!</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/1095557584763149656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=1095557584763149656' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/1095557584763149656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/1095557584763149656'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2010/04/bullshit-bingo-for-programming.html' title='Bullshit Bingo for programming'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_memBES1Tpk8/S7dJlspYK6I/AAAAAAAAiKI/lvut6WABN7c/s72-c/BullshitBingoForProgrammers.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-3278922719041239005</id><published>2010-03-24T07:55:00.002+01:00</published><updated>2010-03-24T07:57:41.429+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='usability'/><title type='text'>Nexus One: touch screens do not solve all problems</title><summary type='text'>When I first learned about Android and iPhone, it was fascinating to see, but I didn't leave my old Nokia phones before I saw somebody demonstrate to me, that it was actually possible to operate these phones with one hand. My Nexus One is still mostly handled with one hand, meaning that I don't use multitouch pinch-to-zoom much, even though it is available, instead I use the zoom buttons </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/3278922719041239005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=3278922719041239005' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3278922719041239005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3278922719041239005'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2010/03/nexus-one-touch-screens-do-not-solve.html' title='Nexus One: touch screens do not solve all problems'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-7161621386985090988</id><published>2010-02-17T12:27:00.002+01:00</published><updated>2010-02-17T13:51:50.655+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='marketing'/><title type='text'>Why almost nothing revolutionary comes out of Europe</title><summary type='text'>Recently, I overheard this one: "why is it almost nothing revolutionary comes out of Europe?" This question basically expresses a perception that can be explained.

Most tech companies in Europe don't target the world market - they target one country first, and when they dominate that, they invade the next countries. This is the reason why 1und1.de has a huge market share in Germany, and is </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/7161621386985090988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=7161621386985090988' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7161621386985090988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7161621386985090988'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2010/02/why-almost-nothing-revolutionary-comes.html' title='Why almost nothing revolutionary comes out of Europe'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-570340628897157566</id><published>2010-01-30T10:51:00.001+01:00</published><updated>2010-01-30T10:52:55.917+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='yahoo'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='native code'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Will Apple accept Google NaCl on iPhone, iPod, iPad?</title><summary type='text'>Apple did it again - they released a great product called the iPad. However, the main reasons that people buy these products, is that it is good quality and they do things better than the competitors. However, in order to protect the business model of Apple, and in order to ensure a good overall consumer experience, Apple restricts what applications can run on their devices. Google Voice was not </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/570340628897157566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=570340628897157566' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/570340628897157566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/570340628897157566'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2010/01/will-apple-accept-google-nacl-on-iphone.html' title='Will Apple accept Google NaCl on iPhone, iPod, iPad?'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-521970523972371684</id><published>2010-01-23T12:43:00.003+01:00</published><updated>2010-01-23T19:27:18.278+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vmware'/><title type='text'>VMware converter review</title><summary type='text'>Recently I upgraded to a newer laptop, and considered to virtualize my old laptop, because there are so many settings for software development, that are not easily copied. This includes search paths that depend on the drive configuration, installation of tools (cygwin etc.), and many other things. In order to be 100% productive at all times, I simply need the old laptop to be available until the </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/521970523972371684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=521970523972371684' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/521970523972371684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/521970523972371684'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2010/01/vmware-converter-review.html' title='VMware converter review'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-7179960976210722095</id><published>2010-01-23T11:15:00.003+01:00</published><updated>2010-01-23T12:08:17.171+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='localization'/><title type='text'>ANSI in Delphi is not about the character set ANSI</title><summary type='text'>One of the most frequent misunderstandings that I have seen about the Unicode migration of Delphi, is that many consider the Ansistring of Delphi 2007 and older, and all the Ansi functions in the APIs, to be about the ANSI character set.

If you live in USA or any other country that uses Windows-1252 (aka ANSI) as the default character set, it all fits together: ansistring contains strings using </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/7179960976210722095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=7179960976210722095' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7179960976210722095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7179960976210722095'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2010/01/ansi-in-win32-api-is-not-about.html' title='ANSI in Delphi is not about the character set ANSI'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-3366886611729880320</id><published>2010-01-16T12:20:00.001+01:00</published><updated>2010-01-16T12:24:34.345+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='localization'/><title type='text'>English - the superlanguage</title><summary type='text'>My first programming language (ND80) saved all identifiers by reference in order to save RAM, which was scarce. Using the swap instruction, it was possible to replace any identifier with another, so basically, the entire, programming language could be translated to Danish, my native language. Sounds ridiculous, right? It was. Later, Microsoft did the same: Excel functions were translated to </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/3366886611729880320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=3366886611729880320' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3366886611729880320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3366886611729880320'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2010/01/english-superlanguage.html' title='English - the superlanguage'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_memBES1Tpk8/S1GfUeoo3gI/AAAAAAAAgiA/iL4422-O_yM/s72-c/Husk+fart+kontrol.jpg' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-6201474904903255591</id><published>2009-12-26T10:53:00.009+01:00</published><updated>2009-12-28T12:57:54.543+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><title type='text'>Snake game: when programming isn't compatible with modern theories</title><summary type='text'>I saw a question about how to create a snake game "like on the Nokia mobile phones". The answers differed a lot from each other - but few talked objects (OOP). The general consensus was that the snake should be represented as a double-linked list, linked using pointers.

The first time that I saw the game, was on my brother's computer. He had created the computer himself, based on a Zilog Z80A </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/6201474904903255591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=6201474904903255591' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/6201474904903255591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/6201474904903255591'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/12/snake-game-when-programming-isnt.html' title='Snake game: when programming isn&apos;t compatible with modern theories'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-4722334938035222899</id><published>2009-12-23T14:07:00.000+01:00</published><updated>2009-12-23T14:07:36.174+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='unicode'/><title type='text'>Unicode technical paper from Cary Jensen</title><summary type='text'>Cary Jensen has produced a White Paper about migrating to Delphi 2009, with real stories from real migrations. View it here or download it here. The paper is the result of his call for migration stories, earlier, and a lot of people contributed with examples, including me. Besides being a good paper to read before migrating, it also explains many things that most may not be aware of.</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/4722334938035222899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=4722334938035222899' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/4722334938035222899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/4722334938035222899'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/12/unicode-technical-paper-from-cary.html' title='Unicode technical paper from Cary Jensen'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-1287703794562699641</id><published>2009-12-22T20:15:00.004+01:00</published><updated>2009-12-23T08:01:25.638+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='qt'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='kylix'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='native code'/><title type='text'>Kylix comeback or something better?</title><summary type='text'>Heise.de reports, that the Qt toolkit is currently being ported to Google's Native Client (NaCl). Qt was known as the GUI framework for Kylix on Linux, and once Qt has been ported, it seems like a very easy thing to make Kylix able to compile GUI apps for Google NaCl, providing a development kit that creates GUI apps with native code to run as managed code inside a browser.

Does this make sense?</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/1287703794562699641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=1287703794562699641' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/1287703794562699641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/1287703794562699641'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/12/kylix-comeback-or-something-better.html' title='Kylix comeback or something better?'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-1614048084881353777</id><published>2009-12-18T16:51:00.002+01:00</published><updated>2009-12-28T19:16:31.372+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='education'/><title type='text'>Call for learning about bits and bytes</title><summary type='text'>I still often encounter people with a Master's degree in Computer Science, Information Technology or whatever, who are not used to think bits and bytes. The world of computing is huge, and I fully understand that the universities need to filter and carefully select what topics they should teach their students. However, there is a huge number of topics where knowledge about bit manipulation is </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/1614048084881353777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=1614048084881353777' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/1614048084881353777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/1614048084881353777'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/12/call-to-learn-about-bits-and-bytes.html' title='Call for learning about bits and bytes'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-7638289197274064202</id><published>2009-12-10T11:17:00.001+01:00</published><updated>2009-12-10T11:18:14.278+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><title type='text'>When to use record instead of classes</title><summary type='text'>The original use or the record construct in ObjectPascal was to group different values in a way, that can be used in arrays, parameters etc. Classes have taken over this job, but the record construct is still sometimes important.

For instance:

type
  TTest=
    class
      a,b,c:integer;
    end;

var 
  arrT:array[1..1000000] of TTest;

begin
  for i:=low(arrT) to high(arrT) do begin
    arrT[</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/7638289197274064202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=7638289197274064202' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7638289197274064202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7638289197274064202'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/12/when-to-use-record-instead-of-classes.html' title='When to use record instead of classes'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-1673386418665112308</id><published>2009-12-07T09:17:00.000+01:00</published><updated>2009-12-07T09:17:18.418+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Why there is no app store on Windows</title><summary type='text'>How long does it take to install Microsoft Office? Well, first you have to order it, and then you have to wait for it to arrive by mail, on a physical medium. Ever wondered why there is no app store on Windows?

Steve Ballmer explains it in an article on CNET: "nobody has any trouble getting apps"

I'm obviously nobody, so there must be another reason. Here is my best guess: An app store on </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/1673386418665112308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=1673386418665112308' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/1673386418665112308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/1673386418665112308'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/12/why-there-is-no-app-store-on-windows.html' title='Why there is no app store on Windows'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-6441508982984428948</id><published>2009-11-29T09:45:00.002+01:00</published><updated>2009-11-29T09:48:59.564+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='browsers'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>MSIE market share below 13%, the problem of not upgrading</title><summary type='text'>MSIE is still by far the biggest browser on a world scale, but segmentation adds another picture:


* In some market segments, MSIE 6.0 is still used on more than 80% of all PCs.
* Some websites have MSIE below 50% (like W3Schools or some Delphi developer sites).


Users seem to upgrade their browsers very differently. MSIE is still used in very old versions on many PCs, Firefox users are much </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/6441508982984428948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=6441508982984428948' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/6441508982984428948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/6441508982984428948'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/11/msie-market-share-below-14-problem-of.html' title='MSIE market share below 13%, the problem of not upgrading'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-3487919375898956689</id><published>2009-11-27T18:27:00.006+01:00</published><updated>2009-11-27T20:27:21.903+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='platforms'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='wave'/><title type='text'>Google Wave is a software development platform</title><summary type='text'>Google Wave has been reviewed in multiple places, but mostly by looking at the usefulness of the GUI tool that Google has made available. Instead, this post will focus on it's ability to compete with alternatives.

Google originally launched it as "e-mail as it would have been if we designed it today". However, it actually does not compete well with e-mail, for several reasons:

* There is </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/3487919375898956689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=3487919375898956689' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3487919375898956689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3487919375898956689'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/11/google-wave-is-platform.html' title='Google Wave is a software development platform'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-8715113657934272287</id><published>2009-11-21T12:42:00.001+01:00</published><updated>2009-11-21T12:45:56.040+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='usability'/><title type='text'>The power of app stores and usability</title><summary type='text'>I use Vopium to reduce my phone bill when making international calls and calling back home from other countries. Very nice product, huge savings, no subscription fee, works seamlessly when making calls, and easy to install from their homepage. However, the obvious is to install such tools from the app store, right? So when I had to reinstall it this week and went for the Nokia App store, it was </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/8715113657934272287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=8715113657934272287' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/8715113657934272287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/8715113657934272287'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/11/power-of-app-stores-and-usability.html' title='The power of app stores and usability'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-8384997404068596650</id><published>2009-11-16T13:10:00.005+01:00</published><updated>2009-11-16T13:15:41.615+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cookies'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><title type='text'>Std. cookie use outlawed in EU</title><summary type='text'>EU has investigated internet technology, and discovered that http-cookies are an invasion of privacy. Therefore, a new directive has been made, that forces consent before using cookies. To many programmers, this seems idiotic - cookies have worked well for 15 years, and continue to do so, and many businesses require them to be able to track users around. Even more, cookie permissions could easily</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/8384997404068596650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=8384997404068596650' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/8384997404068596650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/8384997404068596650'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/11/cookie-use-outlawed-in-eu.html' title='Std. cookie use outlawed in EU'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-7182054285081032253</id><published>2009-11-01T09:17:00.001+01:00</published><updated>2009-11-01T09:17:47.311+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dsl'/><title type='text'>The case for Domain Specific Languages</title><summary type='text'>Instead of wondering why Domain Specific Languages (DSLs) make sense, let's try to look at the number of people doing programming. According to various sources, there could be about:

* 9 million programmers in the world
* 0.5 million professional programmers in USA+Canada
* 25,000 self-employed programmers in USA+Canada

I live in Denmark, and can relate to these numbers - the situation probably</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/7182054285081032253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=7182054285081032253' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7182054285081032253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7182054285081032253'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/11/case-for-domain-specific-languages.html' title='The case for Domain Specific Languages'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-2030618949076337110</id><published>2009-10-25T08:12:00.001+01:00</published><updated>2009-10-25T08:15:02.782+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='time'/><title type='text'>How to do daylight saving time properly</title><summary type='text'>EU switched to standard time this morning, and as always, this causes trouble. Clocks have to be adjusted, computers can get confused in their scheduling, and IT systems failed during the night. My harddisk TV recorder did not have any TV program after 02:59 but had a proper error message for each TV channel. Here is how you can create software that does not have these kinds of problems:

The </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/2030618949076337110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=2030618949076337110' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/2030618949076337110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/2030618949076337110'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/10/how-to-do-daylight-saving-time-properly.html' title='How to do daylight saving time properly'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-3894150347695769941</id><published>2009-10-19T10:05:00.002+02:00</published><updated>2009-10-19T10:06:59.465+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='3d'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='native code'/><title type='text'>Google NaCl roadmap</title><summary type='text'>Just in case you haven't studied Google's "native code safer than JavaScript" project, based on this video from Google, here is a very short summary of Google Native Client (NaCl).

Current status is:

* Still under review, but basically works
* x86 32-bit machine code is supported
* Non-accelerated graphics
* Sandboxed
* Delivers full native code performance in your website code. A video decoder</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/3894150347695769941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=3894150347695769941' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3894150347695769941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3894150347695769941'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/10/google-nacl-roadmap.html' title='Google NaCl roadmap'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-3343180573450745063</id><published>2009-10-08T11:09:00.000+02:00</published><updated>2009-10-08T11:09:19.265+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multithreading'/><title type='text'>Parallel programming requires multiple techniques, not just one</title><summary type='text'>There seems to be a huge search out there for the holy grail of parallelism. Some want functional programming to be the solution, others think about other solutions. However, the scale of the problem is often ignored: Parallism is introduced on a huge number of levels, each with different solutions:

On the bit level, we can handle multiple bits at the same time. A CPU can handle 8 bits, 16 bits,</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/3343180573450745063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=3343180573450745063' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3343180573450745063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3343180573450745063'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/10/parallel-programming-requires-multiple.html' title='Parallel programming requires multiple techniques, not just one'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-1694597337072662473</id><published>2009-10-07T08:30:00.002+02:00</published><updated>2009-10-07T08:31:44.448+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='usability'/><category scheme='http://www.blogger.com/atom/ns#' term='3d'/><title type='text'>Gaming industry has the next generation GUIs</title><summary type='text'>First, for reference, this blog post is about non-game applications.

Usability and GUI design have been hot topics since the dawn of computers. The trends have always been towards increased usability and productivity. Since the world of IT is much more complex than what can be described using graphics from outside IT, GUI design has introduced a lot of mechanisms and visualizations that you need</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/1694597337072662473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=1694597337072662473' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/1694597337072662473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/1694597337072662473'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/10/gaming-industry-has-next-generation.html' title='Gaming industry has the next generation GUIs'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-7398173974162476945</id><published>2009-09-24T10:46:00.002+02:00</published><updated>2009-09-24T10:59:57.792+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Chrome platform: Now also on MSIE</title><summary type='text'>Google is continuing its quest to make Google Chrome the next platform for application development.The new invention is, that if you want to target the Google Chrome platform with your application, but your users don't want to use Google Chrome instead of Microsoft Internet Explorer (MSIE), you can ask the users to install Google Chrome Frame. It will not affect how MSIE works with other sites, </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/7398173974162476945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=7398173974162476945' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7398173974162476945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7398173974162476945'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/09/chrome-platform-now-also-on-msie.html' title='Chrome platform: Now also on MSIE'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-557595111634061235</id><published>2009-09-22T12:24:00.003+02:00</published><updated>2009-09-22T12:27:18.899+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Cloud computing deficiencies</title><summary type='text'>If you are considering the use of cloud systems, you may want to read this article about Google App Engine. He may be right or not, but the main problem with Cloud computing is predictability and determinism.</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/557595111634061235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=557595111634061235' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/557595111634061235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/557595111634061235'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/09/cloud-computing-deficiencies.html' title='Cloud computing deficiencies'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-3901160064969053796</id><published>2009-09-16T20:57:00.006+02:00</published><updated>2009-09-16T21:24:25.809+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dapug'/><category scheme='http://www.blogger.com/atom/ns#' term='delphiprism'/><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='jimmckeeth'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Delphi in a long term perspective</title><summary type='text'>I've just come back from the Copenhagen conference with Jim McKeeth. The main topic was Delphi Prism, but also a bit of Delphi 2010. It was a very nice event, Jim presented the topic well, David I from Embarcadero and Marc Hoffman from Remobjects joined online, and the Danish distributor was also present with Ole from Nohau. On top of that, we celebrated 20 year anniversary for the Danish user </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/3901160064969053796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=3901160064969053796' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3901160064969053796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3901160064969053796'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/09/delphi-in-long-term-perspective.html' title='Delphi in a long term perspective'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-2053391347345634481</id><published>2009-09-16T09:50:00.001+02:00</published><updated>2009-09-16T09:51:30.508+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delphiprism'/><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><title type='text'>Innovation in programming languages mess up the syntax</title><summary type='text'>The amount of new features that go into programming languages these days, is extraordinary. There is no doubt, that the demand for multi-core programming requires innovation, but the widespread use of garbage collection also introduces new possibilities, like LINQ. Few programming tools introduce new methods at the same pace as Delphi Prism. We may see a kind of survival of the fittest amongst </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/2053391347345634481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=2053391347345634481' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/2053391347345634481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/2053391347345634481'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/09/innovation-in-programming-languages.html' title='Innovation in programming languages mess up the syntax'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-7075595075766455895</id><published>2009-08-31T10:34:00.003+02:00</published><updated>2009-08-31T10:41:08.269+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conference'/><category scheme='http://www.blogger.com/atom/ns#' term='jimmckeeth'/><category scheme='http://www.blogger.com/atom/ns#' term='copenhagen'/><title type='text'>Last callout for conference in Copenhagen with Jim McKeeth</title><summary type='text'>The conference introduces experienced Delphi developers to Delphi Prism and a number of .NET technologies. Conference agenda here and registration here (or write to jsj@sejer.dk). Price is 4700 kr., (which is about €631 or $900), including a night's stay at the very nice hotel.</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/7075595075766455895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=7075595075766455895' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7075595075766455895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7075595075766455895'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/08/last-callout-for-conference-in.html' title='Last callout for conference in Copenhagen with Jim McKeeth'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-7729982554301968731</id><published>2009-08-26T06:43:00.003+02:00</published><updated>2009-08-26T06:54:41.248+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firebird'/><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='ibx'/><title type='text'>Why to use Firebird+IBX</title><summary type='text'>Jeff Overcash originally made it clear, that IBX doesn't officially support Firebird, and he has no intention to implement it. Many point at IBObjects and now DBExpress for Firebird support, so why use IBX? Here's a reason:IBX supports Interbase 6.0, which is basically equivalent to Firebird 1.0. Firebird 2.1 supports the Firebird 1.0 API by providing a compatible gds32.dll, so Firebird 2.1 also </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/7729982554301968731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=7729982554301968731' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7729982554301968731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7729982554301968731'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/08/why-to-use-firebirdibx.html' title='Why to use Firebird+IBX'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-3369668610550702896</id><published>2009-08-13T07:18:00.007+02:00</published><updated>2009-08-13T08:01:19.659+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='memory'/><title type='text'>No dynamic memory in programming</title><summary type='text'>The biggest benefit of java and .net is garbage collection because it lowers the costs of training of programmers. That's what I heard originally. However, garbage collection also allows some constructs that are not easy otherwise.The alternative? malloc() and similar, of course. You ask the operating system for a piece of memory, and you need to free it afterwards. This is usually handled by </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/3369668610550702896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=3369668610550702896' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3369668610550702896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3369668610550702896'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/08/no-dynamic-memory-in-programming.html' title='No dynamic memory in programming'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-5992114948752659972</id><published>2009-07-27T16:29:00.005+02:00</published><updated>2009-07-27T17:06:03.685+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='crossplatform'/><category scheme='http://www.blogger.com/atom/ns#' term='3d'/><category scheme='http://www.blogger.com/atom/ns#' term='graphics'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>3D full screen game using O3D</title><summary type='text'>I just ran across this cute little 3D game on the internet:http://blog.largeanimal.com/demo/Remember to click the full-screen button in the bottom left, for a full experience. You will need the O3D plugin which will be included in Google Chrome, soon.The game seems to be entirely made using JavaScript. If you want to see how it looks using Google Chrome app mode, in Windows, create a Windows </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/5992114948752659972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=5992114948752659972' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/5992114948752659972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/5992114948752659972'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/07/3d-full-screen-game-using-o3d.html' title='3D full screen game using O3D'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-2075894885209783023</id><published>2009-07-27T09:19:00.007+02:00</published><updated>2009-07-27T16:28:07.958+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='environment'/><title type='text'>Buying CO2 credits doesn't make IT CO2 neutral</title><summary type='text'>More and more IT companies try to become CO2 neutral by buying the CO2 credits that match the amount of power they use for the IT equipment. The argument is, that if they use 1 ton CO2 to run their servers, then they buy 1 ton CO2 credit from the market, removing 1 ton of CO2 emission elsewhere.Nice thought but that's not how it works. Buying CO2 credits like that just means that you need 2 ton </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/2075894885209783023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=2075894885209783023' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/2075894885209783023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/2075894885209783023'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/07/buying-co2-credits-doesnt-make-it-co2.html' title='Buying CO2 credits doesn&apos;t make IT CO2 neutral'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-5342549800115155794</id><published>2009-07-24T11:19:00.002+02:00</published><updated>2009-07-24T11:36:43.492+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delphiprism'/><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Delphi apps as Chrome apps?</title><summary type='text'>Google is doing a lot of great stuff with Chrome these days. The first version of the browser included it's own task manager, process administration, sandboxing etc., but Google now also announced accelerated 3D support and native code, sandboxed. I would not surprised to see Google Earth to be one of the first applications, that stop being Windows applications and start being Google Chrome </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/5342549800115155794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=5342549800115155794' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/5342549800115155794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/5342549800115155794'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/07/delphi-apps-as-chrome-apps.html' title='Delphi apps as Chrome apps?'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-4100935115855356192</id><published>2009-07-24T09:12:00.005+02:00</published><updated>2009-07-24T09:16:43.583+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dapug'/><category scheme='http://www.blogger.com/atom/ns#' term='delphiprism'/><category scheme='http://www.blogger.com/atom/ns#' term='jimmckeeth'/><title type='text'>Jim McKeeth on Delphi Prism in Copenhagen</title><summary type='text'>For those who are not fortunate to be able to read Danish: The Danish Delphi users group has a workshop on september 15th and 16th, introducing Delphi Prism to experienced Delphi developers. I assume that members have first priority, but I also assume that Jim hasn't learned himself Danish and keeps everything in English. I will be there, too.</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/4100935115855356192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=4100935115855356192' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/4100935115855356192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/4100935115855356192'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/07/jim-mckeeth-on-delphi-prism-in.html' title='Jim McKeeth on Delphi Prism in Copenhagen'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-2099480121757456174</id><published>2009-07-19T19:50:00.008+02:00</published><updated>2009-07-19T22:12:07.147+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='economy'/><title type='text'>The difference between craftsmanship and engineering in software development</title><summary type='text'>(Inspired by Jeff Atwood's latest post about Software Engineering)Definitions:* Craftsmanship* engineering* Software EngineeringInstead of commenting on Jeff's article, I would like to give a real engineer's view on software engineering. I usually say, that a craftsman can be good at creating something that is similar to something that has been created before, in good quality. An Engineer can </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/2099480121757456174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=2099480121757456174' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/2099480121757456174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/2099480121757456174'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/07/difference-between-craftsmanship-and.html' title='The difference between craftsmanship and engineering in software development'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-451993067890521659</id><published>2009-07-04T12:53:00.007+02:00</published><updated>2009-07-04T13:24:29.547+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><title type='text'>Jeff Atwood is wrong about performance</title><summary type='text'>Jeff Atwood likes referring to his blog post about Hardware is cheap, programmers are expensive. where he writes: "Given the rapid advance of Moore's Law, when does it make sense to throw hardware at a programming problem? As a general rule, I'd say almost always."I totally disagree, of course, but here is why:* The parts of hardware that complies with Moore's law is usually so fast, that it is </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/451993067890521659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=451993067890521659' title='29 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/451993067890521659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/451993067890521659'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/07/jeff-atwood-likes-referring-to-his-blog.html' title='Jeff Atwood is wrong about performance'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>29</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-6837879704212604758</id><published>2009-06-30T23:28:00.003+02:00</published><updated>2009-06-30T23:40:09.035+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='mono'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Delphi for iPhone</title><summary type='text'>Will the next version of Delphi Prism officially support the iPhone?* Miguel de Icaza announces MonoTouch* MonoTouchAs far as I can see, Delphi Prism can be used to create iPhone apps, today, compiled to native ARM CPU machine code.</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/6837879704212604758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=6837879704212604758' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/6837879704212604758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/6837879704212604758'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/06/delphi-for-iphone.html' title='Delphi for iPhone'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-3803331787916542765</id><published>2009-06-24T16:30:00.021+02:00</published><updated>2009-06-24T21:22:50.890+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='benchmark'/><title type='text'>Delphi is fast, very fast</title><summary type='text'>Jesper Hald and others recently did a benchmark of a certain algorithm to figure out, which was fastest. It evolved into a kind of competition to make the fastest algorithm to solve this problem:Fill a data structure with 1,000,000 random, unsorted values from 0-100 Run through this data structure 200 times, counting a) number of values = 42 b) average for all 1,000,000*200 valuesThe benchmark </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/3803331787916542765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=3803331787916542765' title='64 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3803331787916542765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3803331787916542765'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/06/delphi-is-fast-very-fast.html' title='Delphi is fast, very fast'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>64</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-93928496781254045</id><published>2009-06-19T11:31:00.007+02:00</published><updated>2009-06-26T15:11:02.330+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='floating point'/><title type='text'>Floating point values are evil</title><summary type='text'>If you want to do comparisons like &gt; &lt; =, always consider to convert your floating point numbers to integers and store them in integer variables. The basic problem is, that simple values like 0.1 do not exist in the double type.There are several solutions:* Instead of showing currencies as the number of dollars, where 0.20 is 20 cents, consider to register the number of cents, instead, so that </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/93928496781254045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=93928496781254045' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/93928496781254045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/93928496781254045'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/06/floating-point-values-are-evil.html' title='Floating point values are evil'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-3612367926737235060</id><published>2009-06-14T09:16:00.011+02:00</published><updated>2009-06-14T10:01:53.682+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='win32'/><category scheme='http://www.blogger.com/atom/ns#' term='tstringlist'/><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='win64'/><category scheme='http://www.blogger.com/atom/ns#' term='sorting'/><title type='text'>Do not set TStringList.sorted:=True with default comparison</title><summary type='text'>Now, this is a nasty bug, especially for Delphi 2009, reported by an anonymous user in my other blog post here:The Windows API CompareStr() in Windows XP SP3, using Danish locale (and probably most others), thinks that 59A &lt; 59-A &lt; -59-A &lt; 5-9A &lt; 59-A.TStringList.Find uses binary lookups on a sorted list of strings, which means that for 1024 items in a TStringList, it does not need to make more </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/3612367926737235060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=3612367926737235060' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3612367926737235060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3612367926737235060'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/06/searching-sorted-tstringlists-does-not.html' title='Do not set TStringList.sorted:=True with default comparison'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-4004007552234268549</id><published>2009-06-10T16:35:00.007+02:00</published><updated>2009-06-10T17:47:36.512+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><title type='text'>The performance of the "as" operator</title><summary type='text'>Some people wonder, if the "as" operator is slow or not. A programmer well known in the Danish Delphi community, Thomas Vedel, has made some investigations into this, using Delphi 2009, and I have got his permission to publish them.The blue instructions below are those that are only executed if the type does not match, and they are therefore not relevant for normal execution. The conclusion seems</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/4004007552234268549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=4004007552234268549' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/4004007552234268549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/4004007552234268549'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/06/performance-of-is-operator.html' title='The performance of the &quot;as&quot; operator'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-6537330225541025394</id><published>2009-05-29T14:18:00.008+02:00</published><updated>2009-05-29T15:37:24.689+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='unicode'/><category scheme='http://www.blogger.com/atom/ns#' term='refactoring'/><title type='text'>Upgrading a major project to Delphi 2009</title><summary type='text'>Having finished converting a major project that involves a fairly large programming team for several years, to Delphi 2009, I'm now ready to blog about the experience.If you want to estimate the amount of work involved to convert a project, note that it is not significant, how many lines of code you have. It is more important, what kind of code, and how segmented it is, and how consistent each </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/6537330225541025394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=6537330225541025394' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/6537330225541025394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/6537330225541025394'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/05/upgrading-major-project-to-delphi-2009.html' title='Upgrading a major project to Delphi 2009'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-4308761782233210128</id><published>2009-05-28T09:34:00.005+02:00</published><updated>2009-05-28T09:52:10.150+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='memory'/><title type='text'>Deterministic but automatic memory deallocation</title><summary type='text'>Now, that Delphi Prism and Delphi/Win32 have put less focus on source code sharing, it's time to see if memory allocation in Delphi/Win32 can be improved. This is what we often write in our code today:var o:TMyObject;begin  o:=TMyObject.Create;  try    o.DoSomething;  finally    FreeAndNil (o);  end;end;How can we avoid typing so much? The obvious solutions are:Garbage Collection: Used in Java </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/4308761782233210128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=4308761782233210128' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/4308761782233210128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/4308761782233210128'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/05/deterministic-but-automatic-memory.html' title='Deterministic but automatic memory deallocation'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-7259882751030013053</id><published>2009-05-21T14:04:00.006+02:00</published><updated>2009-05-21T14:14:28.295+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='andershejlsberg'/><category scheme='http://www.blogger.com/atom/ns#' term='multithreading'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Anders Hejlsberg: We have huge amounts of memory and concurrent programming is an exception</title><summary type='text'>See the video here:http://channel9.msdn.com/shows/Going+Deep/Expert-to-Expert-Anders-Hejlsberg-The-Future-of-C/It's quite amazing to hear Anders advocating bloat in a world where most of the world still has bad internet connections and hate large downloads, mobile phones prefer 1MB applications over 10MB apps, where RAM can be a bottleneck, where battery life is always too short and where many </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/7259882751030013053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=7259882751030013053' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7259882751030013053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7259882751030013053'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/05/anders-hejlsberg-we-have-huge-amounts.html' title='Anders Hejlsberg: We have huge amounts of memory and concurrent programming is an exception'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-2691420122959094136</id><published>2009-04-01T09:49:00.004+02:00</published><updated>2009-04-01T10:28:49.169+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multithreading'/><title type='text'>Deterministic memory management</title><summary type='text'>With Java and .net, garbage collection (GC) has won a lot of followers. GC basically makes it possible to avoid some of the memory leak problems that often happen with unskilled programmers, and at the same time, it supports the current typical hardware configurations very well. When memory is needed, you don't need to search for a block, it's just grabbed.However, since the current hardware </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/2691420122959094136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=2691420122959094136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/2691420122959094136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/2691420122959094136'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/04/deterministic-memory-management.html' title='Deterministic memory management'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-6418052860067908894</id><published>2009-03-26T19:47:00.004+01:00</published><updated>2009-03-26T20:21:22.702+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='marketing'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Wikipedia's effect on software marketing</title><summary type='text'>Recently I saw a presentation from a very skilled Microsoft guy about Cloud computing. He was really good at presenting the message, telling about the cloud, about Microsoft products etc., but his terminology definitions definitely differed from mine.Immediately, I looked up cloud computing on wikipedia, which corresponded very well with my own perception of the concept. Several years ago, I was </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/6418052860067908894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=6418052860067908894' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/6418052860067908894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/6418052860067908894'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/03/wikipedias-effect-on-software-marketing.html' title='Wikipedia&apos;s effect on software marketing'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-2404686187650062415</id><published>2009-03-22T11:50:00.002+01:00</published><updated>2009-03-22T12:06:47.783+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='storage'/><title type='text'>Use RAM disk for many small temporary files</title><summary type='text'>Many systems use small temporary files to exchange information between two applications. There can be many reasons to do so: To support network file shares, to have a queue system that is not tied to any kind of special software, or simply to keep specifications simple. There are many well known examples of this, including mail systems like sendmail and postfix.The problem is, that most Windows </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/2404686187650062415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=2404686187650062415' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/2404686187650062415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/2404686187650062415'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/03/use-ram-disk-for-many-small-temporary.html' title='Use RAM disk for many small temporary files'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-8575893358798696568</id><published>2009-03-12T20:21:00.004+01:00</published><updated>2009-03-12T20:52:42.756+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multithreading'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Mark D. Hill on Amdahl's law in the Multicore Era</title><summary type='text'>This is a really cool video if you're interested in multi-core CPU architectures, performance, parallel programming or just want to know what Google is doing these days.</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/8575893358798696568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=8575893358798696568' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/8575893358798696568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/8575893358798696568'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/03/mark-d-hill-on-amdahls-law-in-multicore.html' title='Mark D. Hill on Amdahl&apos;s law in the Multicore Era'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-1376526004788403546</id><published>2009-03-11T16:10:00.007+01:00</published><updated>2009-03-11T16:44:52.565+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unicode'/><category scheme='http://www.blogger.com/atom/ns#' term='character set'/><title type='text'>UTF-8 automatic detection</title><summary type='text'>If you have ever worked with an environment that mixed utf-8 and the 8-bit default character set in Windows, you may have run into the desire to autodetect utf-8 text. This is actually very easy, because there are a lot of illegal byte sequences in utf-8, which usually appear in other character sets.For instance, a Danish word like "Øl" is encoded $D8 $6C using the Danish local character set. </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/1376526004788403546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=1376526004788403546' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/1376526004788403546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/1376526004788403546'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/03/utf-8-automatic-detection.html' title='UTF-8 automatic detection'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-1579906090713412827</id><published>2009-03-10T12:21:00.006+01:00</published><updated>2009-03-10T12:29:52.360+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='transactions'/><category scheme='http://www.blogger.com/atom/ns#' term='firebird'/><category scheme='http://www.blogger.com/atom/ns#' term='tip'/><title type='text'>Avoid deadlocks in Firebird for concurrent updates</title><summary type='text'>This is a small tip that can be used when you want to have separate processes to write to the same records in the database, without deadlocks. Example:b:=StartTransaction;UpdateDataInTable (b);Commit (b);If two processes try to do this at the same time, the second process will detect a possible deadlock on the update, and will wait until the first process completes its transaction. When the first</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/1579906090713412827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=1579906090713412827' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/1579906090713412827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/1579906090713412827'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/03/avoid-deadlocks-in-firebird-when.html' title='Avoid deadlocks in Firebird for concurrent updates'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-3526852335343991849</id><published>2009-03-08T17:23:00.006+01:00</published><updated>2009-03-08T18:22:19.885+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='latency'/><title type='text'>Latency is increasing</title><summary type='text'>Once internet connection latencies were above 100ms. ISDN brought it down (for me) to about 30ms, and ADSL got it below 10ms. Now, ADSL2 is becoming more widely deployed, introducing 20ms latency, and more and more homes are being equipped with 3G/wifi gateways, eliminating the copper wire, and bringing latency above 100ms again. I guess it is obvious, that this seriously impacts how to create </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/3526852335343991849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=3526852335343991849' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3526852335343991849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3526852335343991849'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/03/latency-is-increasing.html' title='Latency is increasing'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-7696229752887210863</id><published>2009-03-07T09:50:00.002+01:00</published><updated>2009-03-07T12:01:16.006+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='power'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='bloat'/><category scheme='http://www.blogger.com/atom/ns#' term='multithreading'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>The coming bloat explosion</title><summary type='text'>I see a future of bloat:* Cloud systems and virtualization on very powerful servers can be exploited to shorten the time to market, at the cost of bloat.* Windows 7 may finally make Windows XP users upgrade, many to 64-bit machines, enabling a significant growth in amount of RAM in an average PC. This will make it more acceptable that software uses more RAM.During the last 28 years, my experience</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/7696229752887210863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=7696229752887210863' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7696229752887210863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7696229752887210863'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/01/coming-bloat-explosion.html' title='The coming bloat explosion'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-7685903195341046454</id><published>2009-03-05T08:59:00.004+01:00</published><updated>2009-03-05T09:10:40.577+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='specifications'/><title type='text'>Environment-adapted software development</title><summary type='text'>Normally, when you create software, there are 4 parameters that you can specify:* Functionality* Price* Deadline* QualityIn a competitive market, the customer can only specify three of these parameters. If the functionality is defined, the deadline is defined, the quality is defined, then the price can go up sharply, and I guess everybody knows examples of this.As Microsoft themselves described </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/7685903195341046454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=7685903195341046454' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7685903195341046454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7685903195341046454'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/03/environment-adapted-software.html' title='Environment-adapted software development'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-5617778677226172303</id><published>2009-02-20T19:05:00.003+01:00</published><updated>2009-02-20T19:07:15.498+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><title type='text'>Good blog post about performance - also applies to Delphi</title><summary type='text'>Delphi has a great flexibility in how databases are accessed and handled, and therefore often perform really, really well. However, the urge to improve, is never-ending, and here is a great article for those, that really want to know about performance:http://highscalability.com/numbers-everyone-should-knowThe article focuses on web apps, but actually applies to almost any kind of application.</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/5617778677226172303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=5617778677226172303' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/5617778677226172303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/5617778677226172303'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/02/good-blog-post-about-performance-also.html' title='Good blog post about performance - also applies to Delphi'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-1775111673555355623</id><published>2009-02-07T23:26:00.007+01:00</published><updated>2009-02-07T23:37:40.628+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='reversi'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Windows Reversi - playing online against an algorithm?</title><summary type='text'>Can somebody please explain to me, why the opponents in the game of Reversi in Windows XP are almost always Greek beginners, German Intermediates or English experts? To me, they seem to be computer algorithms. If I am right, I see two possible explanations: 1) There are not enough Windows users to support online games like this. 2) Humans don't behave according to Microsoft quality standards. I </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/1775111673555355623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=1775111673555355623' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/1775111673555355623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/1775111673555355623'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/02/windows-reversi-playing-online-against.html' title='Windows Reversi - playing online against an algorithm?'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-6115714844559785186</id><published>2009-02-06T04:58:00.002+01:00</published><updated>2009-02-06T05:00:08.055+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='estimating'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><title type='text'>Mixing waterfall and agile</title><summary type='text'>Here is a typical story of waterfall vs. Agile: http://dotnet.dzone.com/news/we-dont-have-requirements-yet. If you ever run into such a situation, I can recommend to read Agile Estimating and Planning. It will solve your problem.</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/6115714844559785186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=6115714844559785186' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/6115714844559785186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/6115714844559785186'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/02/mixing-waterfall-and-agile.html' title='Mixing waterfall and agile'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-6054221309219036806</id><published>2009-02-05T15:37:00.011+01:00</published><updated>2009-02-05T15:49:05.710+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multithreading'/><title type='text'>Parallelizing can make things slower.</title><summary type='text'>I wrote the text below on another blog about parallelism, 4 months ago. It is a hypothetical example, but based on a true story, with a very good point. I guess we all know the feeling of clicking the start button in Windows after booting, and nothing happens for several seconds..."You want data to be sorted. You may start out with a standard sort algorithm. Suddenly you find, that it is slow. </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/6054221309219036806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=6054221309219036806' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/6054221309219036806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/6054221309219036806'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/02/parallelizing-can-make-things-slower.html' title='Parallelizing can make things slower.'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-132622243543544570</id><published>2009-02-05T13:49:00.002+01:00</published><updated>2009-02-05T13:58:10.883+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='garbagecollection'/><category scheme='http://www.blogger.com/atom/ns#' term='dotnet'/><title type='text'>Garbage collection or garbage piling up?</title><summary type='text'>If you haven't tried .net or java, yet, you may want to have a look at this example of how garbage collection doesn't free your mind from thinking about memory allocation and object destruction.</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/132622243543544570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=132622243543544570' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/132622243543544570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/132622243543544570'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/02/garbage-collection-or-garbage-piling-up.html' title='Garbage collection or garbage piling up?'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-8165236269920944216</id><published>2009-01-15T20:48:00.003+01:00</published><updated>2009-01-15T21:04:06.732+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multithreading'/><category scheme='http://www.blogger.com/atom/ns#' term='numa'/><title type='text'>Multi-core now, NUMA next</title><summary type='text'>Quad-core PCs are in the shops, but as Sandia reports, there is a limit to how much we can grow performance by adding more cores.The next bottleneck is memory - and the simple way to solve that problem is to split the memory, giving each CPU its own memory. This adds a new parameter to allocated memory: Which thread does this memory belong to? Actually, the technology already exists. Windows and </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/8165236269920944216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=8165236269920944216' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/8165236269920944216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/8165236269920944216'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/01/multi-core-now-numa-next.html' title='Multi-core now, NUMA next'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-7046751618546109564</id><published>2009-01-09T10:30:00.005+01:00</published><updated>2009-01-09T11:28:49.975+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='uptime'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='scalability'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>Virtualization gives configurable risk profiles</title><summary type='text'>As everybody knows, the risk of failure can be reduced using redundancy, so redundancy must be good. Also, redundancy is expensive, but fewer hardware boxes with lots of redundancy built-in means less costs and less risk at the same time, right? Now, here is the problem: If you virtualize 100 servers on a system, and the system fails, you have 100 virtual servers that fail.Most organizations can </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/7046751618546109564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=7046751618546109564' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7046751618546109564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7046751618546109564'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/01/virtualization-gives-configurable-risk.html' title='Virtualization gives configurable risk profiles'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-6826770245846464832</id><published>2009-01-05T17:42:00.004+01:00</published><updated>2009-01-05T18:03:20.796+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='closures'/><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='multithreading'/><title type='text'>Simple multithreading using closures</title><summary type='text'>One nice application of closures is to create multithreaded software, suitable for multi-core CPUs. This example can give some inspiration:procedure FooBar;var  context:string;  res1,res2:string;begin  context:='Test';  ParallelExecute (    procedure begin res1:=context+'1'; end,    procedure begin res2:=context+'2'; end);  ShowMessage (res1+slineBreak+res2);end;I used the variable name "context"</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/6826770245846464832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=6826770245846464832' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/6826770245846464832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/6826770245846464832'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/01/simple-multithreading-using-closures.html' title='Simple multithreading using closures'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-4420916220696318722</id><published>2009-01-03T11:23:00.004+01:00</published><updated>2009-01-03T11:58:48.978+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='education'/><title type='text'>Get a degree, but not necessarily a CS degree</title><summary type='text'>Joel Spolsky has started a lot of blog postings in many places about the value of a CS degree. I would like to point out Bill the Lizard's blog, because he has a good point: CS graduates were once without a degree, so they know the difference and the value of the degree.However, I also recognize some of the problems with CS graduates. Not all CS graduates are better than programmers without </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/4420916220696318722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=4420916220696318722' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/4420916220696318722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/4420916220696318722'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2009/01/get-degree-but-not-necessarily-cs.html' title='Get a degree, but not necessarily a CS degree'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-3683960742179118452</id><published>2008-12-27T11:36:00.008+01:00</published><updated>2008-12-27T11:59:33.237+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='saas'/><title type='text'>Derivatives in IT: SaaS</title><summary type='text'>One of the major causes of the financial bubbles is derivatives. In theory, they're a good thing, but even though they seem very easy to understand, they're sometimes too complicated when things go wrong, and they can bring down entire companies.We have something similar in IT: Software as a Service. In theory, it's a good thing. You can build entire companies on top of it, but even though it </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/3683960742179118452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=3683960742179118452' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3683960742179118452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3683960742179118452'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2008/12/derivatives-in-it-saas-and.html' title='Derivatives in IT: SaaS'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-333431975268141218</id><published>2008-12-24T09:21:00.001+01:00</published><updated>2008-12-24T09:22:06.906+01:00</updated><title type='text'>Top down programming using refinements</title><summary type='text'>In 1984, I enjoyed learning the Elan programming language. It had a nice syntactic element: Refinements. These are used for top-down programming, which means that you decide what your function should do, first, and then write the code, later.Refinements couldn't do anything that procedures and functions cannot do - but it was a nice element of the language, that its syntax actually focused on the</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/333431975268141218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=333431975268141218' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/333431975268141218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/333431975268141218'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2008/12/top-down-programming-using-refinements.html' title='Top down programming using refinements'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-4561023245802626527</id><published>2008-12-21T09:40:00.007+01:00</published><updated>2008-12-21T10:45:03.285+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='touch typing'/><title type='text'>Touch typing leads to a different choice of tools</title><summary type='text'>It is a disgrace, that the amount of people that are able to touch type, is not increasing. Many user interfaces today optimize the input of data by providing a context-based list of choices, so that the user can easily pick what is needed. Mobile phones excel at this, but if you want to be really efficient with a computer, you need a higher bandwidth between you and the computer.Without touch </summary><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=8e97da4d1d2646d9&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/4561023245802626527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=4561023245802626527' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/4561023245802626527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/4561023245802626527'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2008/12/touch-typing-leads-to-different-choice.html' title='Touch typing leads to a different choice of tools'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-3926616471282280931</id><published>2008-12-06T09:26:00.004+01:00</published><updated>2008-12-06T10:20:16.580+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='transactions'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>Delphi in the Cloud, Virtualization and other new inventions</title><summary type='text'>Buzzwords change all the time, and the newest is the Cloud. The cloud provides several benefits: deployment, load balancing and costs improve a lot. Where does this put Delphi?What we see now is the first generation of cloud systems. Some clouds have specific programming languages, very specific APIs and even specific databases which are rather primitive. As a former technical responsible for a </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/3926616471282280931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=3926616471282280931' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3926616471282280931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3926616471282280931'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2008/12/delphi-in-cloud-virtualization-and.html' title='Delphi in the Cloud, Virtualization and other new inventions'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-1823767124351948496</id><published>2008-11-30T11:11:00.006+01:00</published><updated>2008-11-30T13:59:30.367+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='embarcadero'/><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='crossplatform'/><category scheme='http://www.blogger.com/atom/ns#' term='mono'/><category scheme='http://www.blogger.com/atom/ns#' term='dotnet'/><title type='text'>Delphi for i386, PowerPC, s390, Arm, Mips, x86-64, Itanium...</title><summary type='text'>The people at CodeGear have done something cool: They now officially support the mono project, which supports a wide range of CPU architectures.I was one of those that evaluated the Kylix product, and actually used it for production code (non-GUI, server side), which still runs. Kylix's main problem was, that it only supported i386, and the basic concept in Kylix did not indicate that this would </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/1823767124351948496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=1823767124351948496' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/1823767124351948496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/1823767124351948496'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2008/11/delphi-for-i386-powerpc-s390-arm-mips.html' title='Delphi for i386, PowerPC, s390, Arm, Mips, x86-64, Itanium...'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-7078668002146258184</id><published>2008-11-28T09:03:00.006+01:00</published><updated>2008-11-28T12:16:25.038+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><title type='text'>The smallest Hello, World in Delphi</title><summary type='text'>This is the source code:{$APPTYPE CONSOLE}program p;begin  Writeln ('Hello, World');end.Program info (Delphi 2009):* Code size 14284 bytes* Data size 12988 bytes* Initial stack size 16384 bytes* File size 21504 bytesBenchmark:* Using a standard .cmd batch file, this application can be started 10000 times in 77 seconds on a standard Core 2 laptop using Windows XP. That means 7,7 milliseconds per </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/7078668002146258184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=7078668002146258184' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7078668002146258184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7078668002146258184'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2008/11/smallest-hello-world-in-delphi.html' title='The smallest Hello, World in Delphi'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-635290367018050993</id><published>2008-11-13T10:13:00.006+01:00</published><updated>2008-11-13T11:01:23.239+01:00</updated><title type='text'>In-band vs. out-of-band signaling in programming</title><summary type='text'>In telecommunications, you need to transmit data, but also signals that indicate information about connections - signals like "create a connection", "close a connection" etc. This information can be transferred in multiple ways: inside the data channel, or outside. This is usually called "in-band signaling" or "out-of-band signaling". DTMF is a good example of in-band signaling. You press a </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/635290367018050993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=635290367018050993' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/635290367018050993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/635290367018050993'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2008/11/in-band-vs-out-of-band-signaling-in.html' title='In-band vs. out-of-band signaling in programming'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-8881677419037286338</id><published>2008-11-11T13:27:00.008+01:00</published><updated>2008-11-11T13:53:58.090+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='unicode'/><category scheme='http://www.blogger.com/atom/ns#' term='character set'/><title type='text'>Corrections to "Working with Delphi 2009"</title><summary type='text'>My article about "Working with Delphi 2009" contained 2 serious flaws that need a correcting article.First, I mentioned that #0 would not be stored in a unicodestring/string. That's not correct. I did have a problem related to the #0, but I identified the wrong cause. I haven't identified the correct cause, yet. Thanks to Andreas Hausladen for reporting this.Second, I mentioned that insert(), </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/8881677419037286338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=8881677419037286338' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/8881677419037286338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/8881677419037286338'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2008/11/corrections-to-working-with-delphi-2009.html' title='Corrections to &quot;Working with Delphi 2009&quot;'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-36002588813669321</id><published>2008-11-09T08:55:00.006+01:00</published><updated>2008-11-09T10:44:38.365+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='andershejlsberg'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='embarcadero'/><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Anders Hejlsberg and Delphi's future</title><summary type='text'>Anders Hejlsberg made a nice presentation during his latest visit to Denmark, see it here. He said a lot of things, but one of his points actually explains the power in Delphi: When you look at the amount of learning that a new programmer has to do, the tools and libraries are now much bigger than the language. Delphi has good tools and libraries, and that's important.Anders Hejlsberg also </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/36002588813669321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=36002588813669321' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/36002588813669321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/36002588813669321'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2008/11/anders-hejlsberg-and-delphis-future.html' title='Anders Hejlsberg and Delphi&apos;s future'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-4488525060926770629</id><published>2008-11-08T10:28:00.003+01:00</published><updated>2008-11-11T13:49:05.939+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='unicode'/><category scheme='http://www.blogger.com/atom/ns#' term='character set'/><title type='text'>Working with Delphi 2009</title><summary type='text'>My main work is with Delphi 2006, but more and more of our source code now compiles with Delphi 2009, and I also created some tools with Delphi 2009.Converting existing source code is extremely simple, as long as the source code is written nicely, and is about databases, user interfaces etc. However, direct Windows API calls need to be checked - especially where you have an "array of char" and </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/4488525060926770629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=4488525060926770629' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/4488525060926770629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/4488525060926770629'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2008/11/working-with-delphi-2009.html' title='Working with Delphi 2009'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-6828688543630658254</id><published>2008-11-07T13:11:00.004+01:00</published><updated>2008-11-07T13:20:22.176+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>C# - C Doublecross</title><summary type='text'>I wonder how many English-language people actually know what C# is in other languages. In Danish, you could either adopt the Microsoft-English "C Sharp" version, or use the normal localized word for # and get "C havelåge", which basically means "C garden gate".I have no clue how you can make the symbol "#" become "Sharp" - to me, it looks more like a pillow. Based on various languages, it could </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/6828688543630658254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=6828688543630658254' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/6828688543630658254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/6828688543630658254'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2008/11/c-c-doublecross.html' title='C# - C Doublecross'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-7712313046821601221</id><published>2008-11-05T14:38:00.009+01:00</published><updated>2008-11-05T14:51:32.138+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gorm'/><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='localization'/><category scheme='http://www.blogger.com/atom/ns#' term='gnu gettext'/><title type='text'>New PO file editor: Gorm</title><summary type='text'>In case you are using PO files for internationalizing your applications, there is now a new Open Source editor around: Gorm. Features include:* Labelling/tagging of translations, so that you can make a translator translate a subset instead of everything* Automatic error discovery (like when format-string translations are not correct or when the translation has different spacing than the original)</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/7712313046821601221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=7712313046821601221' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7712313046821601221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7712313046821601221'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2008/11/new-po-file-editor-gorm.html' title='New PO file editor: Gorm'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-9185765012753034309</id><published>2008-11-04T15:05:00.006+01:00</published><updated>2008-11-04T15:16:42.369+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='latency'/><title type='text'>Layers in programming</title><summary type='text'>I just got inspired by David Intersimone's latest blog posts about the history of Delphi:Modern programming is like Onions. It stinks? Yes. No. They make you cry? Yes. NO. Layers. Onions have layers. Modern programming has layers. Onions have layers. You get it?(Which reminds me that I need to buy the latest Shrek movie)When adding layers, always remember that layers add latency.</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/9185765012753034309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=9185765012753034309' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/9185765012753034309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/9185765012753034309'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2008/11/layers-in-programming.html' title='Layers in programming'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-8385238119516111857</id><published>2008-11-03T07:30:00.008+01:00</published><updated>2008-11-03T08:04:36.959+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='embarcadero'/><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='comport'/><category scheme='http://www.blogger.com/atom/ns#' term='turbopower'/><title type='text'>Delphi bigger than C#? The TComPort history</title><summary type='text'>Just a few years back Delphi's future was uncertain, Borland focused on other products and Delphi was on its way down. Now, the TIOBE index for November indicates that Delphi is number 8, just slightly below C#. Is that really correct?The TIOBE index is basically a web search index, and some may argue that it basically reflects a very strong Delphi community. However, there are many other signs </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/8385238119516111857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=8385238119516111857' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/8385238119516111857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/8385238119516111857'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2008/11/delphi-bigger-than-c-tcomport-history.html' title='Delphi bigger than C#? The TComPort history'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-1809047463590618270</id><published>2008-10-25T08:18:00.019+02:00</published><updated>2008-10-25T14:19:49.849+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='economy'/><title type='text'>Is software creating financial bubbles?</title><summary type='text'>Alan Greenspan has long praised computer technology as a tool that can be used to limit risks in financial markets, but recently he acknowledged that the data fed into financial systems was often a case of garbage in, garbage out, indicating that this has led to huge trouble. Have bad IT systems been deployed elsewhere on this planet? Yes. Will the world continue to do so? Yes. Why?If you look at</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/1809047463590618270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=1809047463590618270' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/1809047463590618270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/1809047463590618270'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2008/10/is-software-creating-financial-bubbles.html' title='Is software creating financial bubbles?'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-5016058104490380283</id><published>2008-10-22T10:02:00.005+02:00</published><updated>2008-10-22T10:23:09.499+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='unicode'/><category scheme='http://www.blogger.com/atom/ns#' term='funny'/><title type='text'>Funny comment in system.pas</title><summary type='text'>In Delphi 2009's system.pas, line 1475, I found this comment:TTextBuf = array[0..127] of AnsiChar; // TODO: change to WideCharI wonder why they didn't check their todo items before shipping.</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/5016058104490380283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=5016058104490380283' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/5016058104490380283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/5016058104490380283'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2008/10/funny-comment-in-systempas.html' title='Funny comment in system.pas'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-3884376255665014432</id><published>2008-10-21T18:58:00.005+02:00</published><updated>2008-10-21T19:12:04.176+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='unicode'/><category scheme='http://www.blogger.com/atom/ns#' term='character set'/><title type='text'>The problem with С in programming</title><summary type='text'>The problem with С in programming is, that this Delphi example actually compiles and executes without problems:procedure TForm3.Button4Click(Sender: TObject);var  c:integer;  с:integer;begin  c:=2;  с:=3;  Assert (c&lt;&gt;с);end;The first c is the latin letter, and the second с is the cyrillic letter. Both are on the same position in the U.S. and Russian keyboard layouts, and I have seen these two </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/3884376255665014432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=3884376255665014432' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3884376255665014432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/3884376255665014432'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2008/10/problem-with-in-programming.html' title='The problem with С in programming'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-75235650828370990</id><published>2008-10-16T05:28:00.004+02:00</published><updated>2008-10-16T06:03:20.293+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='unicode'/><category scheme='http://www.blogger.com/atom/ns#' term='benchmark'/><title type='text'>Widestring 4545 times slower than unicodestring</title><summary type='text'>I noticed that several people, in comments and in other blogs, compared the number of seconds that was spent for each benchmark in my previous post. I presented both the time spent, the number of iterations and the number of iterations per second, and it is the last number that is interesting. In order to fix that, I have now removed the time measurements from that post.For that same reason, </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/75235650828370990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=75235650828370990' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/75235650828370990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/75235650828370990'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2008/10/widestring-4545-times-slower-than.html' title='Widestring 4545 times slower than unicodestring'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-6026409524127602016</id><published>2008-10-14T09:34:00.004+02:00</published><updated>2008-10-16T05:19:45.268+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='unicode'/><category scheme='http://www.blogger.com/atom/ns#' term='benchmark'/><title type='text'>Delphi 2009 string type performance benchmark</title><summary type='text'>This code was run on a Intel Core 2 laptop, and shows the difference in performance very well. Compiler options used: Code optimization disabled, all checks on.procedure TForm3.Button3Click(Sender: TObject);var  a:ansistring;  r:rawbytestring;  u:string;  w:widestring;  i:integer;  s:shortstring;  c:char; // widechar  ac:ansichar;begin  screen.Cursor:=crHourGlass;  try    // approx. 222 million </summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/6026409524127602016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=6026409524127602016' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/6026409524127602016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/6026409524127602016'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2008/10/delphi-2009-string-type-performance.html' title='Delphi 2009 string type performance benchmark'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4434108347727659251.post-7062761035044334572</id><published>2008-10-14T09:30:00.002+02:00</published><updated>2008-10-14T09:36:42.708+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='unicode'/><title type='text'>Raw binary data in Delphi 2009 strings, by example</title><summary type='text'>This code snippet explains by example how you can use binary data in strings in Delphi 2009:const  AllByteValues=    #$00#$01#$02#$03#$04#$05#$06#$07#$08#$09#$0a#$0b#$0c#$0d#$0e#$0f+    #$10#$11#$12#$13#$14#$15#$16#$17#$18#$19#$1a#$1b#$1c#$1d#$1e#$1f+    #$20#$21#$22#$23#$24#$25#$26#$27#$28#$29#$2a#$2b#$2c#$2d#$2e#$2f+    #$30#$31#$32#$33#$34#$35#$36#$37#$38#$39#$3a#$3b#$3c#$3d#$3e#$3f+    #$40#</summary><link rel='replies' type='application/atom+xml' href='http://compaspascal.blogspot.com/feeds/7062761035044334572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4434108347727659251&amp;postID=7062761035044334572' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7062761035044334572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4434108347727659251/posts/default/7062761035044334572'/><link rel='alternate' type='text/html' href='http://compaspascal.blogspot.com/2008/10/raw-binary-data-in-delphi-2009-strings.html' title='Raw binary data in Delphi 2009 strings, by example'/><author><name>Lars D</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://dybdahl.dk/lars/lars.jpg'/></author><thr:total>5</thr:total></entry></feed>
