Interesting tool as it just works magically:
Firebird 3.0 – MonitorNeed to monitor you firebird 3.0 database? We have the right tool for you!
–jeroen
Posted by jpluimers on 2017/07/20
Interesting tool as it just works magically:
Firebird 3.0 – MonitorNeed to monitor you firebird 3.0 database? We have the right tool for you!
–jeroen
Posted in Database Development, Development, Firebird | Leave a Comment »
Posted by jpluimers on 2017/07/19
Cool: [WayBack] Postman offers free (small-project) API developer tools – Open Source Insider.
I’ve used the [Archive.is] Postman – Chrome Web Store for HTTP/HTTPS API testing using various REST services. It’s awesome even though unlike the postmanlabs/postman-chrome-extension-legacy: Postman REST Client Chrome Extension (Legacy Version) it’s not open source any more as it now can run server side and has an API of itself [WayBack].
Get it at [WayBack] Postman | Supercharge your API workflow. Available for Mac OS X, Windows, Linux and Chrome users.
–jeroen
Posted in Communications Development, Development, HTTP, Internet protocol suite, REST, SOAP/WebServices, Software Development, TCP | 2 Comments »
Posted by jpluimers on 2017/07/18
It’s from a while ago, so I wonder if this is still true:
I just got my Embarcadero update to RC6 that includes #10Seattle support.
–jeroen
Source: Can I say that I’m a bit disappointed by the way the Raize acquisition has been…
Posted in Delphi, Development, Software Development | 1 Comment »
Posted by jpluimers on 2017/07/18
Earlier, I wrote “:for loops are a strange beast so I will elaborate on those in a separate post.” so now is the time to do that.
The :for loop documentation is very dense:
Command Syntax Description for :for <var> from=<int> to=<int> step=<int> do={ <commands> }execute commands over a given number of iterations
So a for loop has these elements:
Luckily, the old RouterOS 2.7 documentation on loops (which they’ve revamped after Router OS 2.7 removing many useful examples) has this:
:for – It has one unnamed argument, the name of the loop variable. from argument is the starting value for the loop counter, tovalue is the final value. This command counts loop variable up or down starting at from and ending with to, inclusive, and for each value it executes the do statement. It is possible to change the increment from the default 1 (or -1), by specifying the stepargument.
[admin@MikroTik] > :for i from=1 to=100 step=37 do={:put ($i . " - " . 1000/$i)} 1 - 1000 38 - 26 75 - 13 [admin@MikroTik] >
You might think that from= the start value, to= the finish value and the loop won’t execute when step= a positive value and from= larger than to=. Or that without a step= the loop will always iterate in ascending order.
Wrong! And wrong!
So it’s time for some…
Posted in Development, Internet, MikroTik, Power User, RouterOS, routers, Scripting, Software Development | Leave a Comment »
Posted by jpluimers on 2017/07/17
Interesting: [WayBack] Atlassian SourceTree on Twitter: “Good news! We’ve open sourced the way we phase releases for our Sparkle-based macOS app. Read on: https://t.co/QOH0tceXt4”:
[WayBack] Open Source Announcement: phased releases for Sparkle-based macOS apps | SourceTree Blog
[WayBack] atlassianlabs / Progressive-Rollout-via-Sparkle — Bitbucket
A small collection of collection of classes, tests, and notes for implementing a progressive (staged) rollout of an update via Sparkle, originally implemented in SourceTree.
[WayBack] Sparkle: open source software update framework for macOS
–jeroen
Posted in Continuous Integration, Deployment, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2017/07/13
Besides the optimised versions of these functions, I learned the most from these comments:
The DivMod should be faster. Should really be a single division. The CPU instruction will give you both div and mod from a single instruction. No point doing the divide twice.Updated code, added lookup-table optimizations, Lazarus / FPC support and test project:
+Javier Hernández In the past I used AQTime but now I’m using NexusDB Quality suite (http://www.nexusdb.com/support/index.php?q=qualitysuite) and +Eric Grange SamplingProfiler (https://www.delphitools.info/samplingprofiler/).
But in this FastDateTime code the test project uses TStopWatch (GetTickCount in FPC) to compare speed
–jeroen
Source: A slightly optimized TDateTime functions (YearOf, MonthOf, DayOf) …
Posted in Delphi, Development, Software Development | 2 Comments »
Posted by jpluimers on 2017/07/13
The BorCon 97 opening – today 20 years ago – was so much fun: the a Star Wars like opening crawl about a tiny company fighting the – then regarded – Evil Empire called Microsoft.
It was back in the days when lots of new things in the Delphi world were happening: Delphi 2 – the first 32-bit version – came out half a year before and the upcoming Delphi 3 was going to be a game changer as well. New features were rock solid and sales were booming.
Personally, I was much slimmer (yes, that’s me in the Tie-Dye), and could do a pre-conference tutorial on CORBA and VisiBroker (The ORB by Visigenic which was about to be acquired by Borland – which now is owned by Micro Focus only after spinning of the CodeGear which got acquired by Embarcadero that is now owned by Idera which feels like the Inprise story all over again).
I got triggered to this after watching the Opening Night Excitation episode 194 of the Big Bang Theory:
Posted in Delphi, Delphi 2, Delphi 3, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2017/07/12
Edit: in the mean time, the author took his video off-line. The G+ thread however is still interesting.
From a while ago:
[WayBack]
https://www.youtube.com/watch?v=INzECItF6ew
Delphi, where are you? – Jacek Laskowski – Google+
YouTube video C++ Cool Debugging Tips and Tricks
–jeroen
Posted in C++, Delphi, Development, Software Development | 4 Comments »
Posted by jpluimers on 2017/07/12
A while ago, I needed to reset the index statistics for all indices in one our databases: a Firebird database.
I hadn’t done work like this in a while, so I made the cardinal mistake of Googling and using the first matching StackOverflow answer that seemed a perfect fit.
Boy was I wrong (:
In sql – My firebird query plan does not use correct index – Stack Overflow I found the accepted answer (no less!) has this neat block to update index statistics for all indices:
EXECUTE BLOCK
AS
DECLARE VARIABLE IDX VARCHAR(31);
BEGIN
FOR
SELECT rdb$index_name FROM rdb$indices
WHERE NOT rdb$index_name LIKE 'RDB$%'
INTO :idx
DO BEGIN
EXECUTE STATEMENT 'update statistics ' || :idx
WITH AUTONOMOUS TRANSACTION;
END
END
The code consistently failed with this error:
Script Error:
Dynamic SQL Error
SQL error code = -104
Unexpected end of command - line 1, column 19
When I removed the lines inside the do begin … end block, then the outer statements execute fine.
Incidentally, column 19 is right at the space at the end of after the 'update statistics '. Which meant that either the string concatenation was wrong, or the statement itself.
And yes, I should have Googled the Firebird documentation instead, as What is index selectivity? has the correct statement that recalculates statistics for all indexes:
set term !! ; EXECUTE BLOCK AS declare variable index_name VARCHAR(31); BEGIN for select RDB$INDEX_NAME from RDB$INDICES into :index_name do execute statement 'SET statistics INDEX ' || :index_name || ';'; END!! set term ; !!
–jeroen
Source: What is index selectivity?
Posted in Database Development, Development, Firebird | Leave a Comment »
Posted by jpluimers on 2017/07/11
This is soo cool: [Archive.is] Trivia Template to make Google Assistant trivia questionaires.
It reminds me of a project a few years back where we did a similar thing to create automated interviews.
The trivia template tool lets you build apps for the Google Assistant without writing a single line of code.
Source: [WayBack] Google Assistant Trivia Template – Leon Nicholls – Medium
Via: [WayBack] Trivia Template: Nandini Stocker and I just launched a template tool to create trivia games for the Google Assistant. The template turns your questions and answers from a spreadsheet into a fully functioning game without writing any code… – Leon Nicholls – Google+
–jeroen
Posted in Development, Google, Google AI, Power User, Software Development | Leave a Comment »