Archive for the ‘Development’ Category
Posted by jpluimers on 2018/05/01
Interesting fork of FastMM4 for which I now think I understand why it is not merged into the regular FastMM4 repository: [WayBack] GitHub – maximmasiutin/FastMM4-AVX: FastMM4 fork with AVX support and multi-threaded enhancements (faster locking).
The fork does two things:
- it has multi-threading enhancements (faster locking)
- AVX support which seems tough for floating point heavy applications as Delphi generates SSE instructions for them
Reminder to self: how big is that impact and could the locking be separately merged into the base repository?
Eric Grange:
Looking at https://github.com/pleriche/FastMM4/issues/36 and given than the compile generates SSE2 code for floating point, I guess using AVX may be problematic when your code also does a lot of floating point using Delphi code (rather than AVX asm)
It could be that this repository is using only AVX-128, which might not have a penalty as per Advanced Vector Extensions – Wikipedia:
The AVX instructions support both 128-bit and 256-bit SIMD. The 128-bit versions can be useful to improve old code without needing to widen the vectorization, and avoid the penalty of going from SSE to AVX, they are also faster on some early AMD implementations of AVX. This mode is sometimes known as AVX-128.
Via: [WayBack] Do you use Embarcadero version of FastMM or the “official” bleeding edge version of FastMM from the gitHub repository? Any idea what are the difference… – Tommi Prami – Google+
–jeroen
Posted in Delphi, Development, FastMM, Software Development | 6 Comments »
Posted by jpluimers on 2018/05/01
Via [WayBack] Limits on Everything – The Isoblog.:
A posting at Brave New Geek about limits on everything, for example limits on message sizes and numbers of in-flight messages in message queues. Interesting read.
Very interesting read indeed: [WayBack] Take It to the Limit: Considerations for Building Reliable Systems – Brave New Geek
You have to set limits, which begs for a few questions:
- how to find out which limits and at what levels
- how to enforce these limits
Food for thought…
The first can be done with benchmarking, see for instance these from the same blogs above:
Enforcing limits depends in your infrastructure and your communication stacks.
–jeroen
Posted in Cloud, Development, Infrastructure, Opinions, Software Development | Leave a Comment »
Posted by jpluimers on 2018/04/26
On my research list: Home – Outpan as it is a key-value store of EAN (actually GTIN, so including GS1 UPC, EAN which means barcodes like UPC-12, EAN-8, EAN-13 and ITF-14).
- [WayBack] Global Trade Item Number – Wikipedia
- [WayBack] API Documentation – Outpan Developers
Legacy API
Get Product Information
GET https://api.outpan.com/v2/products/[GTIN]?apikey=[YOUR API KEY]
Add Product Name
POST https://api.outpan.com/v2/products/[GTIN]/name?apikey=[YOUR API KEY]
Required POST parameters:
name: The name you would like to add for this product.
Add Product Attribute
POST https://api.outpan.com/v2/products/[GTIN]/attribute?apikey=[YOUR API KEY]
Required POST parameters:
name: Name of the attribute you would like to add for this product.
value: Value for the attribute you would like to add for this product.
- [GTIN] is the barcode number (ISBN, EAN, UPC, …) of the product you’re looking up.
- All API calls must be done via HTTPS. Plain HTTP calls will be rejected.
–jeroen
via [WayBack] [How To] Scan a barcode and add the product name to Wunderlist : tasker
Posted in Barcode, Cloud, Cloud Apps, Cloud Development, Development, EAN, Infrastructure, Internet, Power User, Software Development | Leave a Comment »
Posted by jpluimers on 2018/04/26
A change of FetchOptions.CursorKind from ckAutomatic to ckDynamic does the trick.
did fix this issue:
I stumbled about a problem regarding FireDAC and MSSQL 2016. The table has four fields, one being of type varbinary(max). When I omit this blob field from the SELECT, I can update any field without problems using the edit and post methods of TFDQuery. It is only when I include that blob field in the SELECT, I cannot update the other fields anymore (the blob is not changed). The post runs into a timeout. It seems that the table is somehow locked. That guess is backed by the fact that even a simple UPDATE query executed from Management Studio is also blocked until I reset my application inside the debugger.Interestingly an INSERT runs without problems.
Via: [WayBack] I stumbled about a problem regarding FireDAC and MSSQL 2016…. G+ Uwe Raabe
–jeroen
Posted in Delphi, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2018/04/25
For my research list:
–jeroen
Posted in .NET, Delphi, Development, Software Development | 4 Comments »
Posted by jpluimers on 2018/04/24
Posted in Delphi, Delphi 10 Seattle, Delphi 2010, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Software Development | 1 Comment »
Posted by jpluimers on 2018/04/24
Thomas Pfister came with a nice solution to this question:
[WayBack] Does anyone know how to embed a superscript Registered symbol in a Rave memo buffer? – Phillip Woon – Google+
Since Google has such bad indexing of G+, here is the solution:
procedure TForm4.RvSystem1Print(Sender: TObject);
const
SuperscriptOn = RPTFPrefix + RPTFSuperscript + RPTFOn + RPTFSuffix; // from RpDefine.pas
SuperscriptOff = RPTFPrefix + RPTFSuperscript + RPTFOff + RPTFSuffix;
var
MemoBuf: TMemoBuf;
begin
MemoBuf := TMemoBuf.Create;
try
MemoBuf.Text := 'Test' + SuperscriptOn + '®' + SuperscriptOff + ' Test';
MemoBuf.PrintStart := 0.5;
MemoBuf.PrintEnd := 8.0;
with Sender as TBaseReport do begin
PrintMemo(MemoBuf, 1, true);
end;
finally
FreeAndNil(MemoBuf);
end;
end;
–jeroen
Source: Does anyone know how to embed a superscript Registered symbol in a Rave memo …
Posted in Delphi, Delphi 10 Seattle, Delphi 10.1 Berlin (BigBen), Delphi 2007, Delphi 2009, Delphi 2010, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Software Development | Leave a Comment »