This post contains just a bunch of links that I refered to in my two-part (live) presentation on version control management with RAD Studio and Git.
Thursday, December 08, 2016
Wednesday, November 30, 2016
Embarcadero Akademija: RAD Studio and Version Control
This is an announcement for the next Slovenian “Embarcadero Academy” session. As it is intended for Slovenian Delphi programmers, the rest of this post is in the Slovenian language.
Monday, November 21, 2016
Debug Faster. Debug Smarter.
If you have missed the presentation or want to see it again, now is a good time :)
Additional materials (slides, code) are available on the Presentations page.
Monday, November 14, 2016
Hear me speak at CodeRage XI
This year I’ll be presenting two sessions at CodeRage XI.
On Wednesday, I’ll be exploring the topic of debugging in RAD Studio. I’ll show how advanced options in breakpoint properties work and drop some debugging tips & tricks here and there. Join me in room 1 at 7 am PST / 10 am EST / 16.00 CET.
On Thursday I’ll be demoing new enhancements in FastMM. If you are writing multithreaded code, then this session will be targeted to you! Join me in room 1 at 10 am PST / 1 pm EST / 19.00 CET.
Saturday, November 05, 2016
Recording Webinars (repost)
As I’m pretty sure many Delphi programmers will be working on their CodeRage XI videos this weekend ;) , I decided to repost a link to my year old post Recording Webinars – My Workflow. Maybe it will be of some use to you.
Monday, October 24, 2016
OmniThreadLibrary 3.06.2
Another week, another critical update …
There was a logical error – also known as “my own stupidity” – built into OTL 3.06 which prevented programs that used OtlCommon to be started on Windows XP. This is now fixed.
There’s also a tiny addition to OtlSync included in this release.
Wednesday, October 19, 2016
OmniThreadLibrary 3.06.1
There was a nasty bug in DSiWin32 unit included with the 3.06 release so I had no other option than to quickly issue a fix. If you have downloaded version 3.06 then please update to 3.06.1 as with 3.06 you could experience weird crashes during program startup. I’m really sorry for that :(
There’s also a tiny addition to TOmniValue included in this release.
Monday, October 17, 2016
OmniThreadLibrary 3.06
Hi, guys! After a looong time, a new version of OmniThreadLibrary was released! It is available as a zipped download, git checkout, via Delphinus and (really soon) via GetIt.
Following stuff was added/changed/fixed since the 3.05 release:
Monday, October 10, 2016
ITDevCon 2016
My presentations (slides and code) are now online at the usual place.
Friday, July 15, 2016
OmniThreadLibrary Everywhere
For the last year and some, Sean B. Durkin has been working on the mobile port of the OmniThreadLibrary. There was lots to be done, as OTL was never designed to be a portable library – after all, it was created in Delphi 2007 times.
Recently I merged his latest commits into the mobile OmniThreadLibrary branch. This version is (by his words) functionally complete (although it may be missing some very recent OTL features) but is very much untested. So Sean is asking everybody that is interested in multithreading on OS/X, iOS, and Android to help him find bugs and to make OTL even more awesome!
Please report any findings to his OmniThreadLibrary-For-Mobile-DevelopmentProject on Google+. I am currently working on other aspects of the OTL and didn’t I put much energy into checking his work.
Wednesday, June 22, 2016
When 64 cores are not enough
Following two branches just sprung to life:
https://github.com/gabr42/OmniThreadLibrary/tree/numa
https://github.com/gabr42/FastMM4-MP/tree/numa
Plus I started planning OTL&FastMM changes:
https://docs.google.com/document/d/1dHiJyHj80TJ2oFAOtFxNtXLMrAhzm7F5SoczBl5ssxM
Feel free to comment on that Google Docs document.
Friday, June 10, 2016
OmniXML Official Repository
In case you are wondering which of the many github (and even bitbucket) omnixml repos is the official one (as www.omnixml.com is still pointing to the old googlecode storage), this is it: https://github.com/mremec/omnixml.
www.omnixml.com should be pointing to the correct repository “real soon now” ;)
Wednesday, May 25, 2016
RAD Studio Berlin 10.1 Notes and Links
In case you are already using RAD Studio Berlin 10.1 or are merely looking into it, these links and notes may help you.
- What’s New in RAD Studio 10.1 Berlin
- Using C++ lambdas with Parallel Programming Library
- Marco Cantu on [weak] and [unsafe] attributes
- My [weak] vs. [unsafe] demo
- FireUI preview
- Bookmark stack
- Selection expansion (which is my totaly favourite new feature!)
- TBufferedFileStream
- DataSnap Hotfix
- Samsung Galaxy Hotfix
- Samples are installed in c:\Users\Public\Documents\Embarcadero\Studio\18.0\Samples.
- New installer stores files to c:\Users\<user>\Documents\Embarcadero\Studio\18.0\CatalogRepository.
- FireUI Preview source can be found in c:\Program Files (x86)\Embarcadero\Studio\18.0\source\Tools\FireUIAppPreview.
YouTube videos
- Introducing 10.1 Berlin
- FireUI Preview demo starts at 32:20
- New installer
- ListView Item Designer
Thursday, May 19, 2016
RAD Studio 10.1 Berlin presentation in Ljubljana
Next week (Wednesday 25th) I’ll be presenting the new and shiny 10.1 release in Ljubljana.
For more info click here.
Tuesday, March 01, 2016
Defensive Programming and Advanced Debugging
Next Wednesday (9th) I’ll be holding a presentation in Ljubljana. Topic: defensive programming, maintaining a clean code, and debugging tips and tricks. Presentation will be applicable to both Delphi and C++Builder programmers.
As usual, I’ll be presenting in Slovenian language.
Sunday, February 21, 2016
Finding Memory Allocation Bottlenecks with FastMM4
Recently, I had to find bottlenecks in one of our applications that does all sorts of things related to DVB and is handling real-time reading and sending of data streams over IP with bitrates up to 80 Mb/s (in our lab; in real life maybe even more). Our customer created a configuration which essentially brought the app to the crawl and I had to fix it.
It quickly turned out that although the program was not able to handle the load, the CPU was not very busy. The busiest core was only using about 30% CPU. So I suspected the thread contention problems in FastMM, switched it for SapMM and indeed - the problem went away. CPU load went up and application could again handle the load.
Crisis averted, I took time to find the real problem - excessive get/freemem calls in this program. As far as I could tell, there existed no tool to find that so in a true DIY manner I created my own ;)