The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,839 other subscribers

Archive for the ‘Development’ Category

Delphi: There is a FastMM4 fork with AVX support and multi-threaded enhancements (faster locking) – how will it impact floating point heavy applications (as Delphi uses SSE instructions for floating point)

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 »

Node.js ES2015/ES6 support – compare language/runtime versions support for many items

Posted by jpluimers on 2018/05/01

[WayBackNode.js ES2015/ES6 support

via: [WayBack] Good thing, compare language/runtime versions support for many items http://node.green/ – David Berneda – Google+

–jeroen

Posted in Development, JavaScript/ECMAScript, Scripting, Software Development | Leave a Comment »

Limits on Everything – The Isoblog.

Posted by jpluimers on 2018/05/01

Via [WayBackLimits 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: [WayBackTake It to the Limit: Considerations for Building Reliable Systems – Brave New Geek

You have to set limits, which begs for a few questions:

  1. how to find out which limits and at what levels
  2. 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 »

joshbuchea/HEAD: A list of everything that could go in the HEAD of your HTML document

Posted by jpluimers on 2018/04/27

HEAD – A list of everything that could go in the of your document

Wow. head is like a page by itself.

Source [WayBackjoshbuchea/HEAD: A list of everything that could go in the of your document

Via: [WayBack] HEAD – A list of everything that could go in the of your document https://github.com/joshbuchea/HEAD – This is why I Code – Google+

–jeroen

Posted in .NET, Development, HTML, Software Development, Web Development | Leave a Comment »

Home – Outpan – GTIN to product attribute mapping

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).

  • [WayBackGlobal Trade Item Number – Wikipedia
  • [WayBackAPI 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 »

When updates on a SELECT timeout with FireDAC, MSSQL 2016 and a ~8k varbinary field in the table

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 »

On my research list for Delphi use – FlowFinity and DreamFactory

Posted by jpluimers on 2018/04/25

For my research list:

–jeroen

Posted in .NET, Delphi, Development, Software Development | 4 Comments »

Pathfinder, a fast GPU-based font rasterizer in Rust – pcwalton

Posted by jpluimers on 2018/04/25

When you thought font rendering was a done thing, read [WayBackPathfinder, a fast GPU-based font rasterizer in Rust – pcwalton

via: [WayBack] Text display is so critical, great speed is a MUST http://pcwalton.github.io/blog/2017/02/14/pathfinder/ – David Berneda – Google+

–jeroen

 

Posted in Algorithms, Development, Software Development | Leave a Comment »

Reminder to self: check out “Debugging helper for TDataSet” and “debugger TDataSetVisualizer” for Delphi

Posted by jpluimers on 2018/04/24

So I won’t forget to check these out:

Via  [WayBackI like programming in Delphi, but I don’t particularly like writing applications that work with database backends… – Thomas Mueller (dummzeuch) – Google+ (thanks Stefan Glienke)

Read the rest of this entry »

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 »

How to embed a superscript Registered symbol in a Rave memo buffer.

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 »