Hi!
I have voted on this report on Delphi quality central http://qc.embarcadero.com/wc/qcmain.aspx?d=97382. Please do the same to support a change in this issue!
1. Login, if you don't have account create one.
2. Add 5 votes. That is maximum.
PS
Please join then new group on FaceBook
http://www.facebook.com/groups/279755425455148/
My twitter:
https://twitter.com/#!/d98rolb
Discussion and thoughts about Bold for Delphi. The purpose of this blog is to spread knowledge about Bold among Delphi developers.
Thursday, June 14, 2012
Friday, June 8, 2012
Petition update
To this date 131 signs is reached. I think this is remarkable for a closed product that is unsupported for so many years. I did a grouping for countries and Australia was the leader with 22 signs.
Thanks for all signs about the petition!
The whole list of countries can be downloaded here
Thanks for all signs about the petition!
The whole list of countries can be downloaded here
Tuesday, May 22, 2012
Petition is published
Yes, this evening a petition is published with the goal to release Bold for Delphi from Embarcadero. Of course I want as many as possible to sign on. Even better if you write why this is important. How would it make your development easier etc.
Get Bold for Delphi back!
Get Bold for Delphi back!
Tuesday, May 15, 2012
I'm very impressed...
of the wayback machine for Internet. Just think of the proportions of this project. To store all webpages of the whole internet as they change in time. It is of course impossible to catch everything.
It works remarkably well. For example www.boldsoft.com just link to some strange jumbo page... But in the wayback machine I can travel back in time to 4 October 2002. The pictures is mostly missing but I can read the text, documentation, ads etc. Very useful. I grabbed a chm-file with Bold references and added it to my archive of Bold documentation.
It works remarkably well. For example www.boldsoft.com just link to some strange jumbo page... But in the wayback machine I can travel back in time to 4 October 2002. The pictures is mostly missing but I can read the text, documentation, ads etc. Very useful. I grabbed a chm-file with Bold references and added it to my archive of Bold documentation.
Wednesday, August 24, 2011
Restart for Bold ?
I have started a group in LinkedIn about Bold. Anyone that is interested in this framework should join it!
Go to www.linkedin.com
Go to www.linkedin.com
Thursday, July 14, 2011
Bold documentation
The documentation for Bold is not that good. But I have put some docs for download here.
Monday, June 28, 2010
What to choose to achieve loading speed
It is important to use the right tool for the job. As a developer there is often the choice between to use a technology that let you do anything at the cost of you must also take care of everything. Or use a framework that take care of most details. The level of abstraction is raised. Bold for Delphi is such framework.
The header of todays post says Loading speed. Performance is often important in applications. Here is a simple list of techniques of show data from a database with comments about speed.
Now we also have a method that generate a prefetch expression from an OCL expression. This make it much easier as the prefetches can adapt from changes in model. The result is more dynamic and less hard coding!
The header of todays post says Loading speed. Performance is often important in applications. Here is a simple list of techniques of show data from a database with comments about speed.
- Using OCL with all dependent objects in object-space (RAM) and PS set to False. I used to call this warm objects. In my personal experience there is nothing that can beat that in speed. The GUI is very fast updated.
- Handwritten SQL versus Bold is like assembler versus C or C++. When written properly it can be very fast. But it is also easy to write slow SQL with sub-queries, introduce unnecessary complexity etc.
- Using OCL with dependent objects not in object-space (RAM) and PS set to True. This is cold objects. In some cases it can have equal performance as well written SQL. Note there is some limitations of the expression as derived attributes and links cannot be used. The result must be a collection of Bold objects.
- Using OCL with all dependent objects not in objects in object-space (RAM) and PS set to False and prefetch is used to load objects. See the explanation what prefetch is.
- Using OCL with all dependent not in objects in object-space (RAM) and PS set to False and prefetch is not used. This is lazy fetch. One SQL call is generated for every object loaded and this can be a bit slower.
One thing to be noted is that the database cache has big impact of the performance. The second time the same SQL is executed the data is already in the cache and is delivered faster.
When Bold load data and PS is set to False Bold evaluate and generate the needed SQL to load data in object space. The next time Bold need the same object it is already in memory and the speed gained is very high. It is number one at my list above. The problem is when new data is to be loaded all the time.
Prefetch
Bold contains some methods to avoid lazy fetch, EnsureObjects and FetchLinksWithObjects. The problem is then the model grow an by just reading a derived member may start a chain of lazy fetches that could be hard to anticipate.
Bold contains some methods to avoid lazy fetch, EnsureObjects and FetchLinksWithObjects. The problem is then the model grow an by just reading a derived member may start a chain of lazy fetches that could be hard to anticipate.
One solution we at Attracs use with success is prefetching. When loading bigger datastructures from database it is often many instances of the same class. It is much more effective to load many instances in one SQL call compared to one SQL call per instance. We use some kind of prefetch language to archieve this.
A prefetch expression can look like this:
(activeCustomers, (activeOrders, invoice))
The precondition in this fabricated case is class CustomerPool that have a multilink ActiveCustomers that have the class Customer in the other end. The Customer have a multilink to Order class by the multilink activeOrders. And the Order class have a link to Invoice class. by doing a prefetch on this then all Customers is loaded in one SQL and the same with Order and Invoice class. The result is better user experience.
Some people may think that the syntax of this prefetch language is a bit funny. It should be noted that prefetch is not part of the Bold framework (yet). It is an in house technique to get better performance.
Now we also have a method that generate a prefetch expression from an OCL expression. This make it much easier as the prefetches can adapt from changes in model. The result is more dynamic and less hard coding!
Subscribe to:
Posts (Atom)